From 4077e105072342ad58b27529689d84f3feca5dee Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Thu, 18 Jan 2024 16:59:14 +1100 Subject: [PATCH] Generalizing drying racks. --- code/game/objects/items_drying.dm | 26 ++++++++ code/game/objects/structures/bonfire.dm | 45 ++++++------- code/modules/food/food/snacks.dm | 15 ++++- .../food/kitchen/smartfridge/drying_rack.dm | 62 +++++------------- .../materials/materials/metals/steel.dm | 3 +- .../materials/materials/organic/wood.dm | 4 +- .../sheets/organic/tanning/hide_hairless.dm | 14 +--- .../sheets/organic/tanning/leather_wet.dm | 41 ++++++------ .../sheets/organic/tanning/tanning_rack.dm | 64 +++++++++---------- .../materials/sheets/organic/textiles.dm | 3 + code/modules/reagents/reagents/toxins.dm | 9 ++- maps/cynosure/cynosure-2.dmm | 8 +-- maps/northern_star/polaris-1.dmm | 6 +- maps/southern_cross/southern_cross-1.dmm | 6 +- maps/southern_cross/southern_cross-3.dmm | 4 +- maps/southern_cross/southern_cross-6.dmm | 2 +- .../surface_submaps/wilderness/frostoasis.dmm | 4 +- polaris.dme | 1 + 18 files changed, 157 insertions(+), 160 deletions(-) create mode 100644 code/game/objects/items_drying.dm diff --git a/code/game/objects/items_drying.dm b/code/game/objects/items_drying.dm new file mode 100644 index 0000000000..940b66f4d5 --- /dev/null +++ b/code/game/objects/items_drying.dm @@ -0,0 +1,26 @@ +// Stubs/vars for use with the drying rack. +/obj/item + var/drying_threshold_temperature = 500 // Kelvin, checked in fire_act() + var/dried_type // If set to a type, drying this item will convert it to that type. + +/obj/item/proc/is_dryable() + return !isnull(dried_type) + +// Returns null for no change, or an instance for a successful drying. +/obj/item/proc/dry_out(var/obj/rack, var/drying_power = 1) + if(dried_type) + . = new dried_type(loc) + qdel(src) + +// Returns a string used in drying rack examine(). +/obj/item/proc/get_dryness_text(var/obj/rack) + return "dry" + +// Returns an icon_state used by drying rack update_icon(). +/obj/item/proc/get_drying_state(var/obj/rack) + return + +/obj/item/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ..() + if(exposed_temperature >= drying_threshold_temperature) + dry_out() diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index c9a5238d80..8dffed474b 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -239,35 +239,28 @@ if(grill) for(var/obj/item/reagent_containers/food/snacks/snack in loc) snack.grill(src) + for(var/obj/item/thing in view(2, src)) + thing.dry_out(src, rand(1,4)) else burn() - if(burning) - var/W = get_fuel_amount() - if(W >= 5) - var/datum/gas_mixture/env = loc.return_air() - if(env && abs(env.temperature - set_temperature) > 0.1) - var/transfer_moles = 0.25 * env.total_moles - var/datum/gas_mixture/removed = env.remove(transfer_moles) - - if(removed) - var/heat_transfer = removed.get_thermal_energy_change(set_temperature) - if(heat_transfer > 0) - heat_transfer = min(heat_transfer , heating_power) - - removed.add_thermal_energy(heat_transfer) - - for(var/mob/living/L in view(3, src)) - L.add_modifier(/datum/modifier/endothermic, 10 SECONDS, null, TRUE) - - for(var/obj/item/stack/wetleather/WL in view(2, src)) - if(WL.wetness >= 0) - WL.dry() - continue - - WL.wetness = max(0, WL.wetness - rand(1, 4)) - - env.merge(removed) + if(!burning) + return + var/W = get_fuel_amount() + if(W < 5) + return + var/datum/gas_mixture/env = loc.return_air() + if(!env || abs(env.temperature - set_temperature) <= 0.1) + return + var/transfer_moles = 0.25 * env.total_moles + var/datum/gas_mixture/removed = env.remove(transfer_moles) + var/heat_transfer = removed?.get_thermal_energy_change(set_temperature) + if(heat_transfer > 0) + heat_transfer = min(heat_transfer, heating_power) + removed.add_thermal_energy(heat_transfer) + for(var/mob/living/L in view(3, src)) + L.add_modifier(/datum/modifier/endothermic, 10 SECONDS, null, TRUE) + env.merge(removed) /obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) ignite() diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index d0bef2fa21..302cc7c2f6 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -9,7 +9,6 @@ var/trash = null var/slice_path var/slices_num - var/dried_type = null var/dry = 0 var/survivalfood = FALSE var/nutriment_amt = 0 @@ -45,6 +44,20 @@ . = ..() nutriment_desc = null +/obj/item/reagent_containers/food/snacks/is_dryable() + return !dry + +/obj/item/reagent_containers/food/snacks/dry_out(var/obj/rack, var/drying_power = 1) + if(!dried_type || dry) + return null + if(dried_type == type) + dry = TRUE + name = "dried [name]" + color = "#aaaaaa" + rack?.visible_message(SPAN_NOTICE("\The [src] is dry!")) + return src + return ..() + /obj/item/reagent_containers/food/snacks // Halfassed version of Crabs' cooking system on Cit, should diff --git a/code/modules/food/kitchen/smartfridge/drying_rack.dm b/code/modules/food/kitchen/smartfridge/drying_rack.dm index c1b41be363..7089e4ef2d 100644 --- a/code/modules/food/kitchen/smartfridge/drying_rack.dm +++ b/code/modules/food/kitchen/smartfridge/drying_rack.dm @@ -1,35 +1,35 @@ -/obj/machinery/smartfridge/drying_rack - name = "\improper Drying Rack" +/obj/machinery/smartfridge/drying_oven + name = "drying oven" desc = "A machine for drying plants." wrenchable = 1 icon_state = "drying_rack" icon_base = "drying_rack" -/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O as obj) - if(istype(O, /obj/item/reagent_containers/food/snacks/)) - var/obj/item/reagent_containers/food/snacks/S = O - if (S.dried_type) - return 1 +/obj/machinery/smartfridge/drying_oven/accept_check(var/obj/item/O) + return istype(O) && O.is_dryable() - if(istype(O, /obj/item/stack/wetleather)) - return 1 - - return 0 - -/obj/machinery/smartfridge/drying_rack/process() +/obj/machinery/smartfridge/drying_oven/process() ..() if(stat & (BROKEN|NOPOWER)) return - if(contents.len) - dry() + var/do_update = FALSE + for(var/obj/item/thing in contents) + var/obj/item/product = thing.dry_out(src) + if(product) + product.dropInto(loc) + do_update = TRUE + if(QDELETED(thing) || !(thing in contents)) + for(var/datum/stored_item/I in item_records) + I.instances -= thing + if(do_update) update_icon() -/obj/machinery/smartfridge/drying_rack/update_icon() +/obj/machinery/smartfridge/drying_oven/update_icon() var/not_working = stat & (BROKEN|NOPOWER) var/hasItems for(var/datum/stored_item/I in item_records) if(I.get_amount()) - hasItems = 1 + hasItems = TRUE break if(hasItems) if(not_working) @@ -41,31 +41,3 @@ icon_state = "[icon_base]-off" else icon_state = "[icon_base]" - -/obj/machinery/smartfridge/drying_rack/proc/dry() - for(var/datum/stored_item/I in item_records) - for(var/obj/item/reagent_containers/food/snacks/S in I.instances) - if(S.dry) continue - if(S.dried_type == S.type) - S.dry = 1 - S.name = "dried [S.name]" - S.color = "#AAAAAA" - I.instances -= S - S.forceMove(get_turf(src)) - else - var/D = S.dried_type - new D(get_turf(src)) - qdel(S) - return - - for(var/obj/item/stack/wetleather/WL in I.instances) - if(!WL.wetness) - if(WL.amount) - WL.forceMove(get_turf(src)) - WL.dry() - I.instances -= WL - break - - WL.wetness = max(0, WL.wetness - rand(1, 3)) - - return \ No newline at end of file diff --git a/code/modules/materials/materials/metals/steel.dm b/code/modules/materials/materials/metals/steel.dm index 2ca9f10916..8e3b3e8167 100644 --- a/code/modules/materials/materials/metals/steel.dm +++ b/code/modules/materials/materials/metals/steel.dm @@ -94,6 +94,5 @@ new /datum/stack_recipe("floor lamp fixture frame", /obj/machinery/light_construct/flamp, 2, recycle_material = "[name]"), new /datum/stack_recipe("apc frame", /obj/item/frame/apc, 2, recycle_material = "[name]"), new /datum/stack_recipe("desk bell", /obj/item/deskbell, 1, on_floor = 1, supplied_material = "[name]"), - new /datum/stack_recipe("tanning rack", /obj/structure/tanning_rack, 3, one_per_turf = TRUE, time = 20, on_floor = TRUE, supplied_material = "[name]") + new /datum/stack_recipe("drying rack", /obj/structure/drying_rack, 3, one_per_turf = TRUE, time = 20, on_floor = TRUE, supplied_material = "[name]") ) - diff --git a/code/modules/materials/materials/organic/wood.dm b/code/modules/materials/materials/organic/wood.dm index 4780e8f7ed..11190228bf 100644 --- a/code/modules/materials/materials/organic/wood.dm +++ b/code/modules/materials/materials/organic/wood.dm @@ -42,7 +42,7 @@ new /datum/stack_recipe("coilgun stock", /obj/item/coilgun_assembly, 5, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("crude fishing rod", /obj/item/material/fishing_rod/built, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("noticeboard", /obj/structure/noticeboard, 1, recycle_material = "[name]"), - new /datum/stack_recipe("tanning rack", /obj/structure/tanning_rack, 3, one_per_turf = TRUE, time = 20, on_floor = TRUE, supplied_material = "[name]"), + new /datum/stack_recipe("drying rack", /obj/structure/drying_rack, 3, one_per_turf = TRUE, time = 20, on_floor = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("roofing tile", /obj/item/stack/tile/roofing, 3, 4, 20, recycle_material = "[name]"), new /datum/stack_recipe("shovel", /obj/item/shovel/wood, 2, time = 10, on_floor = TRUE, supplied_material = "[name]") ) @@ -82,4 +82,4 @@ name = MAT_SIFLOG icon_colour = "#0099cc" // Cyan-ish stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2) - stack_type = /obj/item/stack/material/log/sif \ No newline at end of file + stack_type = /obj/item/stack/material/log/sif diff --git a/code/modules/materials/sheets/organic/tanning/hide_hairless.dm b/code/modules/materials/sheets/organic/tanning/hide_hairless.dm index 72b235e415..f5db850ff3 100644 --- a/code/modules/materials/sheets/organic/tanning/hide_hairless.dm +++ b/code/modules/materials/sheets/organic/tanning/hide_hairless.dm @@ -24,7 +24,7 @@ if(HS.amount < HS.max_amount) H = HS break - + // Either we found a valid stack, in which case increment amount, // Or we need to make a new stack if(istype(H)) @@ -34,15 +34,3 @@ // Increment the amount src.use(1) - -/obj/item/stack/hairlesshide/proc/rapidcure(var/stacknum = 1) - stacknum = min(stacknum, amount) - - while(stacknum) - var/obj/item/stack/wetleather/I = new /obj/item/stack/wetleather(get_turf(src)) - - if(istype(I)) - I.dry() - - use(1) - stacknum -= 1 \ No newline at end of file diff --git a/code/modules/materials/sheets/organic/tanning/leather_wet.dm b/code/modules/materials/sheets/organic/tanning/leather_wet.dm index 64f672512c..6a67362cfb 100644 --- a/code/modules/materials/sheets/organic/tanning/leather_wet.dm +++ b/code/modules/materials/sheets/organic/tanning/leather_wet.dm @@ -4,44 +4,36 @@ desc = "This leather has been cleaned but still needs to be dried." description_info = "To finish tanning the leather, you need to dry it. \ You could place it under a fire, \ - put it in a drying rack, \ - or build a tanning rack from steel or wooden boards." + put it in a drying oven, \ + or build a drying rack from steel or wooden boards." singular_name = "wet leather piece" icon_state = "sheet-wetleather" - var/wetness = 30 //Reduced when exposed to high temperautres - var/drying_threshold_temperature = 500 //Kelvin to start drying no_variants = FALSE max_amount = 20 stacktype = "wetleather" + var/wetness = 30 //Reduced when exposed to high temperautres - var/dry_type = /obj/item/stack/material/leather +/obj/item/stack/wetleather/is_dryable() + return wetness > 0 + +/obj/item/stack/wetleather/get_drying_state(var/obj/rack) + if(wetness) + return "leather_wet" + return "leather_dry" /obj/item/stack/wetleather/examine(var/mob/user) . = ..() . += description_info . += "\The [src] is [get_dryness_text()]." -/obj/item/stack/wetleather/proc/get_dryness_text() +/obj/item/stack/wetleather/get_dryness_text(var/obj/rack) if(wetness > 20) return "wet" if(wetness > 10) return "damp" if(wetness) return "almost dry" - return "dry" - -/obj/item/stack/wetleather/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - ..() - if(exposed_temperature >= drying_threshold_temperature) - wetness-- - if(wetness == 0) - dry() - -/obj/item/stack/wetleather/proc/dry() - var/obj/item/stack/material/leather/L = new(src.loc) - L.amount = amount - use(amount) - return L + return ..() /obj/item/stack/wetleather/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified) . = ..() @@ -49,3 +41,12 @@ var/obj/item/stack/wetleather/W = S var/oldamt = W.amount - . W.wetness = round(((oldamt * W.wetness) + (. * wetness)) / W.amount) + +/obj/item/stack/wetleather/dry_out(var/obj/rack, var/drying_power = 1) + if(wetness <= 0) + return null + wetness -= drying_power + if(wetness <= 0) + . = new /obj/item/stack/material/leather(loc, amount) + rack?.visible_message(SPAN_NOTICE("The [src] is dry!")) + qdel(src) diff --git a/code/modules/materials/sheets/organic/tanning/tanning_rack.dm b/code/modules/materials/sheets/organic/tanning/tanning_rack.dm index 885b65dd8f..305c7ec963 100644 --- a/code/modules/materials/sheets/organic/tanning/tanning_rack.dm +++ b/code/modules/materials/sheets/organic/tanning/tanning_rack.dm @@ -1,40 +1,42 @@ -/obj/structure/tanning_rack - name = "tanning rack" +/obj/structure/drying_rack + name = "drying rack" desc = "A rack used to stretch leather out and hold it taut during the tanning process." icon = 'icons/obj/kitchen.dmi' icon_state = "spike" + var/obj/item/drying - var/obj/item/stack/wetleather/drying = null - -/obj/structure/tanning_rack/Initialize() +/obj/structure/drying_rack/Initialize() . = ..() START_PROCESSING(SSobj, src) // SSObj fires ~every 2s , starting from wetness 30 takes ~1m -/obj/structure/tanning_rack/Destroy() +/obj/structure/drying_rack/Destroy() + QDEL_NULL(drying) STOP_PROCESSING(SSobj, src) return ..() -/obj/structure/tanning_rack/process() - if(drying && drying.wetness) - drying.wetness = max(drying.wetness - 1, 0) - if(!drying.wetness) - visible_message("The [drying] is dry!") - update_icon() +/obj/structure/drying_rack/process() + var/dry_product = drying?.dry_out(src) + if(dry_product) + if(drying != dry_product) + if(drying && !QDELETED(drying)) + drying.dropInto(loc) + drying = dry_product + if(drying) + drying.forceMove(src) + update_icon() -/obj/structure/tanning_rack/examine(var/mob/user) +/obj/structure/drying_rack/examine(var/mob/user) . = ..() if(drying) . += "\The [drying] is [drying.get_dryness_text()]." -/obj/structure/tanning_rack/update_icon() +/obj/structure/drying_rack/update_icon() cut_overlays() - if(drying) - if(drying.wetness) - add_overlay("leather_wet") - else - add_overlay("leather_dry") + var/drying_state = drying?.get_drying_state(src) + if(drying_state) + add_overlay(drying_state) -/obj/structure/tanning_rack/attackby(var/atom/A, var/mob/user) +/obj/structure/drying_rack/attackby(var/atom/A, var/mob/user) if(istype(A, /obj/item/stack/wetleather)) if(!drying) // If not drying anything, start drying the thing if(user.unEquip(A, target = src)) @@ -46,23 +48,19 @@ return TRUE return ..() -/obj/structure/tanning_rack/attack_hand(var/mob/user) +/obj/structure/drying_rack/attack_hand(var/mob/user) if(drying) - var/obj/item/stack/S = drying - if(!drying.wetness) // If it's dry, make a stack of dry leather and prepare to put that in their hands - var/obj/item/stack/material/leather/L = new(src) - L.amount = drying.amount - drying.use(drying.amount) - S = L - if(ishuman(user)) var/mob/living/carbon/human/H = user - if(!H.put_in_any_hand_if_possible(S)) - S.forceMove(get_turf(src)) + if(!H.put_in_any_hand_if_possible(drying)) + drying.forceMove(get_turf(src)) else - S.forceMove(get_turf(src)) + drying.dropInto(loc) drying = null update_icon() + return ..() -/obj/structure/tanning_rack/attack_robot(var/mob/user) - attack_hand(user) // That has checks to \ No newline at end of file +/obj/structure/drying_rack/attack_robot(var/mob/user) + if(Adjacent(user)) + return attack_hand(user) + return ..() diff --git a/code/modules/materials/sheets/organic/textiles.dm b/code/modules/materials/sheets/organic/textiles.dm index a534ee19b1..4296028a52 100644 --- a/code/modules/materials/sheets/organic/textiles.dm +++ b/code/modules/materials/sheets/organic/textiles.dm @@ -9,6 +9,9 @@ drop_sound = 'sound/items/drop/leather.ogg' pickup_sound = 'sound/items/pickup/leather.ogg' +/obj/item/stack/material/leather/get_drying_state(var/obj/rack) + return "leather_dry" + /obj/item/stack/material/cloth name = "cloth" icon_state = "sheet-cloth" diff --git a/code/modules/reagents/reagents/toxins.dm b/code/modules/reagents/reagents/toxins.dm index 74e81029a8..4f630422b3 100644 --- a/code/modules/reagents/reagents/toxins.dm +++ b/code/modules/reagents/reagents/toxins.dm @@ -391,9 +391,12 @@ /datum/reagent/toxin/fertilizer/tannin/touch_obj(var/obj/O, var/volume) ..() - if(istype(O, /obj/item/stack/hairlesshide)) - var/obj/item/stack/hairlesshide/HH = O - HH.rapidcure(round(volume)) + if(istype(O, /obj/item/stack/hairlesshide) && volume >= 1) + var/obj/item/stack/hairlesshide/dryhide = O + var/obj/item/stack/wetleather/wethide = new(O.loc, round(volume)) + dryhide.use(round(volume)) + if(!QDELETED(wethide) && wethide.get_amount()) + wethide.dry_out(null, INFINITY) // dry it immediately ..() /datum/reagent/toxin/plantbgone diff --git a/maps/cynosure/cynosure-2.dmm b/maps/cynosure/cynosure-2.dmm index 07066f08a0..7aabe5fd98 100644 --- a/maps/cynosure/cynosure-2.dmm +++ b/maps/cynosure/cynosure-2.dmm @@ -1828,7 +1828,7 @@ /obj/effect/floor_decal/spline/plain{ dir = 6 }, -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /turf/simulated/floor/tiled/hydro, /area/surface/station/park) "aTC" = ( @@ -6103,7 +6103,7 @@ /turf/simulated/wall, /area/surface/station/engineering/engineering_monitoring) "cPd" = ( -/obj/structure/tanning_rack, +/obj/structure/drying_rack, /turf/simulated/floor/outdoors/dirt/sif{ outdoors = 0 }, @@ -22993,7 +22993,7 @@ /turf/simulated/floor/tiled/techfloor, /area/surface/station/ai/server_room) "kqm" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /obj/machinery/atmospherics/pipe/simple/hidden/yellow, /obj/structure/disposalpipe/segment{ dir = 4 @@ -30180,7 +30180,7 @@ /turf/simulated/floor/tiled, /area/surface/station/engineering/engineering_monitoring) "nyb" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /obj/effect/floor_decal/borderfloor{ dir = 4 }, diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm index 8fbfe1e3f4..1208e4c87e 100644 --- a/maps/northern_star/polaris-1.dmm +++ b/maps/northern_star/polaris-1.dmm @@ -2537,7 +2537,7 @@ "aWO" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "aWP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/central) "aWQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) -"aWR" = (/obj/machinery/smartfridge/drying_rack,/turf/simulated/floor/grass,/area/hydroponics/garden) +"aWR" = (/obj/machinery/smartfridge/drying_oven,/turf/simulated/floor/grass,/area/hydroponics/garden) "aWS" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/machinery/seed_storage/garden,/turf/simulated/floor/grass,/area/hydroponics/garden) "aWT" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/machinery/vending/hydronutrients,/turf/simulated/floor/grass,/area/hydroponics/garden) "aWU" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/obj/structure/table/woodentable,/obj/item/reagent_containers/glass/bucket,/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -4700,7 +4700,7 @@ "bMt" = (/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "bMu" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/lime/full,/obj/item/material/knife/machete/hatchet,/obj/item/material/minihoe,/obj/item/material/minihoe,/obj/item/material/knife/machete/hatchet,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled,/area/hydroponics) "bMv" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/lime{dir = 10},/obj/item/reagent_containers/glass/bucket,/obj/item/reagent_containers/glass/bucket,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/tiled,/area/hydroponics) -"bMw" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled,/area/hydroponics) +"bMw" = (/obj/machinery/smartfridge/drying_oven,/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled,/area/hydroponics) "bMx" = (/obj/machinery/honey_extractor,/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/camera/network/civilian{c_tag = "CIV - Hydroponics"; dir = 1},/turf/simulated/floor/tiled,/area/hydroponics) "bMy" = (/obj/machinery/seed_storage/garden,/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled,/area/hydroponics) "bMz" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled,/area/hydroponics) @@ -5052,7 +5052,7 @@ "bTh" = (/obj/structure/table/standard,/obj/item/hand_labeler,/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/machinery/alarm{pixel_y = 22},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "bTi" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "bTj" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) -"bTk" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/green/full{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) +"bTk" = (/obj/machinery/smartfridge/drying_oven,/obj/effect/floor_decal/corner/green/full{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "bTl" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bTm" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bTn" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 25aebcf1ec..279185ac98 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -35581,7 +35581,7 @@ /turf/simulated/floor, /area/maintenance/security_port) "bnV" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology/xenoflora) "bnW" = ( @@ -66398,7 +66398,7 @@ /turf/simulated/floor/tiled/hydro, /area/hallway/primary/seconddeck/ascenter) "cus" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /turf/simulated/floor/tiled/hydro, /area/hallway/primary/seconddeck/ascenter) "cut" = ( @@ -88120,7 +88120,7 @@ /turf/simulated/wall, /area/hydroponics) "dhg" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /obj/effect/floor_decal/borderfloor{ dir = 10 }, diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm index c4df22abeb..4a61d42940 100644 --- a/maps/southern_cross/southern_cross-3.dmm +++ b/maps/southern_cross/southern_cross-3.dmm @@ -6153,7 +6153,7 @@ /turf/simulated/floor/tiled, /area/surface/outpost/main) "nC" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /turf/simulated/floor/plating, /area/surface/outpost/main/garage) "nD" = ( @@ -12957,7 +12957,7 @@ /turf/simulated/floor/tiled/white, /area/surface/outpost/research/xenoresearch/xenoflora) "BH" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying_oven, /obj/effect/floor_decal/corner/green{ dir = 5 }, diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index dfaadb87d4..7c1049796a 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -670,7 +670,7 @@ "mT" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "mU" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mV" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/material/knife/machete/hatchet,/obj/item/material/knife/machete/hatchet,/obj/item/material/minihoe,/obj/item/material/minihoe,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"mW" = (/obj/machinery/smartfridge/drying_rack,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"mW" = (/obj/machinery/smartfridge/drying_oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mX" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/reagent_containers/glass/bucket,/obj/item/reagent_containers/glass/bucket,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mY" = (/obj/machinery/door/airlock/centcom{name = "Maintenance Access"; opacity = 1; req_access = list(106)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "mZ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command) diff --git a/maps/submaps/surface_submaps/wilderness/frostoasis.dmm b/maps/submaps/surface_submaps/wilderness/frostoasis.dmm index 8341c289cd..47017ce43a 100644 --- a/maps/submaps/surface_submaps/wilderness/frostoasis.dmm +++ b/maps/submaps/surface_submaps/wilderness/frostoasis.dmm @@ -49,7 +49,7 @@ "ou" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/FrostOasis) "oA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/FrostOasis) "oB" = (/obj/effect/landmark/snowy_turf,/turf/template_noop,/area/submap/FrostOasis) -"oV" = (/obj/structure/tanning_rack,/turf/simulated/floor/wood,/area/submap/FrostOasis) +"oV" = (/obj/structure/drying_rack,/turf/simulated/floor/wood,/area/submap/FrostOasis) "pB" = (/obj/effect/decal/cleanable/dirt,/obj/random/trash,/turf/simulated/floor/wood,/area/submap/FrostOasis) "pE" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/submap/FrostOasis) "pH" = (/obj/effect/spider/stickyweb/dark,/obj/structure/table/standard,/obj/random/mug/anom,/turf/simulated/floor/wood,/area/submap/FrostOasis) @@ -103,7 +103,7 @@ "FD" = (/obj/structure/simple_door/sifwood,/obj/structure/sign/christmas/wreath,/obj/structure/barricade,/turf/simulated/floor/wood,/area/submap/FrostOasis) "GB" = (/obj/structure/table/sifwoodentable,/obj/item/flame/candle/candelabra/everburn{pixel_y = 7},/turf/simulated/floor/wood,/area/submap/FrostOasis) "GN" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/wood,/area/submap/FrostOasis) -"Ia" = (/obj/structure/tanning_rack,/obj/item/stack/wetleather,/turf/simulated/floor/wood,/area/submap/FrostOasis) +"Ia" = (/obj/structure/drying_rack,/obj/item/stack/wetleather,/turf/simulated/floor/wood,/area/submap/FrostOasis) "It" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/outdoors/dirt,/area/template_noop) "IF" = (/turf/simulated/floor/beach/water/ocean{outdoors = 1},/area/submap/FrostOasis) "Ji" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/wood,/area/submap/FrostOasis) diff --git a/polaris.dme b/polaris.dme index 41a81938e7..dca57ae313 100644 --- a/polaris.dme +++ b/polaris.dme @@ -900,6 +900,7 @@ #include "code\game\objects\explosion.dm" #include "code\game\objects\explosion_recursive.dm" #include "code\game\objects\items.dm" +#include "code\game\objects\items_drying.dm" #include "code\game\objects\objs.dm" #include "code\game\objects\structures.dm" #include "code\game\objects\weapons.dm"