From 162ae674c601d302678f5d2cde17bbee7ef7514f Mon Sep 17 00:00:00 2001 From: DragonTrance Date: Fri, 25 Dec 2020 13:22:21 -0700 Subject: [PATCH 1/3] constructible showers, loom, sinks & barrels now deconstruct Deconstruction: Loom - Screwdriver Wooden Barrel - Screwdriver Sink - Wrench Shower - Screwdriver > Wrench Securing: Loom - Wrench Wooden Barrel - Wrench Shower - Screwdriver Adds showers as craftable objects when using metal sheets. Also organizes some things in the metal sheet crafting menu --- .../items/stacks/sheets/sheet_types.dm | 66 +++++---- code/game/objects/structures/loom.dm | 51 +++++-- code/game/objects/structures/watercloset.dm | 128 +++++++++++++++--- code/modules/hydroponics/fermenting_barrel.dm | 37 ++++- 4 files changed, 213 insertions(+), 69 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index dbe94cb8..c1a65e58 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -17,30 +17,34 @@ * Metal */ GLOBAL_LIST_INIT(metal_recipes, list ( \ - new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ - //CIT CHANGE - adds sofas to metal recipe list - new/datum/stack_recipe_list("sofas", list( \ - new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, one_per_turf = TRUE, on_floor = TRUE), \ - new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, one_per_turf = TRUE, on_floor = TRUE), \ - new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, one_per_turf = TRUE, on_floor = TRUE), \ - new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE), \ - )), \ - //END OF CIT CHANGES - null, \ - new/datum/stack_recipe_list("office chairs", list( \ + new/datum/stack_recipe_list("seats", \ + list( \ + new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = TRUE, on_floor = TRUE), \ + null, \ new/datum/stack_recipe("dark office chair", /obj/structure/chair/office/dark, 5, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("light office chair", /obj/structure/chair/office/light, 5, one_per_turf = TRUE, on_floor = TRUE), \ - )), \ - new/datum/stack_recipe_list("comfy chairs", list( \ + null, \ new/datum/stack_recipe("beige comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("black comfy chair", /obj/structure/chair/comfy/black, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brown comfy chair", /obj/structure/chair/comfy/brown, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("lime comfy chair", /obj/structure/chair/comfy/lime, 2, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("teal comfy chair", /obj/structure/chair/comfy/teal, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("teal comfy chair", /obj/structure/chair/comfy/teal, 2, one_per_turf = TRUE, on_floor = TRUE) \ )), \ + //CIT CHANGE - adds sofas to metal recipe list + new/datum/stack_recipe_list("sofas", \ + list( \ + new/datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE) \ + )), \ + //END OF CIT CHANGES + new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ + null, \ + //add this when I can find a way to make them easily constructible > new/datum/stack_recipe("sink", /obj/structure/sink, 2, one_per_turf = TRUE, on_floor = TRUE), + new/datum/stack_recipe("shower", /obj/machinery/shower/crafted, 2, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ @@ -56,7 +60,8 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ null, \ - new /datum/stack_recipe_list("airlock assemblies", list( \ + new /datum/stack_recipe_list("airlock assemblies", \ + list( \ new /datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("public airlock assembly", /obj/structure/door_assembly/door_assembly_public, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \ @@ -74,7 +79,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new /datum/stack_recipe("external maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_extmai, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ - )), \ + )), \ null, \ new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ @@ -107,7 +112,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/metal - grind_results = list(/datum/reagent/iron = 20) + grind_results = list("iron" = 20) point_value = 2 tableVariant = /obj/structure/table @@ -170,7 +175,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/plasteel - grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) + grind_results = list("iron" = 20, "plasma" = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced @@ -235,7 +240,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/wood novariants = TRUE - grind_results = list(/datum/reagent/carbon = 20) + grind_results = list("carbon" = 20) /obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.wood_recipes @@ -421,15 +426,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ null, \ - new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \ - new /datum/stack_recipe("donk-pockets box", /obj/item/storage/box/donkpockets), \ - new /datum/stack_recipe("donk-pockets spicy box", /obj/item/storage/box/donkpockets/donkpocketspicy), \ - new /datum/stack_recipe("donk-pockets teriyaki box", /obj/item/storage/box/donkpockets/donkpocketteriyaki), \ - new /datum/stack_recipe("donk-pockets pizza box", /obj/item/storage/box/donkpockets/donkpocketpizza), \ - new /datum/stack_recipe("donk-pockets berry box", /obj/item/storage/box/donkpockets/donkpocketberry), \ - new /datum/stack_recipe("donk-pockets honk box", /obj/item/storage/box/donkpockets/donkpockethonk), \ - new /datum/stack_recipe("monkey cube box", /obj/item/storage/box/monkeycubes), - null, \ new/datum/stack_recipe("colored brown", /obj/item/storage/box/brown), \ new/datum/stack_recipe("colored green", /obj/item/storage/box/green), \ new/datum/stack_recipe("colored red", /obj/item/storage/box/blue), \ @@ -493,7 +489,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE - grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) + grind_results = list("iron" = 5, "blood" = 15) /obj/item/stack/sheet/runed_metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -569,7 +565,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/clockwork novariants = FALSE - grind_results = list(/datum/reagent/iron = 5, /datum/reagent/teslium = 15, /datum/reagent/fuel/holyoil = 1) + grind_results = list("iron" = 5, "teslium" = 15, "holyoil" = 1) merge_type = /obj/item/stack/tile/brass tableVariant = /obj/structure/table/reinforced/brass @@ -622,7 +618,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/bronze novariants = FALSE - grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing + grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze tableVariant = /obj/structure/table/bronze @@ -676,7 +672,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 throw_range = 3 - grind_results = list(/datum/reagent/carbon = 10) + grind_results = list("carbon" = 10) merge_type = /obj/item/stack/sheet/bone GLOBAL_LIST_INIT(plastic_recipes, list( diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index 29826eb2..8ed9ffa8 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -8,14 +8,45 @@ density = TRUE anchored = TRUE -/obj/structure/loom/attackby(obj/item/stack/sheet/W, mob/user) - if(W.is_fabric && W.amount > 1) - user.show_message("You start weaving the [W.name] through the loom..", 1) - if(W.use_tool(src, user, W.pull_effort)) - new W.loom_result(drop_location()) - user.show_message("You weave the [W.name] into a workable fabric.", 1) - W.amount = (W.amount - 2) - if(W.amount < 1) - qdel(W) +/obj/structure/loom/attackby(obj/item/I, mob/user) + if (user.a_intent != INTENT_HELP) + return ..() + if (istype(I, /obj/item/stack/sheet)) + if (!anchored) + return to_chat(user, "You have to anchor [src] first!") + + var/obj/item/stack/sheet/W = I + if(W.is_fabric && W.amount > 1) + user.visible_message("", + "You start weaving the [W.name] through the loom.") + + if(W.use_tool(src, user, W.pull_effort)) + new W.loom_result(drop_location()) + to_chat(user, "You weave the [W.name] into a workable fabric.") + W.amount = (W.amount - 2) + if(W.amount < 1) + qdel(W) + else + to_chat("You need at least 2 [W.name] to loom into fabric!") else - user.show_message("You need a valid fabric and at least 2 of said fabric before using this.", 1) \ No newline at end of file + switch (I.tool_behaviour) + if (TOOL_SCREWDRIVER) + user.visible_message("[user] starts disassembling [src]...", + "You start disassembling [src]...") + I.play_tool_sound(src) + if(I.use_tool(src, user, 60)) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) + if (TOOL_WRENCH) + if (anchored) + to_chat(user, "You unsecure the [src].") + I.play_tool_sound(src) + anchored = FALSE + else + to_chat(user, "You secure the [src].") + I.play_tool_sound(src) + anchored = TRUE + +/obj/structure/loom/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10) + qdel(src) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index a43c5a47..9036d8dc 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -219,6 +219,9 @@ var/watertemp = "normal" //freezing, normal, or boiling var/datum/looping_sound/showering/soundloop +/obj/machinery/shower/crafted //When created from sheets of metal + anchored = FALSE + /obj/machinery/shower/Initialize() . = ..() soundloop = new(list(src), FALSE) @@ -227,6 +230,29 @@ QDEL_NULL(soundloop) return ..() +/obj/machinery/shower/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (get_turf(src), 2) + Destroy() + +//Copy from /obj/structure/chair +/obj/machinery/shower/ComponentInitialize() + . = ..() + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + +/obj/machinery/shower/proc/can_be_rotated(mob/user) + return !anchored + +/obj/machinery/shower/proc/can_user_rotate(mob/user) + if(istype(user, /mob/living)) + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return FALSE + else + return TRUE + else if(isobserver(user) && CONFIG_GET(flag/ghost_interaction)) + return TRUE + return FALSE +//// + /obj/effect/mist name = "mist" icon = 'icons/obj/watercloset.dmi' @@ -236,6 +262,8 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT /obj/machinery/shower/interact(mob/M) + if (!anchored) + return to_chat(M, "You have to connect [src] to the floor first!") on = !on update_icon() add_fingerprint(M) @@ -258,25 +286,56 @@ /obj/machinery/shower/attackby(obj/item/I, mob/user, params) if(I.type == /obj/item/analyzer) - to_chat(user, "The water temperature seems to be [watertemp].") - else + to_chat(user, "The water temperature seems to be [watertemp].") + return + + if (user.a_intent != INTENT_HELP) return ..() -/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I) - to_chat(user, "You begin to adjust the temperature valve with \the [I]...") - if(I.use_tool(src, user, 50)) - switch(watertemp) - if("normal") - watertemp = "freezing" - if("freezing") - watertemp = "boiling" - if("boiling") - watertemp = "normal" - user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [watertemp] temperature.") - log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])") - add_hiddenprint(user) - return TRUE + switch (I.tool_behaviour) + if (TOOL_WRENCH) + if (!anchored) + user.visible_message("[user] starts to take apart [src]...", "You start dismantling [src]...") + I.play_tool_sound(src) + if(I.use_tool(src, user, 20)) + deconstruct(TRUE) + else + to_chat(user, "You begin to adjust the temperature valve with \the [I]...") + if(I.use_tool(src, user, 50)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [watertemp] temperature.") + log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])") + add_hiddenprint(user) + if (TOOL_SCREWDRIVER) + if (!anchored) + to_chat(user, "You begin screwing in [src] to the floor...") + I.play_tool_sound(src) + if(I.use_tool(src, user, 30)) + user.visible_message("[user] connects [src] to the floor.", "You connect [src] to the floor.") + anchored = TRUE + else + to_chat(user, "You start to take out [src]'s screws...") + on = FALSE + soundloop.stop() + update_icon() + I.play_tool_sound(src) + if(I.use_tool(src, user, 20)) + user.visible_message("[user] disconnects [src] from the floor.", "You disconnect [src] from the floor.") + anchored = FALSE + +/obj/machinery/shower/examine() + . += ..() + if (anchored) + . += "It looks like it can be taken apart with a screwdriver..." + else + . += "Its screws are out of place, allowing it to be dismantled with a wrench." /obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up cut_overlays() //once it's been on for a while, in addition to handling the water overlay. @@ -463,6 +522,27 @@ anchored = TRUE var/busy = FALSE //Something's being washed at the moment var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens + layer = WALL_OBJ_LAYER + +/*/obj/structure/sink/Initialize() //This doesn't work in the slightest. It used to at some point through development, but that made it so you cant interact with the object whatsoever. I hate this. + . = ..() + switch (dir) //Thinking about moving this into its own construction sequence so it can actually work, like using a screwdriver will set its pixel offset, but I feel like that's too much + if (NORTH) //Or maybe putting it in lateinit... but that's sloppy and I feel like it wont work when spawning it in after the round starts + pixel_x = pixel_y = 0 + layer = WALL_OBJ_LAYER + if (EAST) + pixel_x = 12 + pixel_y = 3 + layer = WALL_OBJ_LAYER + if (SOUTH) + pixel_y = 24 + pixel_x = 0 + layer = ABOVE_OBJ_LAYER + if (WEST) + pixel_x = -12 + pixel_y = 3 + layer = WALL_OBJ_LAYER +*/ /obj/structure/sink/attack_hand(mob/living/user) @@ -509,7 +589,16 @@ /obj/structure/sink/attackby(obj/item/O, mob/living/user, params) if(busy) - to_chat(user, "Someone's already washing here!") + to_chat(user, "Someone's already washing here.") + return + + if (istype(O, /obj/item/wrench) && user.a_intent == INTENT_HELP) + to_chat(user, "You start deconstructing [src]...") + O.play_tool_sound(src) + + if(O.use_tool(src, user, 20)) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) return if(istype(O, /obj/item/reagent_containers)) @@ -574,16 +663,13 @@ return ..() /obj/structure/sink/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/metal (loc, 3) + new /obj/item/stack/sheet/metal (loc, 2) qdel(src) - - /obj/structure/sink/kitchen name = "kitchen sink" icon_state = "sink_alt" - /obj/structure/sink/puddle //splishy splashy ^_^ name = "puddle" desc = "A puddle used for washing one's hands and face." diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index ab6625b4..cc1326c3 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -38,8 +38,10 @@ playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) /obj/structure/fermenting_barrel/attackby(obj/item/I, mob/user, params) - var/obj/item/reagent_containers/food/snacks/grown/fruit = I - if(istype(fruit)) + if (user.a_intent != INTENT_HELP) + return ..() + if (istype(I, /obj/item/reagent_containers/food/snacks/grown)) + var/obj/item/reagent_containers/food/snacks/grown/fruit = I if(!fruit.can_distill) to_chat(user, "You can't distill this into anything...") return TRUE @@ -50,7 +52,32 @@ addtimer(CALLBACK(src, .proc/makeWine, fruit), rand(80, 120) * speed_multiplier) return TRUE else - return ..() + switch (I.tool_behaviour) + if (TOOL_SCREWDRIVER) + user.visible_message("[user] starts disassembling [src]...", + "You start disassembling [src]...") + var/reagent_calculation = 1 + if (reagents.total_volume) + user.visible_message("Liquid starts pouring out [src] as [user] starts disassembling it!", + "Liquid starts pouring out [src], maybe you should think about this...") + reagent_calculation += 2+round(reagents.total_volume/100)/2 + I.play_tool_sound(src) + if(I.use_tool(src, user, 30*reagent_calculation)) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) + if (reagents.total_volume) + chem_splash(loc, round(reagent_calculation*0.75), list(reagents)) + deconstruct(TRUE) + else if (reagents.total_volume) + visible_message("[user] stops disassembling [src].") + if (TOOL_WRENCH) + if (anchored) //Imaginary bolts on the ground, just like anything else that can get wrenched + to_chat(user, "You unsecure [src].") + I.play_tool_sound(src) + anchored = FALSE + else + to_chat(user, "You secure [src].") + I.play_tool_sound(src) + anchored = TRUE /obj/structure/fermenting_barrel/attack_hand(mob/user) open = !open @@ -69,3 +96,7 @@ icon_state = "barrel_open" else icon_state = "barrel" + +/obj/structure/fermenting_barrel/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10) + qdel(src) From 57117b0017a382c64c8ad43da207147bb7e931fe Mon Sep 17 00:00:00 2001 From: DragonTrance Date: Fri, 25 Dec 2020 13:39:51 -0700 Subject: [PATCH 2/3] why does my compiler do this i hate it --- .../items/stacks/sheets/sheet_types.dm | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c1a65e58..d68930d6 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -112,7 +112,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/metal - grind_results = list("iron" = 20) + grind_results = list(/datum/reagent/iron = 20) point_value = 2 tableVariant = /obj/structure/table @@ -175,7 +175,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/plasteel - grind_results = list("iron" = 20, "plasma" = 20) + grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced @@ -240,7 +240,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/wood novariants = TRUE - grind_results = list("carbon" = 20) + grind_results = list(/datum/reagent/carbon = 20) /obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.wood_recipes @@ -426,6 +426,15 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ null, \ + new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \ + new /datum/stack_recipe("donk-pockets box", /obj/item/storage/box/donkpockets), \ + new /datum/stack_recipe("donk-pockets spicy box", /obj/item/storage/box/donkpockets/donkpocketspicy), \ + new /datum/stack_recipe("donk-pockets teriyaki box", /obj/item/storage/box/donkpockets/donkpocketteriyaki), \ + new /datum/stack_recipe("donk-pockets pizza box", /obj/item/storage/box/donkpockets/donkpocketpizza), \ + new /datum/stack_recipe("donk-pockets berry box", /obj/item/storage/box/donkpockets/donkpocketberry), \ + new /datum/stack_recipe("donk-pockets honk box", /obj/item/storage/box/donkpockets/donkpockethonk), \ + new /datum/stack_recipe("monkey cube box", /obj/item/storage/box/monkeycubes), + null, \ new/datum/stack_recipe("colored brown", /obj/item/storage/box/brown), \ new/datum/stack_recipe("colored green", /obj/item/storage/box/green), \ new/datum/stack_recipe("colored red", /obj/item/storage/box/blue), \ @@ -489,7 +498,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE - grind_results = list("iron" = 5, "blood" = 15) + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) /obj/item/stack/sheet/runed_metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -565,7 +574,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/clockwork novariants = FALSE - grind_results = list("iron" = 5, "teslium" = 15, "holyoil" = 1) + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/teslium = 15, /datum/reagent/fuel/holyoil = 1) merge_type = /obj/item/stack/tile/brass tableVariant = /obj/structure/table/reinforced/brass @@ -618,7 +627,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/bronze novariants = FALSE - grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze tableVariant = /obj/structure/table/bronze @@ -672,7 +681,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 throw_range = 3 - grind_results = list("carbon" = 10) + grind_results = list(/datum/reagent/carbon = 10) merge_type = /obj/item/stack/sheet/bone GLOBAL_LIST_INIT(plastic_recipes, list( From 9068e9c580045fdb6796523a3591faaa38cc4fd5 Mon Sep 17 00:00:00 2001 From: DragonTrance Date: Fri, 25 Dec 2020 14:14:52 -0700 Subject: [PATCH 3/3] Update loom.dm --- code/game/objects/structures/loom.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index 8ed9ffa8..5e1cc79a 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -37,6 +37,7 @@ if(I.use_tool(src, user, 60)) playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) deconstruct(TRUE) + return if (TOOL_WRENCH) if (anchored) to_chat(user, "You unsecure the [src].") @@ -46,6 +47,8 @@ to_chat(user, "You secure the [src].") I.play_tool_sound(src) anchored = TRUE + return + return ..() /obj/structure/loom/deconstruct(disassembled = TRUE) new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10)