From 1d97474ee559b484710b7ff7cef1ab9911c7de29 Mon Sep 17 00:00:00 2001 From: Migratingcocofruit <69551563+Migratingcocofruit@users.noreply.github.com> Date: Fri, 17 May 2024 14:32:48 +0300 Subject: [PATCH] Adjusts grinder behaviour and towercap log contents (#25249) * Adjusts grinder behaviour and towercap log contents wood logs now contain 20 carbon, and the plank carbon amount is reduced accordingly, steel logs now contain 50 iron, non-edible plants are ground the same way as edible plants. * Rearranged checking for grinding behavior to if else from nested if and removed the old non-edible plant grinding code. --- code/modules/hydroponics/grown/towercap.dm | 2 + .../chemistry/machinery/reagentgrinder.dm | 92 ++++++++++--------- 2 files changed, 53 insertions(+), 41 deletions(-) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 6364f1629b0..98f22590080 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -16,6 +16,7 @@ icon_dead = "towercap-dead" genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) mutatelist = list(/obj/item/seeds/tower/steel) + reagents_add = list("carbon" = 0.2) /obj/item/seeds/tower/steel name = "pack of steel-cap mycelium" @@ -25,6 +26,7 @@ plantname = "Steel Caps" product = /obj/item/grown/log/steel mutatelist = list() + reagents_add = list("iron" = 0.5) rarity = 20 diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 09ed6ed24ef..645ed9f0524 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -21,7 +21,7 @@ /obj/item/stack/sheet/metal = list("iron" = 20), /obj/item/stack/rods = list("iron" = 10), /obj/item/stack/sheet/plasteel = list("iron" = 20, "plasma_dust" = 20), - /obj/item/stack/sheet/wood = list("carbon" = 20), + /obj/item/stack/sheet/wood = list("carbon" = 4), /obj/item/stack/sheet/glass = list("silicon" = 20), /obj/item/stack/sheet/rglass = list("silicon" = 20, "iron" = 20), /obj/item/stack/sheet/mineral/uranium = list("uranium" = 20), @@ -30,10 +30,6 @@ /obj/item/stack/sheet/mineral/silver = list("silver" = 20), /obj/item/stack/sheet/mineral/gold = list("gold" = 20), - /obj/item/grown/nettle/basic = list("wasabi" = 0), - /obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0), - /obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), - // Blender Stuff /obj/item/food/snacks/grown/tomato = list("ketchup" = 0), /obj/item/food/snacks/grown/wheat = list("flour" = -5), @@ -56,7 +52,8 @@ /obj/item/food = list(), /obj/item/reagent_containers/pill = list(), /obj/item/reagent_containers/patch = list(), - /obj/item/clothing/mask/cigarette = list() + /obj/item/clothing/mask/cigarette = list(), + /obj/item/grown = list() ) var/list/juice_items = list ( @@ -439,21 +436,54 @@ var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume var/amount = special_blend[r_id] - if(amount <= 0) - if(amount == 0) - if(O.reagents.has_reagent("nutriment")) - beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment") * efficiency, space)) - O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) - if(O.reagents.has_reagent("plantmatter")) - beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter") * efficiency, space)) - O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) - else - if(O.reagents.has_reagent("nutriment")) - beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment") * abs(amount) * efficiency), space)) - O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) - if(O.reagents.has_reagent("plantmatter")) - beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter") * abs(amount) * efficiency), space)) - O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + + if(amount == 0) + if(O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment") * efficiency, space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter") * efficiency, space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + else if(amount < 0) + if(O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + else + O.reagents.trans_id_to(beaker, r_id, min(amount, space)) + + if(beaker.reagents.holder_full()) + break + + O.reagents.trans_to(beaker, O.reagents.total_volume) + + if(!O.reagents.total_volume) + remove_object(O) + if(beaker.reagents.holder_full()) + return + // Inedible Plants + for(var/obj/item/grown/O in holdingitems) + var/list/special_blend = get_special_blend(O) + for(var/r_id in special_blend) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = special_blend[r_id] + + if(amount == 0) + if(O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment") * efficiency, space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter") * efficiency, space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + else if(amount < 0) + if(O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) else O.reagents.trans_id_to(beaker, r_id, min(amount, space)) @@ -488,26 +518,6 @@ if(beaker.reagents.holder_full()) return - // Plants - for(var/obj/item/grown/O in holdingitems) - var/list/special_blend = get_special_blend(O) - for(var/r_id in special_blend) - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - var/amount = special_blend[r_id] - - if(amount == 0) - if(O.reagents.has_reagent(r_id)) - beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount(r_id) * efficiency, space)) - else - beaker.reagents.add_reagent(r_id, min(amount * efficiency, space)) - - if(beaker.reagents.holder_full()) - break - - remove_object(O) - if(beaker.reagents.holder_full()) - return - // Slime Extracts for(var/obj/item/slime_extract/O in holdingitems) var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume