From e720bb2d453df54e9c8c77b0c134d5c947e24e2e Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Sun, 17 Jul 2022 21:53:07 -0400 Subject: [PATCH] [MDB IGNORE] Hydroponics tray, shower, and sink improvements (#67672) --- .../IceRuins/icemoon_surface_bughabitat.dmm | 4 +- .../IceRuins/icemoon_surface_mining_site.dmm | 2 +- .../IceRuins/icemoon_surface_pizza.dmm | 5 +- ...cemoon_underground_abandoned_homestead.dmm | 4 +- ..._underground_abandoned_plasma_facility.dmm | 23 +- .../icemoon_underground_abandoned_village.dmm | 5 +- .../icemoon_underground_bathhouse.dmm | 7 +- .../icemoon_underground_frozen_comms.dmm | 4 +- .../IceRuins/icemoon_underground_hermit.dmm | 2 +- .../LavaRuins/lavaland_biodome_beach.dmm | 20 +- .../lavaland_surface_biodome_winter.dmm | 8 +- .../LavaRuins/lavaland_surface_seed_vault.dmm | 22 +- .../lavaland_surface_syndicate_base1.dmm | 27 +- .../SpaceRuins/DJstation/quarters_1.dmm | 9 +- .../SpaceRuins/DJstation/quarters_2.dmm | 9 +- .../SpaceRuins/DJstation/quarters_3.dmm | 8 +- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 22 +- .../SpaceRuins/derelict_sulaco.dmm | 4 +- .../RandomRuins/SpaceRuins/forgottenship.dmm | 12 +- .../SpaceRuins/hilbertresearchfacility.dmm | 4 +- .../SpaceRuins/listeningstation.dmm | 10 +- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 31 +- _maps/RandomRuins/SpaceRuins/spacehotel.dmm | 84 +---- _maps/RandomZLevels/SnowCabin.dmm | 40 +- _maps/RandomZLevels/TheBeach.dmm | 8 +- _maps/RandomZLevels/moonoutpost19.dmm | 58 +-- _maps/RandomZLevels/research.dmm | 16 +- _maps/RandomZLevels/snowdin.dmm | 62 +--- _maps/RandomZLevels/undergroundoutpost45.dmm | 81 +---- .../map_files/Deltastation/DeltaStation2.dmm | 244 ++++--------- .../map_files/IceBoxStation/IceBoxStation.dmm | 343 ++++-------------- _maps/map_files/KiloStation/KiloStation.dmm | 208 +++-------- _maps/map_files/MetaStation/MetaStation.dmm | 331 +++++------------ _maps/map_files/Mining/Lavaland.dmm | 73 +--- _maps/map_files/generic/CentCom.dmm | 176 ++------- .../modular_pieces/maintenance_bar_1.dmm | 4 +- .../maintenance_lowarrivals_2.dmm | 5 +- _maps/map_files/tramstation/tramstation.dmm | 224 +++--------- _maps/shuttles/emergency_asteroid.dmm | 6 +- _maps/shuttles/emergency_bballhooper.dmm | 6 +- _maps/shuttles/emergency_casino.dmm | 18 +- _maps/shuttles/emergency_cere.dmm | 6 +- _maps/shuttles/emergency_delta.dmm | 8 +- _maps/shuttles/emergency_donut.dmm | 9 +- _maps/shuttles/emergency_kilo.dmm | 11 +- _maps/shuttles/emergency_luxury.dmm | 4 +- _maps/shuttles/emergency_medisim.dmm | 8 +- _maps/shuttles/emergency_meta.dmm | 4 +- _maps/shuttles/emergency_monastery.dmm | 20 +- _maps/shuttles/emergency_omega.dmm | 3 +- _maps/shuttles/emergency_supermatter.dmm | 8 +- _maps/shuttles/emergency_tram.dmm | 8 +- _maps/shuttles/emergency_zeta.dmm | 3 +- _maps/shuttles/ferry_meat.dmm | 5 +- _maps/shuttles/infiltrator_advanced.dmm | 7 +- _maps/shuttles/infiltrator_basic.dmm | 5 +- _maps/shuttles/pirate_default.dmm | 9 +- _maps/shuttles/pirate_silverscale.dmm | 8 +- _maps/shuttles/ruin_caravan_victim.dmm | 4 +- _maps/shuttles/whiteship_box.dmm | 10 +- _maps/shuttles/whiteship_delta.dmm | 9 +- _maps/shuttles/whiteship_donut.dmm | 5 +- _maps/shuttles/whiteship_meta.dmm | 20 +- _maps/templates/battlecruiser_starfury.dmm | 17 +- _maps/templates/hilbertshotel.dmm | 14 +- _maps/templates/hilbertshotellore.dmm | 24 +- _maps/templates/holodeck_lounge.dmm | 5 +- _maps/templates/holodeck_medicalsim.dmm | 8 +- _maps/templates/shelter_2.dmm | 7 +- _maps/templates/shelter_3.dmm | 5 +- code/datums/components/crafting/recipes.dm | 2 +- code/datums/components/plumbing/_plumbing.dm | 59 ++- code/game/objects/structures/shower.dm | 296 +++++++++++---- code/game/objects/structures/watercloset.dm | 97 ++++- code/modules/hydroponics/hydroponics.dm | 72 +++- .../lavalandruin_code/elephantgraveyard.dm | 1 + icons/obj/plumbing/connects.dmi | Bin 2387 -> 2449 bytes icons/obj/watercloset.dmi | Bin 29128 -> 28148 bytes .../Scripts/67672_sinks_and_showers.txt | 17 + 79 files changed, 1040 insertions(+), 1987 deletions(-) create mode 100644 tools/UpdatePaths/Scripts/67672_sinks_and_showers.txt diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm index 631e90c9720..fb0f269ba29 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm @@ -129,9 +129,7 @@ /turf/open/floor/plastic, /area/ruin/bughabitat) "of" = ( -/obj/structure/sink{ - dir = 4 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/siding/wideplating/light{ color = "#236F26"; dir = 8 diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm index d98aafc578e..29d46535fb9 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm @@ -41,7 +41,7 @@ /turf/closed/mineral/random/snow, /area/icemoon/surface/outdoors/nospawn) "j" = ( -/obj/structure/sink/kitchen, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/wood, /area/ruin/unpowered) "k" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm index f25618b81a7..0186331573d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm @@ -754,10 +754,7 @@ /turf/open/floor/iron/cafeteria, /area/ruin/pizzeria/kitchen) "Aa" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, /obj/structure/mirror/directional/west, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm index 6820f116ac7..4e1b1369198 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm @@ -22,9 +22,7 @@ /obj/structure/table/bronze{ color = "#666666" }, -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /obj/item/plate, /turf/open/floor/wood/large{ initial_gas_mix = "ICEMOON_ATMOS" diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm index e446643553c..96e20d1af10 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm @@ -767,10 +767,7 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "lc" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/blacklight/directional/south, @@ -1884,9 +1881,7 @@ /area/icemoon/underground/explored) "EZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/item/reagent_containers/glass/bucket, /obj/item/mop/advanced, /turf/open/floor/plating/icemoon, @@ -1947,9 +1942,7 @@ /obj/item/soap/homemade{ pixel_y = 2 }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/ruin/plasma_facility/commons) @@ -2809,10 +2802,7 @@ /area/ruin/plasma_facility/commons) "TD" = ( /obj/structure/table/reinforced, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/kitchen/directional/west, /obj/item/reagent_containers/food/condiment/rice{ pixel_x = -6; pixel_y = 11 @@ -3021,10 +3011,7 @@ /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) "XU" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index aec8b2f9a78..9d854818d22 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -209,10 +209,7 @@ /turf/open/floor/plating, /area/ruin/powered) "sY" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/kitchen/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/ruin/powered) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm index 63e8db6b24d..eeb5272b92c 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm @@ -18,14 +18,11 @@ /area/ruin/powered/bathhouse) "e" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/ruin/powered/bathhouse) "f" = ( -/obj/machinery/shower{ - pixel_y = 16; +/obj/machinery/shower/directional/south{ reagent_id = /datum/reagent/water/holywater }, /obj/structure/curtain, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm index e0adf2ed770..1d5c5cc71a7 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm @@ -148,9 +148,7 @@ /turf/open/floor/plating/icemoon, /area/ruin/powered/shuttle) "wJ" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/showroomfloor{ initial_gas_mix = "ICEMOON_ATMOS" }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm index 9ee049e8986..bbda48726b2 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm @@ -47,7 +47,7 @@ /turf/closed/wall/mineral/wood, /area/ruin/powered/shuttle) "oJ" = ( -/obj/structure/sink, +/obj/structure/sink/directional/south, /turf/open/floor/plating, /area/ruin/powered/shuttle) "pI" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index d48b3d8622c..8f94726e2bf 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -195,9 +195,7 @@ /turf/open/misc/beach/sand, /area/ruin/powered/beach) "ek" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/ruin/powered/beach) "et" = ( @@ -484,9 +482,7 @@ /area/ruin/powered/beach) "qc" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink/kitchen{ - pixel_y = 32 - }, +/obj/structure/sink/kitchen/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, @@ -926,11 +922,9 @@ /turf/closed/wall/mineral/sandstone, /area/ruin/powered/beach) "FC" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/west{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 12 + name = "old sink" }, /turf/open/floor/wood, /area/ruin/powered/beach) @@ -1212,11 +1206,9 @@ /turf/open/floor/sepia, /area/ruin/powered/beach) "PY" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /turf/open/floor/pod/light, /area/ruin/powered/beach) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index e1b1094cf63..9d930a5dc7a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -3,9 +3,7 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/white/textured_large, /area/ruin/powered/snow_biodome) "ac" = ( @@ -37,9 +35,7 @@ /turf/open/floor/circuit, /area/ruin/powered/snow_biodome) "ai" = ( -/obj/structure/sink{ - pixel_y = 26 - }, +/obj/structure/sink/directional/south, /obj/structure/mirror/directional/east, /turf/open/floor/iron/white/textured_large, /area/ruin/powered/snow_biodome) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index c9c68737bec..ed086216aa5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -184,19 +184,12 @@ /turf/open/floor/vault, /area/ruin/powered/seedvault) "aC" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/ruin/powered/seedvault) "aD" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/ruin/powered/seedvault) @@ -246,10 +239,7 @@ /turf/open/floor/iron/dark, /area/ruin/powered/seedvault) "aK" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/ruin/powered/seedvault) @@ -364,11 +354,7 @@ /turf/open/floor/vault, /area/ruin/powered/seedvault) "aZ" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/dark, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 5ad4ded8b41..a7a05d786d6 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -875,9 +875,7 @@ /area/ruin/syndicate_lava_base/main) "fF" = ( /obj/effect/turf_decal/bot, -/obj/machinery/shower{ - pixel_y = 14 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/main) "fH" = ( @@ -1017,11 +1015,7 @@ dir = 8; pixel_x = -24 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, @@ -1739,9 +1733,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/machinery/shower{ +/obj/machinery/shower/directional/east{ desc = "The HS-452. Installed recently by the Donk Co. Hygiene Division."; - dir = 4; name = "emergency shower" }, /obj/structure/closet/radiation, @@ -1853,9 +1846,7 @@ "kN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/bar) "kP" = ( @@ -2127,10 +2118,7 @@ /turf/open/floor/iron, /area/ruin/syndicate_lava_base/medbay) "mf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/medbay) @@ -2568,10 +2556,7 @@ /obj/structure/toilet{ pixel_y = 18 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/small/directional/west, /obj/structure/mirror/directional/east, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm index 5e295a394ea..51447e42663 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm @@ -55,9 +55,7 @@ /area/template_noop) "F" = ( /obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/freezer, /area/ruin/space/djstation) "J" = ( @@ -73,10 +71,7 @@ /turf/open/floor/iron/grimy, /area/ruin/space/djstation) "R" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/freezer, /area/ruin/space/djstation) "V" = ( diff --git a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_2.dmm b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_2.dmm index 1c1e4da6f5a..4a1dac457b1 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_2.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_2.dmm @@ -7,19 +7,14 @@ /turf/open/floor/iron/dark/textured, /area/ruin/space/djstation) "f" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/dark/textured, /area/ruin/space/djstation) "i" = ( /turf/closed/wall, /area/ruin/space/djstation) "k" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/effect/turf_decal/siding/yellow, /obj/structure/curtain, /turf/open/floor/iron/freezer, diff --git a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_3.dmm b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_3.dmm index 6abcb22813e..81b32e7ed1f 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_3.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_3.dmm @@ -45,9 +45,7 @@ /turf/template_noop, /area/template_noop) "s" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer, /area/ruin/space/djstation) "t" = ( @@ -145,9 +143,7 @@ /area/space/nearstation) "X" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 17 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/freezer, /area/ruin/space/djstation) "Y" = ( diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index a7dd773f8e8..c0d1637a950 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -398,9 +398,7 @@ /turf/open/floor/iron/cafeteria, /area/ruin/space/has_grav/deepstorage/kitchen) "bc" = ( -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/cafeteria, /area/ruin/space/has_grav/deepstorage/kitchen) "bd" = ( @@ -664,10 +662,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/deepstorage/hydroponics) "bR" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron, /area/ruin/space/has_grav/deepstorage/hydroponics) "bS" = ( @@ -881,9 +876,7 @@ /turf/closed/wall/mineral/iron, /area/ruin/space/has_grav/deepstorage) "cq" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/item/soap, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/deepstorage) @@ -1084,9 +1077,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/deepstorage) "cM" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/structure/window/reinforced/plasma, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/deepstorage) @@ -1095,10 +1086,7 @@ /area/ruin/space/has_grav/deepstorage) "cO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/deepstorage) diff --git a/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm b/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm index 93c7ade2950..6839f77d2c8 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm @@ -698,9 +698,7 @@ "XC" = ( /obj/structure/curtain, /obj/item/soap/deluxe, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/showroomfloor, /area/ruin/unpowered) "YA" = ( diff --git a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm index 17de0160b25..9498d960a21 100644 --- a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm +++ b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm @@ -529,16 +529,12 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/syndicate_forgotten_cargopod) "bG" = ( -/obj/structure/sink{ - pixel_y = 32 - }, +/obj/structure/sink/directional/south, /obj/structure/mirror/directional/west, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/syndicate_forgotten_ship) "bH" = ( -/obj/structure/sink{ - pixel_y = 32 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/syndicate_forgotten_ship) "bI" = ( @@ -1075,9 +1071,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/syndicate_forgotten_ship) "dc" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/ruin/space/has_grav/syndicate_forgotten_ship) diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm index 27f9f27cdb7..9b1df6b1c97 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm @@ -944,9 +944,7 @@ /area/ruin/space/has_grav/powered/hilbertresearchfacility) "wG" = ( /obj/effect/turf_decal/stripes/end, -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/hilbertresearchfacility) "wI" = ( diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 0f3b499d960..eefc0e3fbe9 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -433,14 +433,8 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/listeningstation) "xY" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11; - pixel_y = -2 - }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/structure/sink/directional/west, +/obj/machinery/shower/directional/north, /obj/effect/decal/cleanable/dirt, /obj/structure/mirror/directional/east, /turf/open/floor/iron/showroomfloor, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 6a975b74189..a358bc683ee 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -598,10 +598,8 @@ "cg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/left/directional/west, -/obj/machinery/shower{ - dir = 8; - can_refill = 0; - can_toggle_refill = 0 +/obj/machinery/shower/directional/west{ + has_water_reclaimer = 0 }, /obj/item/soap/nanotrasen, /turf/open/floor/iron/white, @@ -2412,10 +2410,9 @@ /area/ruin/space/ancientstation/beta/supermatter) "hx" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) @@ -5423,11 +5420,9 @@ "sJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/west{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; name = "old sink"; - pixel_x = 12; has_water_reclaimer = 0 }, /turf/open/floor/iron, @@ -5883,10 +5878,8 @@ /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) "wq" = ( -/obj/machinery/shower{ - dir = 8; - can_refill = 0; - can_toggle_refill = 0 +/obj/machinery/shower/directional/west{ + has_water_reclaimer = 0 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/vault, @@ -6313,9 +6306,7 @@ /area/ruin/space/ancientstation/beta/medbay) "AO" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 8; - pixel_x = 11; +/obj/structure/sink/directional/west{ has_water_reclaimer = 0 }, /obj/structure/mirror/directional/east, @@ -8837,10 +8828,8 @@ "Xe" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/right/directional/west, -/obj/machinery/shower{ - dir = 8; - can_refill = 0; - can_toggle_refill = 0 +/obj/machinery/shower/directional/west{ + has_water_reclaimer = 0 }, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/charlie/hall) diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 5f82876e86c..95b4dd6f1c2 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -156,10 +156,7 @@ /turf/open/floor/wood/tile, /area/ruin/space/has_grav/hotel) "bK" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/hotel/pool) "bM" = ( @@ -327,10 +324,7 @@ }, /area/ruin/space/has_grav/hotel/pool) "dd" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_3) "de" = ( @@ -460,9 +454,7 @@ /obj/structure/window{ dir = 1 }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_6) "eF" = ( @@ -1283,7 +1275,7 @@ /obj/structure/window{ dir = 1 }, -/obj/machinery/shower, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/hotel/bar) "lh" = ( @@ -1815,10 +1807,7 @@ pixel_y = -25 }, /obj/structure/cable, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/item/reagent_containers/spray/cleaner, /turf/open/floor/catwalk_floor, /area/ruin/space/has_grav/hotel/custodial) @@ -1994,11 +1983,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/hotel/power) "sX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/dock) @@ -2547,10 +2532,7 @@ /turf/template_noop, /area/template_noop) "yD" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/hotel/pool) @@ -2635,9 +2617,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_3) "zZ" = ( /obj/structure/window, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_5) "Ac" = ( @@ -2812,9 +2792,7 @@ /obj/structure/window{ dir = 1 }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_2) "Db" = ( @@ -2872,9 +2850,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/hotel/dock) "DP" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/item/bikehorn/rubberducky, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/hotel/pool) @@ -2907,9 +2883,7 @@ /area/ruin/space/has_grav/hotel) "Er" = ( /obj/structure/window, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_3) "Ew" = ( @@ -2958,10 +2932,7 @@ /turf/open/floor/carpet/lone, /area/ruin/space/has_grav/hotel/guestroom/room_1) "EL" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/kitchen/directional/west, /turf/open/floor/iron/cafeteria, /area/ruin/space/has_grav/hotel/bar) "EO" = ( @@ -3464,11 +3435,7 @@ /turf/open/floor/iron/grimy, /area/ruin/space/has_grav/hotel) "Lx" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_5) "LA" = ( @@ -3986,9 +3953,7 @@ /area/ruin/space/has_grav/hotel) "RR" = ( /obj/structure/window, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_1) "RS" = ( @@ -4104,11 +4069,7 @@ /turf/open/floor/carpet/purple, /area/ruin/space/has_grav/hotel/guestroom/room_5) "Tv" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_2) "TA" = ( @@ -4325,9 +4286,7 @@ /turf/open/floor/iron/grimy, /area/ruin/space/has_grav/hotel/bar) "VU" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/hotel/pool) "VV" = ( @@ -4669,11 +4628,7 @@ /turf/open/floor/iron/sepia, /area/ruin/space/has_grav/hotel/pool) "Zl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_1) "Zm" = ( @@ -4688,10 +4643,7 @@ /turf/template_noop, /area/template_noop) "Zo" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, /area/ruin/space/has_grav/hotel/guestroom/room_4) "Zu" = ( diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 7c04d81e075..a3177e1e0dd 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -102,19 +102,12 @@ /turf/open/floor/wood, /area/awaymission/cabin) "as" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/north, /turf/open/floor/iron/freezer, /area/awaymission/cabin) "at" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/north, /turf/open/floor/iron/freezer, /area/awaymission/cabin) @@ -201,9 +194,7 @@ /turf/open/floor/plating/snowed/snow_cabin, /area/awaymission/cabin/snowforest/sovietsurface) "aH" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/awaymission/cabin) @@ -282,10 +273,9 @@ /turf/open/floor/plating, /area/awaymission/cabin) "aS" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "sink"; - pixel_y = 28 + name = "sink" }, /obj/structure/janitorialcart, /obj/item/mop, @@ -465,10 +455,9 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/cabin) "bz" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "sink"; - pixel_y = 28 + name = "sink" }, /turf/open/floor/iron/cafeteria, /area/awaymission/cabin) @@ -495,17 +484,11 @@ /turf/open/floor/iron/white, /area/awaymission/cabin) "bG" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/awaymission/cabin) "bH" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /obj/item/soap/nanotrasen{ pixel_x = -1; @@ -517,10 +500,7 @@ /turf/open/lava, /area/awaymission/cabin/caves/mountain) "bJ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/freezer, /area/awaymission/cabin) "bK" = ( diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm index 0be6b8bd10b..0d7de3b1621 100644 --- a/_maps/RandomZLevels/TheBeach.dmm +++ b/_maps/RandomZLevels/TheBeach.dmm @@ -508,17 +508,13 @@ "bM" = ( /obj/structure/mirror/directional/east, /obj/effect/turf_decal/sand, -/obj/structure/sink{ - pixel_y = 32 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/awaymission/beach) "bN" = ( /obj/structure/mirror/directional/west, /obj/effect/turf_decal/sand, -/obj/structure/sink{ - pixel_y = 32 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/awaymission/beach) "bO" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 32ef9fbc2b8..56411df2435 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -275,9 +275,7 @@ }, /area/awaymission/moonoutpost19/syndicate) "bv" = ( -/obj/structure/sink{ - pixel_y = 28 - }, +/obj/structure/sink/directional/south, /obj/machinery/light/small/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer{ @@ -2359,11 +2357,7 @@ }, /area/awaymission/moonoutpost19/research) "gr" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/awaymission/moonoutpost19/research) "gs" = ( @@ -3022,10 +3016,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "hS" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/urinal/directional/north, /obj/structure/mirror/directional/east, /obj/effect/decal/cleanable/dirt, @@ -3034,17 +3025,13 @@ }, /area/awaymission/moonoutpost19/arrivals) "hT" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/arrivals) "hU" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -3196,10 +3183,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "ik" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east{ icon_state = "mirror_broke" }, @@ -3220,9 +3204,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "in" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, @@ -3334,9 +3316,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "iA" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/item/bikehorn/rubberducky, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -3376,9 +3356,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "iF" = ( -/obj/structure/sink{ - pixel_y = 28 - }, +/obj/structure/sink/directional/south, /obj/machinery/light/small/directional/west, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -3449,11 +3427,7 @@ }, /area/awaymission/moonoutpost19/research) "iN" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -3473,9 +3447,7 @@ }, /area/awaymission/moonoutpost19/research) "iP" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, @@ -4599,10 +4571,9 @@ }, /area/awaymission/moonoutpost19/arrivals) "lw" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /turf/open/floor/iron/showroomfloor{ heat_capacity = 1e+006; @@ -6144,8 +6115,7 @@ /area/awaymission/moonoutpost19/main) "Jr" = ( /obj/structure/sign/warning/secure_area/directional/north, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/stripes/line{ diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 12dee35506a..c65e064401d 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -2153,11 +2153,7 @@ /area/awaymission/research/interior/secure) "io" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/freezer, /area/awaymission/research/interior/bathroom) "ip" = ( @@ -2241,9 +2237,7 @@ /turf/closed/wall, /area/awaymission/research/interior/bathroom) "iN" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer, /area/awaymission/research/interior/bathroom) "iO" = ( @@ -2329,11 +2323,7 @@ /turf/closed/wall, /area/awaymission/research/interior/medbay) "jg" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/awaymission/research/interior/medbay) diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 9b8b3518cd7..78fa5e454a0 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -2294,10 +2294,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "gL" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ piping_layer = 4; pixel_x = 5; @@ -3451,10 +3448,7 @@ pixel_x = 5; pixel_y = 5 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 4 @@ -3738,9 +3732,7 @@ pixel_x = 5; pixel_y = 5 }, -/obj/machinery/shower{ - pixel_y = 25 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kw" = ( @@ -3753,9 +3745,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, -/obj/machinery/shower{ - pixel_y = 25 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kx" = ( @@ -3768,9 +3758,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/shower{ - pixel_y = 25 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "ky" = ( @@ -4452,21 +4440,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lV" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lW" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) @@ -4662,10 +4644,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "mv" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) @@ -6733,10 +6712,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/cavern2) "tc" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/cavern2) "td" = ( @@ -6774,9 +6750,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) "ti" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /obj/structure/window{ dir = 4 @@ -7134,10 +7108,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/cavern1) "vw" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/cavern1) "vx" = ( @@ -7184,9 +7155,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "vD" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /obj/structure/window{ dir = 4 @@ -11520,10 +11489,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) "Nt" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index be4b12ee0ce..fa8afd7033f 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -397,17 +397,13 @@ }, /area/awaymission/undergroundoutpost45/central) "bi" = ( -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/central) "bj" = ( -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -1375,9 +1371,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -1487,9 +1481,7 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -2497,9 +2489,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "ga" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/showroomfloor{ heat_capacity = 1e+006 }, @@ -2680,9 +2670,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "gE" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/cafeteria{ dir = 5; heat_capacity = 1e+006 @@ -4746,9 +4734,7 @@ }, /area/awaymission/undergroundoutpost45/research) "la" = ( -/obj/machinery/shower{ - pixel_y = 15 - }, +/obj/machinery/shower/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -4757,9 +4743,7 @@ }, /area/awaymission/undergroundoutpost45/research) "lb" = ( -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -7399,10 +7383,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "pY" = ( /obj/structure/mirror/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -7496,10 +7477,7 @@ /area/awaymission/undergroundoutpost45/research) "qm" = ( /obj/machinery/light/small/directional/south, -/obj/structure/sink{ - dir = 4; - pixel_x = -11 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -7596,10 +7574,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "qx" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -7874,10 +7849,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rc" = ( /obj/structure/mirror/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, @@ -8702,9 +8674,7 @@ }, /area/awaymission/undergroundoutpost45/research) "sA" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/item/soap/nanotrasen, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -8718,9 +8688,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "sC" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, @@ -9133,9 +9101,7 @@ }, /area/awaymission/undergroundoutpost45/research) "ts" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, @@ -9447,17 +9413,13 @@ /turf/closed/wall/r_wall, /area/awaymission/undergroundoutpost45/research) "tX" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/crew_quarters) "tY" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/item/bikehorn/rubberducky, /turf/open/floor/iron/freezer{ heat_capacity = 1e+006 @@ -10606,10 +10568,7 @@ }, /area/awaymission/undergroundoutpost45/engineering) "wL" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/small/directional/south, /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer{ @@ -11873,9 +11832,7 @@ }, /area/awaymission/undergroundoutpost45/central) "NR" = ( -/obj/structure/sink{ - pixel_y = 25 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/no_smoking/directional/west, /obj/effect/turf_decal/stripes/line{ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index b2444afca6a..05c132d2baf 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1453,10 +1453,7 @@ /turf/open/floor/iron, /area/station/security/checkpoint) "are" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/east, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/blobstart, @@ -1576,10 +1573,7 @@ dir = 4 }, /obj/machinery/status_display/evac/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/machinery/camera/directional/east{ c_tag = "Service - Bar"; name = "service camera" @@ -2172,9 +2166,7 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/storage) "aAT" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/item/soap/nanotrasen, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -5994,10 +5986,7 @@ /area/station/medical/treatment_center) "bDG" = ( /obj/machinery/light_switch/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/blue{ dir = 8 }, @@ -6460,8 +6449,7 @@ /obj/effect/turf_decal/trimline/blue/end{ dir = 4 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/stripes/line{ @@ -6472,10 +6460,7 @@ /area/station/engineering/main) "bIb" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/bot, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -7064,9 +7049,7 @@ dir = 4 }, /obj/machinery/firealarm/directional/west, -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron, /area/station/medical/virology) "bQs" = ( @@ -7294,9 +7277,7 @@ /turf/open/floor/circuit/green, /area/station/science/xenobiology) "bSd" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -8334,9 +8315,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /obj/structure/curtain, /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Shower" @@ -11480,9 +11459,7 @@ /area/station/security/courtroom) "dax" = ( /obj/structure/window, -/obj/structure/sink{ - pixel_y = 30 - }, +/obj/structure/sink/directional/south, /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/glass/watering_can, /obj/effect/decal/cleanable/dirt, @@ -11643,10 +11620,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "dcL" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -11725,10 +11699,7 @@ /turf/open/floor/iron, /area/station/maintenance/starboard) "ddX" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white, @@ -16151,8 +16122,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "eur" = ( -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/structure/disposalpipe/segment, @@ -18213,10 +18183,8 @@ /turf/open/floor/iron, /area/station/medical/virology) "eYG" = ( -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_y = -4 +/obj/machinery/shower/directional/west{ + name = "emergency shower" }, /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -18973,10 +18941,9 @@ /turf/open/floor/iron, /area/station/science/research) "fhM" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plating, @@ -25265,10 +25232,7 @@ /area/station/security/prison) "gPL" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 4; - pixel_x = -11 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron, /area/station/medical/morgue) @@ -25463,9 +25427,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron, /area/station/service/hydroponics) "gTc" = ( @@ -28415,9 +28377,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "hOr" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /obj/effect/turf_decal/trimline/blue/end, /turf/open/floor/iron/white, /area/station/medical/treatment_center) @@ -29753,10 +29713,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) "ifl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -31904,10 +31861,9 @@ /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) "iJj" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/mess, @@ -33305,9 +33261,7 @@ "jbU" = ( /obj/structure/sign/warning/biohazard/directional/south, /obj/effect/turf_decal/bot, -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron, /area/station/medical/virology) "jbV" = ( @@ -35170,8 +35124,7 @@ /turf/open/floor/carpet, /area/station/command/meeting_room/council) "jBE" = ( -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end{ @@ -35285,10 +35238,7 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "jCF" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -37086,10 +37036,7 @@ "kaL" = ( /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/checker, /area/station/service/hydroponics/garden/abandoned) "kaM" = ( @@ -39526,8 +39473,7 @@ /area/station/security/courtroom) "kHV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end{ @@ -45472,8 +45418,7 @@ /obj/effect/turf_decal/trimline/blue/end{ dir = 4 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/stripes/line{ @@ -46468,10 +46413,7 @@ /turf/open/space, /area/station/solars/starboard/aft) "mAA" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/kitchen/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) "mAB" = ( @@ -49144,9 +49086,7 @@ /turf/open/floor/iron, /area/station/maintenance/port/aft) "nnW" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/item/soap/homemade, /turf/open/floor/iron/white, /area/station/security/prison/toilet) @@ -50289,8 +50229,7 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) "nDv" = ( -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /obj/structure/cable, @@ -50940,9 +50879,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj/structure/sink{ - dir = 1 - }, +/obj/structure/sink/directional/north, /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/service/hydroponics) @@ -51658,8 +51595,7 @@ /area/station/science/xenobiology) "nVA" = ( /obj/structure/cable, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/stripes/end{ @@ -57187,9 +57123,7 @@ /area/station/maintenance/disposal/incinerator) "pwA" = ( /obj/structure/cable, -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "pwE" = ( @@ -58042,10 +57976,7 @@ "pHv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/commons/toilet/locker) @@ -58142,10 +58073,7 @@ /area/station/maintenance/department/crew_quarters/bar) "pIA" = ( /obj/structure/mirror/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, /obj/machinery/light/small/directional/north, @@ -58244,9 +58172,7 @@ /turf/open/floor/iron, /area/station/security/holding_cell) "pJx" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/neutral, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, @@ -59808,9 +59734,7 @@ /turf/open/floor/iron, /area/station/science/research/abandoned) "qep" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -62874,9 +62798,8 @@ /turf/open/floor/iron, /area/station/maintenance/department/electrical) "raz" = ( -/obj/machinery/shower{ - name = "emergency shower"; - pixel_y = 16 +/obj/machinery/shower/directional/south{ + name = "emergency shower" }, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/blue/end, @@ -63961,8 +63884,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "rqY" = ( -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/structure/disposalpipe/segment, @@ -65114,10 +65036,9 @@ /area/station/maintenance/starboard) "rJN" = ( /obj/effect/turf_decal/bot, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /turf/open/floor/iron, /area/station/service/kitchen/abandoned) @@ -66139,10 +66060,7 @@ /turf/open/floor/iron, /area/station/service/library/abandoned) "rVq" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/green{ dir = 8 }, @@ -68191,9 +68109,7 @@ /area/station/maintenance/port/lesser) "sxe" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/medical/morgue) @@ -68413,9 +68329,7 @@ /area/station/maintenance/starboard) "sAS" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, @@ -69126,9 +69040,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "sIR" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron/white, /area/station/security/prison/toilet) @@ -70102,10 +70014,7 @@ /turf/open/floor/iron, /area/station/science/robotics/mechbay) "sWe" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -70118,9 +70027,7 @@ dir = 4 }, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/machinery/camera/directional/north{ c_tag = "Service - Bar Backroom"; name = "service camera" @@ -70569,9 +70476,7 @@ }, /obj/structure/cable, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -72487,10 +72392,7 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "tAA" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/siding/green/corner{ dir = 4 }, @@ -78496,9 +78398,7 @@ /area/station/science/lab) "vdZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/siding/purple{ dir = 4 }, @@ -81091,10 +80991,7 @@ /turf/open/floor/catwalk_floor/iron, /area/station/commons/dorms) "vMZ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/item/trash/sosjerky, /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32 @@ -82090,11 +81987,7 @@ }, /area/station/engineering/atmos) "vZv" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 }, @@ -82221,10 +82114,7 @@ /turf/closed/wall, /area/station/service/hydroponics/garden) "wbh" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) "wbn" = ( @@ -82921,9 +82811,7 @@ }, /obj/machinery/airalarm/directional/west, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -84554,9 +84442,7 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "wEz" = ( -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, @@ -85919,8 +85805,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end{ @@ -88285,8 +88170,7 @@ /area/station/security/detectives_office) "xGL" = ( /obj/effect/turf_decal/bot, -/obj/machinery/shower{ - dir = 1; +/obj/machinery/shower/directional/north{ name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end{ @@ -88708,9 +88592,7 @@ /area/station/security/brig) "xNu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -88802,9 +88684,7 @@ }, /obj/structure/cable, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index c7cfe1f4bc5..58e384864e5 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -1041,10 +1041,7 @@ /turf/open/floor/iron, /area/station/commons/dorms) "asb" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/cable, /obj/machinery/button/door/directional/east{ id = "xenobio10"; @@ -1267,9 +1264,7 @@ dir = 8; name = "Air to Distro" }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/item/mop, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/iron/smooth, @@ -2280,9 +2275,7 @@ /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) "aLM" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) "aLS" = ( @@ -3175,9 +3168,7 @@ /turf/open/floor/iron, /area/mine/production) "aYQ" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /obj/item/soap/nanotrasen, /obj/item/bikehorn/rubberducky/plasticducky, /turf/open/floor/iron/freezer, @@ -3907,9 +3898,7 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "bjZ" = ( -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -5830,11 +5819,9 @@ /turf/open/floor/iron, /area/station/security/processing) "bLL" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/west{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 12 + name = "old sink" }, /turf/open/floor/iron/freezer, /area/mine/laborcamp) @@ -6099,11 +6086,7 @@ dir = 10 }, /obj/machinery/firealarm/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron, /area/station/service/hydroponics) "bPn" = ( @@ -6329,9 +6312,7 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/atmos) "bRW" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/trimline, /obj/structure/sign/warning/gas_mask{ desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; @@ -8635,9 +8616,7 @@ /obj/item/soap/deluxe, /obj/item/bikehorn/rubberducky, /obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 8 - }, +/obj/machinery/shower/directional/south, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/freezer, /area/station/medical/break_room) @@ -12437,11 +12416,7 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "dFP" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) "dFQ" = ( @@ -14278,9 +14253,7 @@ /turf/open/floor/plating, /area/station/security/prison/safe) "ejZ" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron, /area/station/science/xenobiology) "eke" = ( @@ -15035,10 +15008,7 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "exo" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32 }, @@ -17465,9 +17435,7 @@ /area/station/tcommsat/server) "fjg" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/trimline/blue, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) @@ -17635,11 +17603,9 @@ }, /obj/effect/turf_decal/tile/green, /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/north{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 1; - name = "old sink"; - pixel_y = -5 + name = "old sink" }, /turf/open/floor/iron/dark, /area/mine/laborcamp) @@ -17792,10 +17758,7 @@ /turf/open/floor/iron/dark/textured, /area/station/security/range) "fob" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt/dust, @@ -18299,9 +18262,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) "fwL" = ( -/obj/structure/sink/kitchen{ - pixel_y = 24 - }, +/obj/structure/sink/kitchen/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) @@ -18395,10 +18356,7 @@ "fyh" = ( /obj/effect/turf_decal/tile/neutral/diagonal_edge, /obj/machinery/airalarm/directional/east, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 14 - }, +/obj/structure/sink/kitchen/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen/diagonal, @@ -18758,11 +18716,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/dark{ dir = 4 }, @@ -19155,9 +19109,7 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "fKP" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/window/reinforced/tinted{ dir = 8 }, @@ -19174,10 +19126,7 @@ /turf/open/floor/plating/snowed/coldroom, /area/station/service/kitchen/coldroom) "fLb" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer, /area/station/maintenance/starboard/fore) @@ -19930,9 +19879,7 @@ /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) "fXf" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/window/reinforced/tinted{ dir = 8 }, @@ -20508,9 +20455,7 @@ /turf/open/floor/plating, /area/station/maintenance/aft/lesser) "geZ" = ( -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, @@ -20614,11 +20559,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "ghN" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron, /area/station/maintenance/port/fore) "ghY" = ( @@ -23988,9 +23929,7 @@ /area/station/maintenance/department/medical/central) "hlv" = ( /obj/machinery/airalarm/directional/south, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/delivery, /obj/item/bikehorn/rubberducky, /turf/open/floor/iron/freezer, @@ -24049,10 +23988,7 @@ /turf/open/floor/iron/dark, /area/station/service/hydroponics) "hmZ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer, @@ -24188,9 +24124,7 @@ /area/station/command/heads_quarters/captain) "hpi" = ( /obj/effect/turf_decal/trimline, -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/smooth, /area/mine/eva) "hpm" = ( @@ -24544,9 +24478,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) "huI" = ( @@ -24811,9 +24743,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/dark, /area/station/medical/morgue) "hyV" = ( @@ -25339,10 +25269,7 @@ "hIe" = ( /obj/structure/sign/warning/no_smoking/circle/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/cryo) "hIj" = ( @@ -26178,10 +26105,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics) "hWi" = ( @@ -26306,9 +26230,7 @@ /turf/open/floor/iron, /area/station/commons/locker) "hYO" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/window/reinforced/tinted{ dir = 4 }, @@ -26803,9 +26725,7 @@ /turf/open/floor/iron/white/corner, /area/station/engineering/atmos) "ifZ" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/item/soap/nanotrasen, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) @@ -29619,10 +29539,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "iYt" = ( @@ -30330,10 +30247,7 @@ /turf/open/floor/wood/tile, /area/station/service/theater) "jjO" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/mirror/directional/east, @@ -30547,9 +30461,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "jnX" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/item/bikehorn/rubberducky/plasticducky, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) @@ -31656,11 +31568,7 @@ /turf/open/floor/iron, /area/station/security/prison/work) "jHG" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/light/directional/north, /turf/open/floor/iron/freezer, @@ -32159,10 +32067,7 @@ /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "jOc" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 14 - }, +/obj/structure/sink/kitchen/directional/west, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 }, @@ -32827,9 +32732,7 @@ /turf/open/floor/iron/dark/textured, /area/station/security/range) "jYy" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /obj/structure/mirror/directional/south, /turf/open/floor/iron/freezer, @@ -34749,9 +34652,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "kBP" = ( @@ -36635,9 +36536,7 @@ /obj/structure/railing{ dir = 4 }, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron, /area/station/science/xenobiology) "lei" = ( @@ -37495,9 +37394,7 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "lrD" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/item/soap/deluxe, /obj/item/bikehorn/rubberducky, /obj/structure/curtain, @@ -38408,10 +38305,7 @@ /turf/open/floor/plating, /area/station/science/breakroom) "lIp" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/freezer, @@ -40295,9 +40189,7 @@ /turf/open/floor/iron/smooth, /area/mine/eva) "mqy" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer, /area/station/commons/toilet) "mqD" = ( @@ -41006,9 +40898,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "mCo" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/trimline, /obj/structure/sign/warning/gas_mask{ desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; @@ -41934,10 +41824,9 @@ /turf/open/floor/engine/air, /area/station/engineering/atmos) "mTI" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/freezer, @@ -42278,9 +42167,7 @@ /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) "mYZ" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/red/line{ dir = 6 }, @@ -42926,10 +42813,7 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/rd) "nhg" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) @@ -43902,11 +43786,7 @@ /area/station/security/prison/mess) "nwI" = ( /obj/item/reagent_containers/glass/bucket, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "nwT" = ( @@ -44495,9 +44375,7 @@ /turf/closed/wall/r_wall, /area/station/security/prison/garden) "nDV" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/effect/spawner/random/contraband/permabrig_weapon, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) @@ -51970,9 +51848,7 @@ /turf/open/floor/iron/cafeteria, /area/station/commons/storage/art) "pRZ" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/freezer, /area/mine/laborcamp) @@ -52062,10 +51938,7 @@ /turf/open/floor/iron/white/side, /area/station/science/explab) "pUn" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -52402,9 +52275,7 @@ /turf/open/floor/iron/half, /area/station/hallway/primary/starboard) "qaF" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/stripes/red/end{ dir = 4 }, @@ -55123,11 +54994,7 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "qSh" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/landmark/start/assistant, /turf/open/floor/iron/freezer, @@ -55377,9 +55244,7 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "qWy" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/red/end{ dir = 8 }, @@ -55450,10 +55315,7 @@ c_tag = "Research Division Access"; network = list("ss13","rd") }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -57962,9 +57824,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/machinery/camera{ c_tag = "Virology Break Room"; dir = 1; @@ -60345,9 +60205,7 @@ /area/station/maintenance/department/medical/morgue) "syL" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/service) "syW" = ( @@ -62353,10 +62211,7 @@ /turf/open/openspace, /area/station/science/xenobiology) "tiQ" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/machinery/button/door/directional/west{ id = "xenobio2"; layer = 4; @@ -62726,9 +62581,7 @@ dir = 6 }, /obj/machinery/airalarm/directional/east, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/station/medical/virology) "toH" = ( @@ -63463,10 +63316,7 @@ /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) "tza" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/service) "tzf" = ( @@ -64139,10 +63989,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 13 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/virology) "tIv" = ( @@ -64686,9 +64533,7 @@ /area/station/maintenance/starboard/upper) "tRc" = ( /obj/effect/turf_decal/trimline, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/sign/warning/gas_mask/directional/south{ desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." }, @@ -66132,10 +65977,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/fore) "uoi" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, /obj/item/reagent_containers/glass/bottle/ammonia, @@ -66151,9 +65993,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "uop" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/red/line{ dir = 5 }, @@ -66648,9 +66488,7 @@ /turf/open/floor/engine/air, /area/station/engineering/atmos) "uxA" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -66707,9 +66545,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "uyO" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/turf_decal/trimline/blue/line{ dir = 5 }, @@ -67925,11 +67761,9 @@ /area/station/service/bar/atrium) "uVa" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /turf/open/floor/plating, /area/station/maintenance/port/aft) @@ -69112,9 +68946,7 @@ /turf/open/floor/iron, /area/station/cargo/storage) "vmp" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) "vmr" = ( @@ -69724,10 +69556,7 @@ /area/station/service/lawoffice) "vwo" = ( /obj/machinery/newscaster/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/window/reinforced, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -70987,9 +70816,7 @@ /turf/open/floor/engine/cult, /area/station/service/library) "vRo" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/turf_decal/trimline/blue/line{ dir = 9 }, @@ -71788,9 +71615,7 @@ /turf/open/floor/iron/large, /area/station/command/heads_quarters/ce) "wcz" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, @@ -73607,9 +73432,7 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "wDf" = ( -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, @@ -73655,10 +73478,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) @@ -75885,9 +75705,7 @@ }, /area/station/science/research) "xmx" = ( -/obj/structure/sink/kitchen{ - pixel_y = 20 - }, +/obj/structure/sink/kitchen/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) @@ -77651,10 +77469,7 @@ }, /area/station/holodeck/rec_center) "xQf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 2298fdb4ada..b37ccfe891e 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -3265,11 +3265,7 @@ /turf/open/floor/plating, /area/station/maintenance/central) "aVC" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11; - pixel_y = 8 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/tile/purple, @@ -5067,8 +5063,7 @@ /area/station/service/chapel) "bAQ" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/tile/green{ @@ -5345,9 +5340,7 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "bDV" = ( -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -5565,10 +5558,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/item/reagent_containers/glass/watering_can, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11832,9 +11822,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) @@ -12070,9 +12058,7 @@ /area/station/engineering/atmos) "dDp" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -14073,8 +14059,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15919,10 +15904,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/disposalpipe/sorting/mail{ dir = 1; sortType = 28 @@ -17713,9 +17695,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "fjn" = ( -/obj/structure/sink{ - pixel_y = 26 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -18407,9 +18387,7 @@ /area/station/maintenance/starboard) "fsu" = ( /obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/item/soap/nanotrasen, @@ -20457,10 +20435,9 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -21068,11 +21045,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/fore) @@ -23266,8 +23239,7 @@ "gHd" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /turf/open/floor/iron/dark, @@ -26341,8 +26313,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/box/corners, @@ -27615,9 +27586,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "hQA" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /obj/item/mop, /obj/item/reagent_containers/glass/bucket, @@ -29735,8 +29704,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31151,8 +31119,7 @@ dir = 8 }, /obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/box/corners, @@ -36139,8 +36106,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /obj/effect/turf_decal/box, @@ -39214,9 +39180,7 @@ /turf/closed/wall/r_wall, /area/station/engineering/supermatter) "lhv" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/item/soap/nanotrasen, /obj/structure/cable, /turf/open/floor/plastic, @@ -41490,9 +41454,7 @@ /area/station/security/brig) "lOZ" = ( /obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/item/bikehorn/rubberducky, @@ -41536,9 +41498,7 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "lPU" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/plastic, /area/station/security/prison/shower) "lPY" = ( @@ -41819,10 +41779,9 @@ /area/station/command/heads_quarters/cmo) "lVe" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/landmark/blobstart, /obj/effect/mapping_helpers/broken_floor, @@ -44673,11 +44632,7 @@ /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/chapel/monastery) "mLe" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -45008,10 +44963,7 @@ }, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Computers"; @@ -49120,8 +49072,7 @@ /area/station/science/ordnance) "ocx" = ( /obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /turf/open/floor/iron/dark, @@ -53773,10 +53724,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/landmark/start/roboticist, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) @@ -54672,11 +54620,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "pGA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box, /obj/structure/mirror/directional/north, @@ -55023,10 +54967,7 @@ /area/station/engineering/lobby) "pLw" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/vomit/old, /obj/structure/sign/poster/contraband/random/directional/north, @@ -55481,8 +55422,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /obj/structure/mirror/directional/east, @@ -59525,10 +59465,9 @@ /area/station/engineering/atmos) "rau" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -60374,9 +60313,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink{ - pixel_y = 26 - }, +/obj/structure/sink/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -64609,10 +64546,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -67173,11 +67107,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 12; - pixel_y = 4 - }, +/obj/structure/sink/kitchen/directional/west, /obj/structure/disposalpipe/segment, /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/cafeteria, @@ -67819,9 +67749,7 @@ /turf/open/floor/iron/dark, /area/station/service/chapel/monastery) "tns" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/airalarm/directional/south, /turf/open/floor/plastic, /area/station/security/prison/shower) @@ -68102,10 +68030,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, @@ -69430,9 +69357,7 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "tMu" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/structure/cable, /turf/open/floor/plastic, /area/station/security/prison/shower) @@ -69802,10 +69727,7 @@ /turf/open/floor/plating, /area/station/maintenance/central) "tRO" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box, @@ -73461,8 +73383,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/box, @@ -73739,9 +73660,7 @@ /turf/closed/wall/rust, /area/station/command/heads_quarters/hos) "uZq" = ( -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -74628,11 +74547,7 @@ "vlv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, /obj/effect/turf_decal/stripes/corner, @@ -75676,11 +75591,7 @@ /area/station/security/courtroom) "vzr" = ( /obj/structure/disposalpipe/segment, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 12; - pixel_y = 4 - }, +/obj/structure/sink/kitchen/directional/west, /turf/open/floor/plastic, /area/station/hallway/secondary/service) "vzt" = ( @@ -77815,11 +77726,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -79798,9 +79705,7 @@ /area/station/medical/virology) "wEy" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 29 - }, +/obj/structure/sink/directional/south, /obj/machinery/camera/directional/west{ c_tag = "Prison Maintenance"; network = list("ss13","prison") @@ -80548,14 +80453,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -82015,11 +81917,9 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom) "xky" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /turf/open/floor/plating, /area/station/security/prison) @@ -83179,11 +83079,7 @@ "xCa" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/structure/disposalpipe/segment, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 12; - pixel_y = 4 - }, +/obj/structure/sink/kitchen/directional/west, /obj/effect/turf_decal/siding/white{ dir = 1 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 6a8e6d790a4..3a4e8ea9b8b 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -66,9 +66,7 @@ /turf/open/floor/iron/textured, /area/station/medical/medbay/central) "aaB" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -337,9 +335,7 @@ /area/station/engineering/atmos) "agZ" = ( /obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/turf_decal/trimline/blue/end{ dir = 1 }, @@ -782,11 +778,7 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "apS" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -3242,9 +3234,7 @@ /turf/open/floor/iron/dark, /area/station/science/ordnance) "bfF" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -3633,9 +3623,7 @@ /area/station/maintenance/central) "bmX" = ( /obj/machinery/light/small/directional/west, -/obj/structure/sink{ - pixel_y = 29 - }, +/obj/structure/sink/directional/south, /mob/living/simple_animal/mouse/brown/tom, /turf/open/floor/plating, /area/station/security/prison/safe) @@ -5101,9 +5089,7 @@ /turf/open/floor/engine, /area/station/science/explab) "bRG" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, @@ -5229,9 +5215,7 @@ /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) "bUc" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/landmark/start/assistant, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) @@ -6416,9 +6400,7 @@ /area/station/maintenance/fore) "cuw" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/structure/curtain, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -6515,9 +6497,7 @@ dir = 1 }, /obj/item/radio/intercom/directional/north, -/obj/machinery/shower{ - pixel_y = 8 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/white, /area/station/science/xenobiology/hallway) "cvY" = ( @@ -6613,10 +6593,7 @@ /turf/open/floor/wood, /area/station/command/corporate_showroom) "cwF" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, @@ -7032,9 +7009,7 @@ /turf/open/floor/plating, /area/station/maintenance/central) "cDQ" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -7414,10 +7389,9 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "cOq" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -10832,10 +10806,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "dXR" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -12659,9 +12632,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -13137,11 +13108,7 @@ /turf/open/floor/plating, /area/station/science/robotics/mechbay) "ePA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/light/small/directional/south, /obj/machinery/button/door/directional/south{ @@ -16499,11 +16466,7 @@ /turf/open/floor/wood, /area/station/cargo/qm) "geV" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/light_switch/directional/west, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 @@ -17108,10 +17071,7 @@ /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) "gqj" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light_switch/directional/east, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 4 @@ -17319,11 +17279,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = -2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "guD" = ( @@ -17842,10 +17798,9 @@ "gEF" = ( /obj/structure/rack, /obj/item/clothing/gloves/color/fyellow, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, @@ -19907,8 +19862,7 @@ /area/station/tcommsat/server) "hqL" = ( /obj/machinery/light_switch/directional/east, -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /obj/structure/sign/warning/secure_area/directional/north, @@ -23555,10 +23509,7 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "izA" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -24704,11 +24655,7 @@ /area/station/service/hydroponics) "iQO" = ( /obj/machinery/firealarm/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/green/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central) @@ -24884,9 +24831,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "iSl" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, +/obj/structure/sink/kitchen/directional/south, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -25254,9 +25199,8 @@ /turf/open/floor/carpet, /area/station/service/chapel) "iZm" = ( -/obj/machinery/shower{ - name = "emergency shower"; - pixel_y = 16 +/obj/machinery/shower/directional/south{ + name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end, /obj/effect/turf_decal/bot{ @@ -25922,11 +25866,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11; - pixel_y = -2 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "jmq" = ( @@ -26073,9 +26013,7 @@ /area/station/hallway/primary/aft) "jov" = ( /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) @@ -26118,9 +26056,7 @@ /turf/open/floor/iron, /area/station/cargo/miningoffice) "jpI" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/landmark/event_spawn, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) @@ -26274,10 +26210,7 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "jsq" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/structure/toilet{ pixel_y = 8 }, @@ -26552,9 +26485,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) "jwg" = ( @@ -29228,11 +29159,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "ktl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 8 }, @@ -32134,10 +32061,9 @@ "lsu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/freezer, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /turf/open/floor/iron, /area/station/cargo/warehouse) @@ -32930,9 +32856,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "lLw" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/door/window/right/directional/east{ base_state = "left"; dir = 2; @@ -33074,9 +32998,7 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "lMY" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/light/small/directional/south, /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron, @@ -33463,10 +33385,9 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom) "lUp" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron/showroomfloor, @@ -33518,10 +33439,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "lUY" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) "lVe" = ( @@ -34080,9 +33998,7 @@ /area/station/maintenance/port/fore) "mgE" = ( /obj/structure/mirror/directional/west, -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) "mgJ" = ( @@ -34975,10 +34891,7 @@ /turf/open/floor/wood, /area/station/commons/lounge) "mxg" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, +/obj/machinery/shower/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/freezer, @@ -35149,9 +35062,7 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "mAe" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, @@ -37488,11 +37399,7 @@ /turf/open/floor/plating, /area/station/cargo/qm) "nor" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, @@ -38270,11 +38177,7 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "nBp" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/port/aft) @@ -39856,9 +39759,7 @@ /area/station/security/range) "ogL" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 17 - }, +/obj/structure/sink/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/random/trash/soap{ spawn_scatter_radius = 1 @@ -40521,9 +40422,8 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "osM" = ( -/obj/machinery/shower{ - name = "emergency shower"; - pixel_y = 16 +/obj/machinery/shower/directional/south{ + name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end, /obj/structure/disposalpipe/segment{ @@ -42579,10 +42479,7 @@ dir = 4 }, /obj/structure/cable, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) @@ -43777,11 +43674,7 @@ /area/station/command/heads_quarters/ce) "pCL" = ( /obj/effect/turf_decal/delivery, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/sign/poster/official/cleanliness{ pixel_y = -32 }, @@ -44008,9 +43901,7 @@ /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) "pGZ" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/freezer, @@ -44726,9 +44617,7 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/storage) "pUl" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/north{ id = "AuxShower"; @@ -46633,11 +46522,7 @@ "qCL" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/cable, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = -2 - }, +/obj/structure/sink/directional/east, /obj/machinery/airalarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/white, @@ -49650,10 +49535,9 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "rEj" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -50357,9 +50241,7 @@ /area/station/security/prison/garden) "rOY" = ( /obj/structure/mirror/directional/east, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) "rPc" = ( @@ -50398,9 +50280,8 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "rPF" = ( -/obj/machinery/shower{ - name = "emergency shower"; - pixel_y = 16 +/obj/machinery/shower/directional/south{ + name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end, /obj/effect/turf_decal/bot{ @@ -50797,10 +50678,7 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "rVb" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/item/reagent_containers/glass/watering_can, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -52242,9 +52120,7 @@ /turf/open/floor/iron/white, /area/station/science/lobby) "sve" = ( -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54468,10 +54344,7 @@ /turf/open/floor/plating, /area/station/maintenance/port) "tit" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/sign/poster/contraband/random/directional/west, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -55471,9 +55344,7 @@ /turf/open/floor/plating, /area/station/science/lab) "tAc" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 4 @@ -55710,10 +55581,7 @@ /turf/open/floor/plating, /area/station/science/research) "tEy" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 14 - }, +/obj/structure/sink/kitchen/directional/west, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -55930,9 +55798,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/machinery/shower{ - name = "emergency shower"; - pixel_y = 16 +/obj/machinery/shower/directional/south{ + name = "emergency shower" }, /obj/effect/turf_decal/trimline/blue/end, /turf/open/floor/iron, @@ -56936,10 +56803,7 @@ /turf/open/floor/engine, /area/station/science/cytology) "ubd" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "ube" = ( @@ -57069,9 +56933,7 @@ /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32 }, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/bot, /obj/item/clothing/suit/apron/chef{ name = "Jim Norton's Quebecois Coffee apron" @@ -57436,10 +57298,7 @@ /turf/closed/wall/r_wall, /area/station/maintenance/department/science/central) "ujM" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) @@ -59653,10 +59512,7 @@ /area/station/medical/virology) "uYg" = ( /obj/structure/cable, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 14 - }, +/obj/structure/sink/kitchen/directional/west, /obj/machinery/power/apc/auto_name/directional/north, /mob/living/simple_animal/hostile/retaliate/goat{ name = "Pete" @@ -60753,10 +60609,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "vro" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/science/research) "vrv" = ( @@ -61217,9 +61070,7 @@ /obj/structure/sign/poster/official/cleanliness{ pixel_x = -32 }, -/obj/structure/sink{ - pixel_y = 22 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 1 }, @@ -61688,9 +61539,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "vIT" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -63369,9 +63218,7 @@ /turf/closed/wall/r_wall, /area/station/science/xenobiology/hallway) "wmT" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 }, @@ -64736,10 +64583,7 @@ /area/station/security/prison/safe) "wOy" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, /turf/open/floor/iron, @@ -65105,10 +64949,7 @@ /turf/open/floor/iron/white, /area/station/science/lobby) "wUm" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, +/obj/machinery/shower/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) @@ -66191,9 +66032,7 @@ /turf/open/floor/iron, /area/station/security/warden) "xnU" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) @@ -67638,11 +67477,7 @@ /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) "xOU" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -68221,11 +68056,9 @@ /turf/open/floor/iron, /area/station/security/courtroom) "xZu" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /obj/structure/mirror/directional/west, /turf/open/floor/wood, @@ -68745,9 +68578,7 @@ /area/space/nearstation) "yih" = ( /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "yis" = ( diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index bf42a2ba9ac..1e480e0faa7 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -616,9 +616,7 @@ /turf/open/floor/iron/dark/smooth_edge, /area/mine/production) "ee" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /obj/machinery/door/window/right/directional/south, /obj/effect/decal/cleanable/dirt, /obj/item/soap/homemade, @@ -653,9 +651,7 @@ /turf/closed/wall, /area/mine/maintenance/public/south) "eC" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/door/window/right/directional/west, /turf/open/floor/iron/freezer, /area/mine/living_quarters) @@ -840,11 +836,9 @@ /turf/open/floor/iron/edge, /area/mine/lounge) "fM" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/west{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 12 + name = "old sink" }, /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, @@ -1136,10 +1130,7 @@ /turf/open/floor/iron/dark/smooth_edge, /area/mine/storage/public) "hj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/sign/poster/official/cleanliness{ @@ -2028,10 +2019,7 @@ /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) "lX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/freezer, @@ -2483,10 +2471,9 @@ }, /area/mine/laborcamp) "nI" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /obj/item/reagent_containers/glass/bucket, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -2830,10 +2817,7 @@ /turf/open/floor/iron/smooth, /area/mine/laborcamp) "pI" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2854,9 +2838,7 @@ /turf/open/floor/iron/freezer, /area/mine/laborcamp/quarters) "pO" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /obj/machinery/door/window/left/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, @@ -3050,9 +3032,7 @@ /turf/open/floor/plating, /area/mine/cafeteria) "qO" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/door/window/left/directional/west, /turf/open/floor/iron/freezer, /area/mine/living_quarters) @@ -3136,9 +3116,7 @@ /turf/open/floor/iron, /area/mine/cafeteria) "rz" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/door/window/left/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, @@ -3997,10 +3975,7 @@ /turf/open/floor/iron, /area/mine/cafeteria) "xr" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/item/reagent_containers/glass/bucket, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -5286,9 +5261,7 @@ /turf/open/floor/iron/dark, /area/mine/laborcamp) "Gz" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/machinery/door/window/right/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, @@ -6112,9 +6085,7 @@ /turf/open/floor/iron/white, /area/mine/laborcamp/production) "Lq" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -6261,9 +6232,7 @@ /turf/open/floor/carpet/neon/simple/red/nodots, /area/mine/cafeteria) "Me" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -7055,11 +7024,9 @@ /turf/open/floor/plating, /area/mine/production) "Ru" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, @@ -8341,9 +8308,7 @@ "Zw" = ( /obj/structure/curtain, /obj/structure/window, -/obj/machinery/shower{ - pixel_y = 22 - }, +/obj/machinery/shower/directional/south, /obj/item/soap, /turf/open/floor/iron/freezer, /area/mine/living_quarters) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index b20e0fed6b6..1db1cf0639d 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -547,9 +547,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/armory) "bI" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/item/soap/syndie, /obj/structure/curtain, /obj/machinery/door/window/survival_pod, @@ -695,10 +693,7 @@ /turf/open/floor/carpet/black, /area/centcom/central_command_areas/holding) "cd" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/white, /area/centcom/tdome/observation) @@ -792,11 +787,7 @@ /turf/open/floor/iron, /area/centcom/tdome/observation) "cr" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11; - pixel_y = 4 - }, +/obj/structure/sink/kitchen/directional/west, /turf/open/floor/iron/cafeteria, /area/centcom/central_command_areas/holding) "ct" = ( @@ -1183,9 +1174,7 @@ /turf/open/floor/grass, /area/centcom/central_command_areas/holding) "dw" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/centcom/tdome/observation) "dx" = ( @@ -1492,10 +1481,7 @@ /obj/structure/toilet/greyscale{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, @@ -1872,10 +1858,7 @@ /turf/open/floor/wood/tile, /area/centcom/central_command_areas/holding) "fp" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, @@ -2030,10 +2013,7 @@ /turf/closed/wall/mineral/wood, /area/centcom/central_command_areas/holding) "fP" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 @@ -2249,9 +2229,7 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/armory) "gy" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -4614,9 +4592,7 @@ }, /area/centcom/syndicate_mothership/expansion_bioterrorism) "mV" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/machinery/light/floor, /turf/open/floor/iron/freezer, /area/centcom/syndicate_mothership/control) @@ -4857,11 +4833,7 @@ /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/control) "nP" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11; - pixel_y = 8 - }, +/obj/structure/sink/kitchen/directional/west, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/catwalk_floor/iron_smooth, /area/centcom/syndicate_mothership/control) @@ -5068,10 +5040,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) "op" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/iron/white, /area/centcom/tdome/observation) @@ -5207,9 +5176,7 @@ /turf/closed/indestructible/iron, /area/centcom/syndicate_mothership/control) "oH" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/white, /area/centcom/tdome/observation) "oI" = ( @@ -5458,9 +5425,7 @@ /area/centcom/central_command_areas/prison) "pp" = ( /obj/effect/turf_decal/stripes/box, -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/mineral/plastitanium, /area/centcom/syndicate_mothership/control) "pq" = ( @@ -6284,9 +6249,7 @@ /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/armory) "rZ" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -7184,9 +7147,7 @@ /turf/open/lava/plasma/ice_moon, /area/centcom/syndicate_mothership/control) "uX" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -7311,9 +7272,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/shower{ - pixel_y = 16 - }, +/obj/machinery/shower/directional/south, /obj/structure/curtain, /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Shower" @@ -7863,9 +7822,7 @@ /turf/open/floor/carpet, /area/centcom/wizard_station) "wR" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -7912,10 +7869,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) "wX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, @@ -8700,10 +8654,7 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/two) "zt" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/white, @@ -8933,9 +8884,7 @@ }, /area/centcom/central_command_areas/holding) "zX" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/stripes/box, /turf/open/floor/mineral/titanium/tiled, /area/centcom/syndicate_mothership/expansion_chemicalwarfare) @@ -9184,10 +9133,7 @@ }, /area/centcom/central_command_areas/holding) "AE" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -10402,9 +10348,7 @@ /obj/structure/mirror/magic{ pixel_y = 28 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/centcom/wizard_station) "DT" = ( @@ -10809,10 +10753,7 @@ /turf/closed/indestructible/syndicate, /area/centcom/syndicate_mothership/control) "Fe" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -11884,9 +11825,7 @@ /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, -/obj/structure/sink{ - pixel_y = 20 - }, +/obj/structure/sink/directional/south, /obj/item/shovel/spade{ pixel_x = -4 }, @@ -13271,9 +13210,7 @@ /turf/open/floor/iron/dark, /area/centcom/tdome/observation) "MS" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/red{ dir = 4 }, @@ -14057,10 +13994,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/control) "OV" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/turf_decal/tile/green{ dir = 4 @@ -14337,11 +14271,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) "PI" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11; - pixel_y = 8 - }, +/obj/structure/sink/kitchen/directional/west, /obj/item/reagent_containers/glass/bucket, /obj/effect/turf_decal/siding/wood, /turf/open/floor/catwalk_floor, @@ -14626,9 +14556,7 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/supply) "Qy" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -14810,9 +14738,7 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/prison) "Rb" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -15807,11 +15733,7 @@ /area/centcom/central_command_areas/ferry) "TL" = ( /obj/item/mop, -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11; - pixel_y = 4 - }, +/obj/structure/sink/kitchen/directional/west, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/catwalk_floor, /area/centcom/central_command_areas/holding) @@ -16301,9 +16223,7 @@ /turf/open/floor/iron, /area/centcom/tdome/administration) "UX" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -16734,9 +16654,7 @@ /turf/open/floor/iron, /area/centcom/syndicate_mothership/control) "Wb" = ( -/obj/structure/sink/kitchen{ - pixel_y = 20 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/holding) "Wc" = ( @@ -16768,10 +16686,7 @@ /turf/open/floor/wood/tile, /area/centcom/central_command_areas/holding) "Wf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/centcom/tdome/observation) @@ -17201,9 +17116,7 @@ /obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/structure/sink/kitchen{ - pixel_y = 23 - }, +/obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron, /area/centcom/syndicate_mothership/control) "Xk" = ( @@ -17213,10 +17126,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation) "Xl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -17288,10 +17198,7 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/control) "Xu" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -17653,11 +17560,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) "Yz" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12; - pixel_y = -6 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /turf/open/floor/mineral/titanium, /area/centcom/syndicate_mothership/control) @@ -17944,10 +17847,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) "Zm" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/turf_decal/tile/red{ dir = 8 diff --git a/_maps/map_files/tramstation/modular_pieces/maintenance_bar_1.dmm b/_maps/map_files/tramstation/modular_pieces/maintenance_bar_1.dmm index 49296644725..232b9787e11 100644 --- a/_maps/map_files/tramstation/modular_pieces/maintenance_bar_1.dmm +++ b/_maps/map_files/tramstation/modular_pieces/maintenance_bar_1.dmm @@ -10,9 +10,7 @@ /area/station/maintenance/central/greater) "n" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /turf/open/floor/plating, /area/station/maintenance/central/greater) "p" = ( diff --git a/_maps/map_files/tramstation/modular_pieces/maintenance_lowarrivals_2.dmm b/_maps/map_files/tramstation/modular_pieces/maintenance_lowarrivals_2.dmm index 8216aea8d52..8f2a649b41c 100644 --- a/_maps/map_files/tramstation/modular_pieces/maintenance_lowarrivals_2.dmm +++ b/_maps/map_files/tramstation/modular_pieces/maintenance_lowarrivals_2.dmm @@ -110,10 +110,9 @@ "Y" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/mirror/directional/north, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 12 + name = "old sink" }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/fore) diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 576b2e2a514..a87d8fa023a 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -3958,9 +3958,7 @@ /area/station/medical/storage) "bCu" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 17 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) "bCR" = ( @@ -4272,10 +4270,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/iron, /area/station/security/prison/garden) @@ -5629,11 +5624,9 @@ /turf/open/floor/iron/freezer, /area/station/commons/toilet) "ccg" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/west{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 12 + name = "old sink" }, /turf/open/floor/wood, /area/station/service/bar/backroom) @@ -5660,9 +5653,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) "ccH" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) "ccO" = ( @@ -6870,11 +6861,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "cwr" = ( @@ -7068,11 +7055,9 @@ /area/station/science/lower) "czI" = ( /obj/structure/cable, -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) @@ -7804,9 +7789,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/obj/machinery/shower{ - pixel_y = 18 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/white, /area/station/medical/pharmacy) "cJD" = ( @@ -8688,10 +8671,7 @@ /area/station/cargo/lobby) "daB" = ( /obj/structure/window/reinforced/spawner/east, -/obj/machinery/shower{ - dir = 8; - pixel_x = -7 - }, +/obj/machinery/shower/directional/west, /obj/item/bikehorn/rubberducky, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, @@ -11731,9 +11711,7 @@ /turf/open/floor/iron, /area/station/commons/storage/primary) "ebe" = ( -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 5 }, @@ -15531,10 +15509,7 @@ /area/station/hallway/secondary/service) "ftP" = ( /obj/structure/window/reinforced/spawner/east, -/obj/machinery/shower{ - dir = 8; - pixel_x = -7 - }, +/obj/machinery/shower/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) @@ -17201,10 +17176,7 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/camera{ c_tag = "Science - Right Entry Airlock"; dir = 6; @@ -17251,10 +17223,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "gcp" = ( @@ -17398,9 +17367,7 @@ /turf/open/floor/iron/dark, /area/station/science/xenobiology) "gfd" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/box, /obj/structure/fluff{ desc = "What, you think the water just magically soaks into the metallic flooring?"; @@ -18126,9 +18093,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/obj/machinery/shower{ - pixel_y = 24 - }, +/obj/machinery/shower/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, @@ -19273,9 +19238,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 5 }, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/medical/virology) @@ -19482,9 +19445,7 @@ /area/station/hallway/primary/tram/right) "gPb" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -20738,9 +20699,7 @@ /turf/open/floor/plating/airless, /area/mine/explored) "hmD" = ( -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/commons/toilet) @@ -21817,9 +21776,7 @@ /area/station/commons/fitness/recreation) "hGF" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /obj/effect/turf_decal/box, /obj/structure/cable, /turf/open/floor/iron, @@ -23171,8 +23128,7 @@ /area/station/service/chapel/monastery) "ifD" = ( /obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/shower{ - dir = 1; +/obj/machinery/shower/directional/north{ name = "emergency shower" }, /obj/effect/turf_decal/bot, @@ -24769,10 +24725,7 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "iHr" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -25377,9 +25330,7 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "iTx" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/box, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -26016,9 +25967,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/science/xenobiology) @@ -26098,10 +26047,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/virology) "jfR" = ( @@ -27343,10 +27289,7 @@ /turf/open/floor/plating/airless, /area/mine/explored) "jBy" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -27872,9 +27815,7 @@ /area/station/service/chapel) "jLj" = ( /obj/machinery/light/small/directional/west, -/obj/machinery/shower{ - dir = 1 - }, +/obj/machinery/shower/directional/north, /turf/open/floor/iron/freezer, /area/station/security/prison) "jLF" = ( @@ -27970,10 +27911,7 @@ /turf/open/floor/plating, /area/station/hallway/secondary/entry) "jNn" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 14 - }, +/obj/structure/sink/kitchen/directional/west, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "jNM" = ( @@ -30567,11 +30505,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11; - pixel_y = -2 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "kEX" = ( @@ -31899,10 +31833,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "lcn" = ( @@ -32267,10 +32198,7 @@ c_tag = "Medical - Surgery Room A"; network = list("ss13","medbay") }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/machinery/status_display/evac/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/firealarm/directional/north, @@ -33656,9 +33584,7 @@ /area/station/engineering/supermatter) "lGl" = ( /obj/structure/cable, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/freezer, /area/station/security/prison) "lGs" = ( @@ -36344,9 +36270,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -39117,9 +39041,7 @@ /turf/open/floor/iron, /area/station/engineering/engine_smes) "nwv" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/structure/curtain, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) @@ -40897,9 +40819,7 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "ohr" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) "ohu" = ( @@ -42567,9 +42487,7 @@ /obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron, /area/station/cargo/miningdock/cafeteria) "oNq" = ( @@ -44632,9 +44550,7 @@ /area/station/maintenance/department/cargo) "pvn" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -46748,10 +46664,7 @@ /area/station/commons/dorms) "qgQ" = ( /obj/structure/window/reinforced/spawner/west, -/obj/machinery/shower{ - dir = 4; - pixel_x = 6 - }, +/obj/machinery/shower/directional/east, /obj/item/soap/nanotrasen, /obj/structure/cable, /turf/open/floor/iron/freezer, @@ -48703,9 +48616,7 @@ /turf/open/floor/eighties/red, /area/station/commons/fitness/recreation/entertainment) "qOv" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/box, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -49423,9 +49334,7 @@ /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) "rbH" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/turf_decal/box, /obj/structure/fluff{ desc = "What, you think the water just magically soaks into the metallic flooring?"; @@ -50302,11 +50211,7 @@ /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) "rsU" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = -2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/freezer, /area/station/commons/toilet) @@ -50491,10 +50396,7 @@ dir = 1 }, /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /turf/open/floor/iron/dark, /area/station/science/genetics) "rvP" = ( @@ -53335,9 +53237,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/tram/right) "stB" = ( -/obj/machinery/shower{ - pixel_y = 12 - }, +/obj/machinery/shower/directional/south, /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/commons/toilet) @@ -57808,10 +57708,7 @@ dir = 8 }, /obj/effect/turf_decal/trimline/purple/filled/corner, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/machinery/camera{ c_tag = "Science - Left Entry Airlock"; dir = 10; @@ -59877,10 +59774,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/machinery/status_display/evac/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -60158,9 +60052,7 @@ /area/station/command/heads_quarters/cmo) "uLz" = ( /obj/machinery/light/small/directional/west, -/obj/machinery/shower{ - pixel_y = 24 - }, +/obj/machinery/shower/directional/south, /turf/open/floor/iron/freezer, /area/station/security/prison) "uLC" = ( @@ -63310,11 +63202,9 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/department/security) "vSf" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/east{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 4; - name = "old sink"; - pixel_x = -12 + name = "old sink" }, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) @@ -64623,10 +64513,7 @@ /area/station/commons/dorms/laundry) "wrv" = ( /obj/structure/window/reinforced/spawner/west, -/obj/machinery/shower{ - dir = 4; - pixel_x = 6 - }, +/obj/machinery/shower/directional/east, /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) @@ -66143,10 +66030,7 @@ /turf/closed/wall, /area/station/service/kitchen/coldroom) "wSm" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66575,9 +66459,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/science/xenobiology) "wZk" = ( @@ -69200,9 +69082,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/structure/sink{ - pixel_y = 15 - }, +/obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/science/xenobiology) "xVQ" = ( diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm index 849d60ccc0a..5cd79536e74 100644 --- a/_maps/shuttles/emergency_asteroid.dmm +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -297,11 +297,7 @@ /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "bt" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_bballhooper.dmm b/_maps/shuttles/emergency_bballhooper.dmm index a067fd13577..4805cc6dbde 100644 --- a/_maps/shuttles/emergency_bballhooper.dmm +++ b/_maps/shuttles/emergency_bballhooper.dmm @@ -468,10 +468,8 @@ /obj/machinery/door/window/left/directional/north{ name = "MEDICAL INFIRMARY" }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_y = -4 +/obj/machinery/shower/directional/west{ + name = "emergency shower" }, /obj/machinery/vending/wallmed/directional/east{ name = "Hooper's First Medical Kit" diff --git a/_maps/shuttles/emergency_casino.dmm b/_maps/shuttles/emergency_casino.dmm index 664b1151d2e..d84365116b3 100644 --- a/_maps/shuttles/emergency_casino.dmm +++ b/_maps/shuttles/emergency_casino.dmm @@ -454,11 +454,8 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_x = -6; - pixel_y = -7 +/obj/machinery/shower/directional/west{ + name = "emergency shower" }, /obj/structure/window/reinforced{ dir = 1 @@ -525,11 +522,8 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_x = -6; - pixel_y = -4 +/obj/machinery/shower/directional/west{ + name = "emergency shower" }, /obj/effect/turf_decal/delivery, /turf/open/floor/mineral/titanium, @@ -863,9 +857,7 @@ /turf/open/floor/sepia, /area/shuttle/escape) "xI" = ( -/obj/structure/sink{ - dir = 1 - }, +/obj/structure/sink/directional/north, /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index b69d9c7a0e8..005b3daf333 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -941,11 +941,7 @@ /turf/open/floor/iron, /area/shuttle/escape) "cX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/freezer, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index ffd1442ffad..3799d36f2d6 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -265,10 +265,7 @@ /turf/open/floor/iron/white, /area/shuttle/escape) "au" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -362,8 +359,7 @@ /turf/open/floor/grass, /area/shuttle/escape) "aJ" = ( -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /obj/effect/turf_decal/tile/blue, diff --git a/_maps/shuttles/emergency_donut.dmm b/_maps/shuttles/emergency_donut.dmm index ce2da499366..096615d2ebc 100644 --- a/_maps/shuttles/emergency_donut.dmm +++ b/_maps/shuttles/emergency_donut.dmm @@ -340,16 +340,11 @@ /turf/open/floor/iron, /area/shuttle/escape) "bj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "bk" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "bl" = ( diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm index f178543f7a5..4ca8f943de9 100644 --- a/_maps/shuttles/emergency_kilo.dmm +++ b/_maps/shuttles/emergency_kilo.dmm @@ -1379,11 +1379,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -1401,10 +1397,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 4 }, diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index 0d82c5664c3..77fa20e8509 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -736,9 +736,7 @@ /turf/open/floor/iron, /area/shuttle/escape/luxury) "ct" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape/luxury) "cu" = ( diff --git a/_maps/shuttles/emergency_medisim.dmm b/_maps/shuttles/emergency_medisim.dmm index edf325c59a5..99e9c649493 100644 --- a/_maps/shuttles/emergency_medisim.dmm +++ b/_maps/shuttles/emergency_medisim.dmm @@ -501,10 +501,7 @@ /turf/open/misc/sandy_dirt, /area/shuttle/escape/simulation) "uM" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/mineral/titanium/tiled/blue, /area/shuttle/escape) "uW" = ( @@ -533,8 +530,7 @@ /turf/open/floor/mineral/titanium/tiled/blue, /area/shuttle/escape) "xy" = ( -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /turf/open/floor/mineral/titanium/tiled/blue, diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 20648c904be..a4ffbc38238 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -357,7 +357,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "bk" = ( -/obj/machinery/shower, +/obj/machinery/shower/directional/south, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "bl" = ( @@ -542,7 +542,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "bI" = ( -/obj/structure/sink, +/obj/structure/sink/directional/south, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "bJ" = ( diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm index 848c78b9919..a3a4ec1804a 100644 --- a/_maps/shuttles/emergency_monastery.dmm +++ b/_maps/shuttles/emergency_monastery.dmm @@ -1617,10 +1617,7 @@ /turf/open/floor/iron, /area/shuttle/escape) "xm" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, +/obj/machinery/shower/directional/west, /obj/machinery/light/small/directional/west, /obj/item/bikehorn/rubberducky, /turf/open/floor/iron/showroomfloor, @@ -2629,10 +2626,7 @@ /turf/open/floor/iron/dark, /area/shuttle/escape) "JX" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron, /area/shuttle/escape) "JZ" = ( @@ -3503,10 +3497,7 @@ /turf/open/floor/iron/dark, /area/shuttle/escape) "TJ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, /area/shuttle/escape) "TR" = ( @@ -3736,10 +3727,7 @@ /turf/open/floor/iron/dark, /area/shuttle/escape) "WJ" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, +/obj/machinery/shower/directional/west, /obj/item/soap/homemade, /turf/open/floor/iron/showroomfloor, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm index d33175634c9..ec645e0e836 100644 --- a/_maps/shuttles/emergency_omega.dmm +++ b/_maps/shuttles/emergency_omega.dmm @@ -389,8 +389,7 @@ /turf/open/floor/iron, /area/shuttle/escape) "bh" = ( -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/tile/blue{ diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm index a6b6e490f8b..fb420049b6f 100644 --- a/_maps/shuttles/emergency_supermatter.dmm +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -34,9 +34,7 @@ /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "al" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/noslip, /area/shuttle/escape) "am" = ( @@ -62,9 +60,7 @@ /turf/open/floor/plating, /area/shuttle/escape) "ap" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /turf/open/floor/noslip, /area/shuttle/escape) "ar" = ( diff --git a/_maps/shuttles/emergency_tram.dmm b/_maps/shuttles/emergency_tram.dmm index a60149f5e3a..c97888e2127 100644 --- a/_maps/shuttles/emergency_tram.dmm +++ b/_maps/shuttles/emergency_tram.dmm @@ -271,18 +271,14 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aY" = ( -/obj/structure/sink{ - pixel_y = 18 - }, +/obj/structure/sink/directional/south, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "aZ" = ( /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "ba" = ( -/obj/machinery/shower{ - pixel_y = 18 - }, +/obj/machinery/shower/directional/south, /obj/machinery/vending/wallmed/directional/north{ use_power = 0 }, diff --git a/_maps/shuttles/emergency_zeta.dmm b/_maps/shuttles/emergency_zeta.dmm index 9406acd1186..2d90f2e0862 100644 --- a/_maps/shuttles/emergency_zeta.dmm +++ b/_maps/shuttles/emergency_zeta.dmm @@ -234,8 +234,7 @@ /turf/open/floor/plating/abductor, /area/shuttle/escape) "Qf" = ( -/obj/machinery/shower{ - dir = 8; +/obj/machinery/shower/directional/west{ name = "emergency shower" }, /turf/open/floor/plating/abductor, diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index f59c185dacc..c5c296e63a8 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -79,10 +79,9 @@ /turf/open/floor/iron/freezer, /area/shuttle/transport) "m" = ( -/obj/structure/sink/kitchen{ +/obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 + name = "old sink" }, /turf/open/floor/iron/freezer, /area/shuttle/transport) diff --git a/_maps/shuttles/infiltrator_advanced.dmm b/_maps/shuttles/infiltrator_advanced.dmm index c976a478f3f..5263f395074 100644 --- a/_maps/shuttles/infiltrator_advanced.dmm +++ b/_maps/shuttles/infiltrator_advanced.dmm @@ -1684,8 +1684,7 @@ /area/shuttle/syndicate/hallway) "dD" = ( /obj/structure/mirror/directional/west, -/obj/machinery/shower{ - dir = 4; +/obj/machinery/shower/directional/east{ name = "emergency shower" }, /obj/effect/turf_decal/box, @@ -2122,9 +2121,7 @@ /area/shuttle/syndicate/armory) "ep" = ( /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 1 diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index f0868fd7577..b1d39d266e8 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -1006,10 +1006,7 @@ /turf/open/floor/iron/dark/textured_corner, /area/shuttle/syndicate/engineering) "JQ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white/side, diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 8df567835d5..ad7d7788301 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -685,9 +685,7 @@ /area/shuttle/pirate) "bK" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/structure/toilet{ dir = 8 }, @@ -1012,9 +1010,8 @@ /area/shuttle/pirate) "Gk" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - name = "decontamination shower"; - pixel_y = 12 +/obj/machinery/shower/directional/south{ + name = "decontamination shower" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/window{ diff --git a/_maps/shuttles/pirate_silverscale.dmm b/_maps/shuttles/pirate_silverscale.dmm index 1b0f2df6e0b..9b57d45cbe9 100644 --- a/_maps/shuttles/pirate_silverscale.dmm +++ b/_maps/shuttles/pirate_silverscale.dmm @@ -240,9 +240,7 @@ dir = 8 }, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 17 - }, +/obj/structure/sink/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -531,9 +529,7 @@ dir = 8 }, /obj/structure/mirror/directional/north, -/obj/structure/sink{ - pixel_y = 17 - }, +/obj/structure/sink/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, diff --git a/_maps/shuttles/ruin_caravan_victim.dmm b/_maps/shuttles/ruin_caravan_victim.dmm index 6d2816c727c..10b1ed7cffa 100644 --- a/_maps/shuttles/ruin_caravan_victim.dmm +++ b/_maps/shuttles/ruin_caravan_victim.dmm @@ -72,9 +72,7 @@ /obj/structure/toilet{ dir = 4 }, -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 9aa668e2fe7..5a6061b8892 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -1346,20 +1346,14 @@ /obj/structure/toilet{ pixel_y = 16 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/freezer, /area/shuttle/abandoned/medbay) "cJ" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/shower{ - pixel_y = 15 - }, +/obj/machinery/shower/directional/south, /obj/item/soap, /obj/structure/curtain, /obj/machinery/light/small/built/directional/south, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 6cd1246360c..854a9ce4ac3 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -55,9 +55,7 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/engine) "aj" = ( -/obj/machinery/shower{ - pixel_y = 15 - }, +/obj/machinery/shower/directional/south, /obj/item/soap, /obj/structure/curtain, /obj/machinery/light/small/built/directional/south, @@ -68,10 +66,7 @@ /obj/structure/toilet{ pixel_y = 16 }, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, diff --git a/_maps/shuttles/whiteship_donut.dmm b/_maps/shuttles/whiteship_donut.dmm index 2ce71650d98..a5fe74d505d 100644 --- a/_maps/shuttles/whiteship_donut.dmm +++ b/_maps/shuttles/whiteship_donut.dmm @@ -241,10 +241,7 @@ /area/shuttle/abandoned) "aQ" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /obj/item/soap, /turf/open/floor/iron/showroomfloor/airless, /area/shuttle/abandoned) diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 90cf7a78a89..f9f44fe714f 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -554,18 +554,13 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/built/directional/south, /obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 15 - }, +/obj/machinery/shower/directional/south, /obj/item/soap, /turf/open/floor/iron/freezer, /area/shuttle/abandoned/crew) "bG" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/structure/toilet{ dir = 1 }, @@ -1452,10 +1447,7 @@ /area/shuttle/abandoned/bar) "dR" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/food/flour, /turf/open/floor/iron/cafeteria, /area/shuttle/abandoned/bar) @@ -1465,11 +1457,7 @@ /area/shuttle/abandoned/bar) "dT" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/shuttle/abandoned/bar) diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm index 9fe6b1ba3da..468b447fa89 100644 --- a/_maps/templates/battlecruiser_starfury.dmm +++ b/_maps/templates/battlecruiser_starfury.dmm @@ -745,9 +745,7 @@ /turf/open/floor/iron/dark, /area/shuttle/sbc_starfury) "cM" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron, /area/shuttle/sbc_starfury) "cO" = ( @@ -767,9 +765,7 @@ /turf/open/floor/plating, /area/shuttle/sbc_starfury) "cQ" = ( -/obj/structure/sink{ - pixel_y = 24 - }, +/obj/structure/sink/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -990,9 +986,7 @@ /turf/open/floor/iron/dark, /area/shuttle/sbc_starfury) "dD" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/floor/iron/dark/corner{ dir = 8 }, @@ -1710,10 +1704,7 @@ pixel_y = 14 }, /obj/structure/mirror/directional/east, -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/shuttle/sbc_starfury) diff --git a/_maps/templates/hilbertshotel.dmm b/_maps/templates/hilbertshotel.dmm index c952aacd8a4..70e31cf0395 100644 --- a/_maps/templates/hilbertshotel.dmm +++ b/_maps/templates/hilbertshotel.dmm @@ -119,11 +119,7 @@ /area/misc/hilbertshotel) "A" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "B" = ( @@ -131,9 +127,7 @@ /turf/open/indestructible/hotelwood, /area/misc/hilbertshotel) "C" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "D" = ( @@ -230,9 +224,7 @@ /area/misc/hilbertshotel) "U" = ( /obj/structure/table/reinforced, -/obj/structure/sink/kitchen{ - dir = 1 - }, +/obj/structure/sink/kitchen/directional/north, /obj/machinery/light/small/directional/south, /turf/open/indestructible/hotelwood, /area/misc/hilbertshotel) diff --git a/_maps/templates/hilbertshotellore.dmm b/_maps/templates/hilbertshotellore.dmm index 73968cd2c1e..79617ba69b5 100644 --- a/_maps/templates/hilbertshotellore.dmm +++ b/_maps/templates/hilbertshotellore.dmm @@ -151,11 +151,7 @@ /area/misc/hilbertshotel) "aI" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "aJ" = ( @@ -168,9 +164,7 @@ /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "aK" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "aL" = ( @@ -223,9 +217,7 @@ /area/misc/hilbertshotel) "aT" = ( /obj/structure/table/reinforced, -/obj/structure/sink/kitchen{ - dir = 1 - }, +/obj/structure/sink/kitchen/directional/north, /obj/machinery/light/small/directional/south, /turf/open/indestructible/hotelwood, /area/misc/hilbertshotel) @@ -266,18 +258,12 @@ /area/misc/hilbertshotel) "bb" = ( /obj/structure/mirror/directional/west, -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, +/obj/structure/sink/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) "bd" = ( -/obj/machinery/shower{ - dir = 8 - }, +/obj/machinery/shower/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/hoteltile, /area/misc/hilbertshotel) diff --git a/_maps/templates/holodeck_lounge.dmm b/_maps/templates/holodeck_lounge.dmm index c68eb7d579c..44f51932f0e 100644 --- a/_maps/templates/holodeck_lounge.dmm +++ b/_maps/templates/holodeck_lounge.dmm @@ -189,10 +189,7 @@ }, /area/template_noop) "H" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, +/obj/structure/sink/directional/east, /turf/open/floor/holofloor{ dir = 9; icon_state = "wood" diff --git a/_maps/templates/holodeck_medicalsim.dmm b/_maps/templates/holodeck_medicalsim.dmm index d080fb94176..05c78550394 100644 --- a/_maps/templates/holodeck_medicalsim.dmm +++ b/_maps/templates/holodeck_medicalsim.dmm @@ -312,9 +312,7 @@ }, /area/template_noop) "qV" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -516,9 +514,7 @@ }, /area/template_noop) "Ck" = ( -/obj/machinery/shower{ - dir = 4 - }, +/obj/machinery/shower/directional/east, /obj/effect/turf_decal/tile/blue{ dir = 1 }, diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index 50e93657499..11f19634af1 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -9,7 +9,7 @@ /turf/closed/wall/mineral/titanium/survival/pod, /area/misc/survivalpod) "c" = ( -/obj/machinery/shower, +/obj/machinery/shower/directional/south, /obj/item/soap/deluxe, /obj/structure/curtain{ alpha = 240; @@ -163,10 +163,7 @@ /turf/open/floor/carpet/black, /area/misc/survivalpod) "y" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -13 - }, +/obj/structure/sink/kitchen/directional/east, /turf/open/floor/carpet/black, /area/misc/survivalpod) "z" = ( diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index a031efe18d4..6ff99405988 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -207,10 +207,7 @@ /turf/open/floor/pod/light, /area/misc/survivalpod) "I" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, +/obj/structure/sink/directional/west, /obj/machinery/light/small/directional/east, /turf/open/floor/pod/light, /area/misc/survivalpod) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 467da581dc8..7e114012040 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -1233,7 +1233,7 @@ if(istype(T, /turf/open/water)) return TRUE var/obj/machinery/shower/S = locate() in T - if(S?.on) + if(S?.actually_on) return TRUE //Same but with wheat diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index c3c82775aa8..4a280ebf7d6 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -26,21 +26,24 @@ var/demand_color = COLOR_RED ///What color is our supply connect? var/supply_color = COLOR_BLUE + ///Extend the pipe to the edge for wall-mounted plumbed devices, like sinks and showers + var/extend_pipe_to_edge = FALSE ///turn_connects is for wheter or not we spin with the object to change our pipes -/datum/component/plumbing/Initialize(start=TRUE, _ducting_layer, _turn_connects=TRUE, datum/reagents/custom_receiver) +/datum/component/plumbing/Initialize(start=TRUE, ducting_layer, turn_connects=TRUE, datum/reagents/custom_receiver, extend_pipe_to_edge = FALSE) if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE - if(_ducting_layer) - ducting_layer = _ducting_layer + if(ducting_layer) + src.ducting_layer = ducting_layer var/atom/movable/parent_movable = parent if(!parent_movable.reagents && !custom_receiver) return COMPONENT_INCOMPATIBLE reagents = parent_movable.reagents - turn_connects = _turn_connects + src.turn_connects = turn_connects + src.extend_pipe_to_edge = extend_pipe_to_edge set_recipient_reagents_holder(custom_receiver ? custom_receiver : parent_movable.reagents) @@ -54,11 +57,12 @@ RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), .proc/toggle_active) RegisterSignal(parent, list(COMSIG_OBJ_HIDE), .proc/hide) RegisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS), .proc/create_overlays) //called by lateinit on startup + RegisterSignal(parent, list(COMSIG_ATOM_DIR_CHANGE), .proc/on_parent_dir_change) //called when placed on a shuttle and it moves, and other edge cases RegisterSignal(parent, list(COMSIG_MOVABLE_CHANGE_DUCT_LAYER), .proc/change_ducting_layer) /datum/component/plumbing/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING, COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH, COMSIG_OBJ_HIDE, \ - COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_MOVABLE_CHANGE_DUCT_LAYER, COMSIG_COMPONENT_ADDED)) + COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ATOM_DIR_CHANGE, COMSIG_MOVABLE_CHANGE_DUCT_LAYER, COMSIG_COMPONENT_ADDED)) /datum/component/plumbing/Destroy() ducts = null @@ -151,9 +155,10 @@ if(FIFTH_DUCT_LAYER) offset = 10 - var/duct_x = offset - var/duct_y = offset - + var/duct_x = offset - parent_movable.pixel_x - parent_movable.pixel_w + var/duct_y = offset - parent_movable.pixel_y - parent_movable.pixel_z + var/duct_layer = PLUMBING_PIPE_VISIBILE_LAYER + ducting_layer * 0.0003 + var/extension_handled = FALSE for(var/direction in GLOB.cardinals) var/color @@ -165,7 +170,6 @@ continue var/direction_text = dir2text(direction) - var/duct_layer = PLUMBING_PIPE_VISIBILE_LAYER + ducting_layer * 0.0003 var/image/overlay if(turn_connects) @@ -180,6 +184,17 @@ overlays += overlay + // This is a little wiggley extension to make wallmounts like sinks and showers visually link to the pipe + if(extend_pipe_to_edge && !extension_handled) + var/image/edge_overlay = image('icons/obj/plumbing/connects.dmi', "edge-extension", layer = duct_layer) + edge_overlay.dir = parent_movable.dir + edge_overlay.color = color + edge_overlay.pixel_x = -parent_movable.pixel_x - parent_movable.pixel_w + edge_overlay.pixel_y = -parent_movable.pixel_y - parent_movable.pixel_z + overlays += edge_overlay + // only show extension for the first pipe. This means we'll only reflect that color. + extension_handled = TRUE + ///we stop acting like a plumbing thing and disconnect if we are, so we can safely be moved and stuff /datum/component/plumbing/proc/disable() SIGNAL_HANDLER @@ -242,6 +257,11 @@ /// Toggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move /datum/component/plumbing/proc/toggle_active(obj/parent_obj, new_state) SIGNAL_HANDLER + // Follow atmos's rule of exposing the connection if you unwrench it and only hiding again if tile is placed back down. + if(tile_covered) + tile_covered = FALSE + parent_obj.update_appearance() + if(new_state) enable() else @@ -290,8 +310,13 @@ /datum/component/plumbing/proc/hide(atom/movable/parent_obj, should_hide) SIGNAL_HANDLER - tile_covered = should_hide - parent_obj.update_appearance() + // If machine is unanchored, keep connector visible. + // This doesn't necessary map to `active`, so check parent. + var/atom/movable/parent_movable = parent + + if(parent_movable.anchored || !should_hide) + tile_covered = should_hide + parent_obj.update_appearance() /datum/component/plumbing/proc/change_ducting_layer(obj/caller, obj/changer, new_layer = DUCT_LAYER_DEFAULT) SIGNAL_HANDLER @@ -323,6 +348,18 @@ if(source == recipient_reagents_holder) set_recipient_reagents_holder(null) +/** + * Called when the dir changes. Need to adjust positioning of pipes. + */ +/datum/component/plumbing/proc/on_parent_dir_change(atom/movable/parent_obj, old_dir, new_dir) + SIGNAL_HANDLER + + if(old_dir == new_dir) + return + + // Defer to later frame because pixel_* is actually updated after all callbacks + addtimer(CALLBACK(parent_obj, /atom/.proc/update_appearance), 1) + ///has one pipe input that only takes, example is manual output pipe /datum/component/plumbing/simple_demand demand_connects = SOUTH diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 00d6440ce17..12d6182b274 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -8,7 +8,23 @@ #define SHOWER_SPRAY_VOLUME 5 /// How much the volume of the shower's spay reagents are amplified by when it sprays something. #define SHOWER_EXPOSURE_MULTIPLIER 2 // Showers effectively double exposed reagents +/// How long we run in TIMED mode +#define SHOWER_TIMED_LENGTH (15 SECONDS) +/// Run the shower until we run out of reagents. +#define SHOWER_MODE_UNTIL_EMPTY 0 +/// Run the shower for SHOWER_TIMED_LENGTH time, or until we run out of reagents. +#define SHOWER_MODE_TIMED 1 +/// Run the shower forever, pausing when we run out of liquid, and then resuming later. +#define SHOWER_MODE_FOREVER 2 +/// Number of modes to cycle through +#define SHOWER_MODE_COUNT 3 + +GLOBAL_LIST_INIT(shower_mode_descriptions, list( + "[SHOWER_MODE_UNTIL_EMPTY]" = "run until empty", + "[SHOWER_MODE_TIMED]" = "run for 15 seconds or until empty", + "[SHOWER_MODE_FOREVER]" = "keep running forever and auto turn back on", +)) /obj/machinery/shower name = "shower" @@ -16,9 +32,13 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "shower" density = FALSE + layer = ABOVE_WINDOW_LAYER use_power = NO_POWER_USE - ///Is the shower on or off? - var/on = FALSE + subsystem_type = /datum/controller/subsystem/processing/plumbing + ///Does the user want the shower on or off? + var/intended_on = FALSE + ///Is the shower actually spitting out water currently + var/actually_on = FALSE ///What temperature the shower reagents are set to. var/current_temperature = SHOWER_NORMAL ///What sound will be played on loop when the shower is on and pouring water. @@ -29,17 +49,45 @@ var/reagent_capacity = 200 ///How many units the shower refills every second. var/refill_rate = 0.5 - /// Whether or not the shower's water reclaimer is operating. - var/can_refill = TRUE - /// Whether to allow players to toggle the water reclaimer. - var/can_toggle_refill = TRUE + ///Does the shower have a water recycler to recollect it's water supply? + var/has_water_reclaimer = TRUE + ///Which mode the shower is operating in. + var/mode = SHOWER_MODE_UNTIL_EMPTY + ///The cooldown for SHOWER_MODE_TIMED mode. + COOLDOWN_DECLARE(timed_cooldown) + ///How far to shift the sprite when placing. + var/pixel_shift = 16 -/obj/machinery/shower/Initialize(mapload) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16)) + +/obj/machinery/shower/Initialize(mapload, ndir = 0, has_water_reclaimer = null) . = ..() + + if(ndir) + dir = ndir + + if(has_water_reclaimer != null) + src.has_water_reclaimer = has_water_reclaimer + + switch(dir) + if(NORTH) + pixel_x = 0 + pixel_y = -pixel_shift + if(SOUTH) + pixel_x = 0 + pixel_y = pixel_shift + if(EAST) + pixel_x = -pixel_shift + pixel_y = 0 + if(WEST) + pixel_x = pixel_shift + pixel_y = 0 + create_reagents(reagent_capacity) - reagents.add_reagent(reagent_id, reagent_capacity) + if(src.has_water_reclaimer) + reagents.add_reagent(reagent_id, reagent_capacity) soundloop = new(src, FALSE) - AddComponent(/datum/component/plumbing/simple_demand) + AddComponent(/datum/component/plumbing/simple_demand, extend_pipe_to_edge = TRUE) var/static/list/loc_connections = list( COMSIG_ATOM_ENTERED = .proc/on_entered, ) @@ -47,6 +95,10 @@ /obj/machinery/shower/examine(mob/user) . = ..() + . += span_notice("It looks like the thermostat has an adjustment screw.") + if(has_water_reclaimer) + . += span_notice("A water recycler is installed. It looks like you could pry it out.") + . += span_notice("The auto shut-off is programmed to [GLOB.shower_mode_descriptions["[mode]"]].") . += span_notice("[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.") /obj/machinery/shower/Destroy() @@ -54,42 +106,66 @@ QDEL_NULL(reagents) return ..() -/obj/machinery/shower/interact(mob/M) - if(reagents.total_volume < 5) - to_chat(M,span_notice("\The [src] is dry.")) - return FALSE - on = !on - update_appearance() - handle_mist() - add_fingerprint(M) - if(on) - START_PROCESSING(SSmachines, src) - process(SSMACHINES_DT) - soundloop.start() - else - soundloop.stop() - if(isopenturf(loc)) - var/turf/open/tile = loc - tile.MakeSlippery(TURF_WET_WATER, min_wet_time = 5 SECONDS, wet_time_to_add = 1 SECONDS) - -/obj/machinery/shower/attackby(obj/item/I, mob/user, params) - if(I.tool_behaviour == TOOL_ANALYZER) - to_chat(user, span_notice("The water temperature seems to be [current_temperature].")) - else - return ..() - -/obj/machinery/shower/multitool_act(mob/living/user, obj/item/I) +/obj/machinery/shower/interact(mob/user) . = ..() - if(. || !can_toggle_refill) + if(.) return - can_refill = !can_refill - to_chat(user, span_notice("You [can_refill ? "en" : "dis"]able the shower's water recycler.")) - playsound(src, 'sound/machines/click.ogg', 20, TRUE) + intended_on = !intended_on + if(!update_actually_on(intended_on)) + balloon_alert(user, "[src] is dry!") + return FALSE + + balloon_alert(user, "turned [intended_on ? "on" : "off"]") + return TRUE +/obj/machinery/shower/analyzer_act(mob/living/user, obj/item/tool) + . = ..() -/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I) + tool.play_tool_sound(src) + to_chat(user, span_notice("The water temperature seems to be [current_temperature].")) + return TRUE + +/obj/machinery/shower/attackby(obj/item/tool, mob/user, params) + if(istype(tool, /obj/item/stock_parts/water_recycler)) + if(has_water_reclaimer) + to_chat(user, span_warning("There is already has a water recycler installed.")) + return + + playsound(src, 'sound/machines/click.ogg', 20, TRUE) + qdel(tool) + has_water_reclaimer = TRUE + begin_processing() + + return ..() + +/obj/machinery/shower/multitool_act(mob/living/user, obj/item/tool) + . = ..() + if(.) + return + + tool.play_tool_sound(src) + mode = (mode + 1) % SHOWER_MODE_COUNT + begin_processing() + to_chat(user, span_notice("You change the shower's auto shut-off mode to [GLOB.shower_mode_descriptions["[mode]"]].")) + return TRUE + +/obj/machinery/shower/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(.) + return + if(!has_water_reclaimer) + to_chat(user, span_warning("There isn't a water recycler to remove.")) + return + + tool.play_tool_sound(src) + has_water_reclaimer = FALSE + new/obj/item/stock_parts/water_recycler(get_turf(loc)) + to_chat(user, span_notice("You remove the water reclaimer from [src]")) + return TRUE + +/obj/machinery/shower/screwdriver_act(mob/living/user, obj/item/I) ..() to_chat(user, span_notice("You begin to adjust the temperature valve with \the [I]...")) if(I.use_tool(src, user, 50)) @@ -106,41 +182,58 @@ handle_mist() return TRUE +/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I) + . = ..() + if(flags_1 & NODECONSTRUCT_1) + return + + I.play_tool_sound(src) + deconstruct() + return TRUE /obj/machinery/shower/update_overlays() . = ..() - if(!on) + if(!actually_on) return var/mutable_appearance/water_falling = mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER) water_falling.color = mix_color_from_reagents(reagents.reagent_list) water_falling.plane = GAME_PLANE_UPPER + switch(dir) + if(NORTH) + water_falling.pixel_y += pixel_shift + if(SOUTH) + water_falling.pixel_y -= pixel_shift + if(EAST) + water_falling.pixel_x += pixel_shift + if(WEST) + water_falling.pixel_x -= pixel_shift . += water_falling /obj/machinery/shower/proc/handle_mist() // If there is no mist, and the shower was turned on (on a non-freezing temp): make mist in 5 seconds // If there was already mist, and the shower was turned off (or made cold): remove the existing mist in 25 sec var/obj/effect/mist/mist = locate() in loc - if(!mist && on && current_temperature != SHOWER_FREEZING) + if(!mist && actually_on && current_temperature != SHOWER_FREEZING) addtimer(CALLBACK(src, .proc/make_mist), 5 SECONDS) - if(mist && (!on || current_temperature == SHOWER_FREEZING)) + if(mist && !(actually_on && current_temperature != SHOWER_FREEZING)) addtimer(CALLBACK(src, .proc/clear_mist), 25 SECONDS) /obj/machinery/shower/proc/make_mist() var/obj/effect/mist/mist = locate() in loc - if(!mist && on && current_temperature != SHOWER_FREEZING) + if(!mist && actually_on && current_temperature != SHOWER_FREEZING) var/obj/effect/mist/new_mist = new /obj/effect/mist(loc) new_mist.color = mix_color_from_reagents(reagents.reagent_list) /obj/machinery/shower/proc/clear_mist() var/obj/effect/mist/mist = locate() in loc - if(mist && (!on || current_temperature == SHOWER_FREEZING)) + if(mist && !(actually_on && current_temperature != SHOWER_FREEZING)) qdel(mist) /obj/machinery/shower/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER - if(on && reagents.total_volume) + if(actually_on && reagents.total_volume) wash_atom(AM) /obj/machinery/shower/proc/wash_atom(atom/target) @@ -150,27 +243,76 @@ if(isliving(target)) check_heat(target) -/obj/machinery/shower/process(delta_time) - if(on && reagents.total_volume) - wash_atom(loc) - for(var/am in loc) - var/atom/movable/movable_content = am - if(!ismopable(movable_content)) // Mopables will be cleaned anyways by the turf wash above - wash_atom(movable_content) // Reagent exposure is handled in wash_atom +/** + * Toggle whether shower is actually on and outputting water. + * May not match what user asked to happen by clicking. + * Returns TRUE if the state was changed. + * + * Arguments: + * * new_on_state - new state + */ +/obj/machinery/shower/proc/update_actually_on(new_on_state) + if(new_on_state == actually_on) + return FALSE + + // Check if we have enough reagents to actually turn on. + if(new_on_state && reagents.total_volume < SHOWER_SPRAY_VOLUME) + return FALSE + + actually_on = new_on_state - reagents.remove_any(SHOWER_SPRAY_VOLUME) - return - on = FALSE - soundloop.stop() - handle_mist() - if(can_refill) - reagents.add_reagent(reagent_id, refill_rate * delta_time) update_appearance() - if(reagents.total_volume == reagents.maximum_volume) - return PROCESS_KILL + handle_mist() + if(new_on_state) + begin_processing() + soundloop.start() + COOLDOWN_START(src, timed_cooldown, SHOWER_TIMED_LENGTH) + else + soundloop.stop() + if(isopenturf(loc)) + var/turf/open/tile = loc + tile.MakeSlippery(TURF_WET_WATER, min_wet_time = 5 SECONDS, wet_time_to_add = 1 SECONDS) + + return TRUE + +/obj/machinery/shower/process(delta_time) + // the TIMED mode cutoff feature. User has to manually reactivate. + if(intended_on && mode == SHOWER_MODE_TIMED && COOLDOWN_FINISHED(src, timed_cooldown)) + // the TIMED mode cutoff feature. User has to manually reactivate. + intended_on = FALSE + + // Out of water. + if(actually_on && reagents.total_volume < SHOWER_SPRAY_VOLUME) + update_actually_on(FALSE) + + // Don't turn back on. + if(mode != SHOWER_MODE_FOREVER) + intended_on = FALSE + else + // Cycle: update_actually_on() will only change state if appropriate. + update_actually_on(intended_on) + + // Reclaim water + if(!actually_on) + if(has_water_reclaimer && reagents.total_volume < reagents.maximum_volume) + reagents.add_reagent(reagent_id, refill_rate * delta_time) + return 0 + + // FOREVER mode stays processing so it can cycle back on. + return mode == SHOWER_MODE_FOREVER ? 0 : PROCESS_KILL + + // Wash up. + wash_atom(loc) + for(var/atom/movable/movable_content as anything in loc) + if(!ismopable(movable_content)) // Mopables will be cleaned anyways by the turf wash above + wash_atom(movable_content) // Reagent exposure is handled in wash_atom + + reagents.remove_any(SHOWER_SPRAY_VOLUME) /obj/machinery/shower/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/iron(drop_location(), 3) + new /obj/item/stack/sheet/iron(drop_location(), 2) + if(has_water_reclaimer) + new /obj/item/stock_parts/water_recycler(drop_location()) qdel(src) /obj/machinery/shower/proc/check_heat(mob/living/L) @@ -198,15 +340,30 @@ . = ..() AddComponent(/datum/component/simple_rotation) -/obj/structure/showerframe/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/stock_parts/water_recycler)) - qdel(I) - var/obj/machinery/shower/new_shower = new /obj/machinery/shower(loc) - new_shower.setDir(dir) +/obj/structure/showerframe/attackby(obj/item/tool, mob/living/user, params) + if(istype(tool, /obj/item/stock_parts/water_recycler)) + qdel(tool) + var/obj/machinery/shower/shower = new(loc, REVERSE_DIR(dir), TRUE) qdel(src) + playsound(shower, 'sound/machines/click.ogg', 20, TRUE) return return ..() +/obj/structure/showerframe/wrench_act(mob/living/user, obj/item/tool) + . = ..() + + tool.play_tool_sound(src) + new/obj/machinery/shower(loc, REVERSE_DIR(dir), FALSE) + qdel(src) + + return TRUE + +/obj/structure/sinkframe/wrench_act_secondary(mob/living/user, obj/item/tool) + . = ..() + tool.play_tool_sound(src) + deconstruct() + return TRUE + /obj/structure/showerframe/AltClick(mob/user) return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation @@ -219,6 +376,11 @@ anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT +#undef SHOWER_MODE_UNTIL_EMPTY +#undef SHOWER_MODE_TIMED +#undef SHOWER_MODE_FOREVER +#undef SHOWER_MODE_COUNT +#undef SHOWER_TIMED_LENGTH #undef SHOWER_SPRAY_VOLUME #undef SHOWER_EXPOSURE_MULTIPLIER #undef SHOWER_BOILING_TEMP diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index b27a1c63e99..43eef8609a6 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -256,6 +256,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) icon_state = "sink" desc = "A sink used for washing one's hands and face. Passively reclaims water over time." anchored = TRUE + pixel_z = 1 ///Something's being washed at the moment var/busy = FALSE ///What kind of reagent is produced by this sink by default? (We now have actual plumbing, Arcane, August 2020) @@ -266,20 +267,45 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) var/buildstackamount = 1 ///Does the sink have a water recycler to recollect it's water supply? var/has_water_reclaimer = TRUE - ///Has the water reclamation begun? - var/reclaiming = FALSE ///Units of water to reclaim per second var/reclaim_rate = 0.5 + ///Amount of shift the pixel for placement + var/pixel_shift = 14 -/obj/structure/sink/Initialize(mapload, bolt) +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14)) + +/obj/structure/sink/Initialize(mapload, ndir = 0, has_water_reclaimer = null) . = ..() + + if(ndir) + dir = ndir + + if(has_water_reclaimer != null) + src.has_water_reclaimer = has_water_reclaimer + + switch(dir) + if(NORTH) + pixel_x = 0 + pixel_y = -pixel_shift + if(SOUTH) + pixel_x = 0 + pixel_y = pixel_shift + if(EAST) + pixel_x = -pixel_shift + pixel_y = 0 + if(WEST) + pixel_x = pixel_shift + pixel_y = 0 + create_reagents(100, NO_REACT) - if(has_water_reclaimer) + if(src.has_water_reclaimer) reagents.add_reagent(dispensedreagent, 100) - AddComponent(/datum/component/plumbing/simple_demand, bolt) + AddComponent(/datum/component/plumbing/simple_demand, extend_pipe_to_edge = TRUE) /obj/structure/sink/examine(mob/user) . = ..() + if(has_water_reclaimer) + . += span_notice("A water recycler is installed. It looks like you could pry it out.") . += span_notice("[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.") /obj/structure/sink/attack_hand(mob/living/user, list/modifiers) @@ -374,6 +400,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) deconstruct() return + if(O.tool_behaviour == TOOL_CROWBAR) + if(!has_water_reclaimer) + to_chat(user, span_warning("There isn't a water recycler to remove.")) + return + + O.play_tool_sound(src) + has_water_reclaimer = FALSE + new/obj/item/stock_parts/water_recycler(get_turf(loc)) + to_chat(user, span_notice("You remove the water reclaimer from [src]")) + return + if(istype(O, /obj/item/stack/medical/gauze)) var/obj/item/stack/medical/gauze/G = O new /obj/item/reagent_containers/glass/rag(src.loc) @@ -394,6 +431,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) O.use(1) return + if(istype(O, /obj/item/stock_parts/water_recycler)) + if(has_water_reclaimer) + to_chat(user, span_warning("There is already has a water recycler installed.")) + return + + playsound(src, 'sound/machines/click.ogg', 20, TRUE) + qdel(O) + has_water_reclaimer = TRUE + begin_reclamation() + return + if(!istype(O)) return if(O.item_flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. @@ -417,15 +465,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) /obj/structure/sink/deconstruct() if(!(flags_1 & NODECONSTRUCT_1)) drop_materials() + if(has_water_reclaimer) + new /obj/item/stock_parts/water_recycler(drop_location()) ..() /obj/structure/sink/process(delta_time) - if(has_water_reclaimer && reagents.total_volume < reagents.maximum_volume) - reagents.add_reagent(dispensedreagent, reclaim_rate * delta_time) - else - reclaiming = FALSE + // Water reclamation complete? + if(!has_water_reclaimer || reagents.total_volume >= reagents.maximum_volume) return PROCESS_KILL + reagents.add_reagent(dispensedreagent, reclaim_rate * delta_time) + /obj/structure/sink/proc/drop_materials() if(buildstacktype) new buildstacktype(loc,buildstackamount) @@ -435,13 +485,15 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) new M.sheet_type(loc, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) /obj/structure/sink/proc/begin_reclamation() - if(!reclaiming) - reclaiming = TRUE - START_PROCESSING(SSplumbing, src) + START_PROCESSING(SSplumbing, src) /obj/structure/sink/kitchen name = "kitchen sink" icon_state = "sink_alt" + pixel_z = 4 + pixel_shift = 16 + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16)) /obj/structure/sink/greyscale icon_state = "sink_greyscale" @@ -460,17 +512,26 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) . = ..() AddComponent(/datum/component/simple_rotation) -/obj/structure/sinkframe/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/stock_parts/water_recycler)) - qdel(I) - var/obj/structure/sink/greyscale/new_sink = new /obj/structure/sink/greyscale(loc) - new_sink.has_water_reclaimer = TRUE +/obj/structure/sinkframe/attackby(obj/item/tool, mob/living/user, params) + if(istype(tool, /obj/item/stock_parts/water_recycler)) + qdel(tool) + var/obj/structure/sink/greyscale/new_sink = new(loc, REVERSE_DIR(dir), TRUE) new_sink.set_custom_materials(custom_materials) - new_sink.setDir(dir) qdel(src) + playsound(new_sink, 'sound/machines/click.ogg', 20, TRUE) return return ..() +/obj/structure/sinkframe/wrench_act(mob/living/user, obj/item/tool) + . = ..() + + tool.play_tool_sound(src) + var/obj/structure/sink/greyscale/new_sink = new(loc, REVERSE_DIR(dir), FALSE) + new_sink.set_custom_materials(custom_materials) + qdel(src) + + return TRUE + /obj/structure/sinkframe/wrench_act_secondary(mob/living/user, obj/item/tool) . = ..() tool.play_tool_sound(src) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a2626558ef1..aa27c4c9a17 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -156,7 +156,7 @@ /obj/machinery/hydroponics/constructable/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation) - AddComponent(/datum/component/plumbing/simple_demand) + AddComponent(/datum/component/plumbing/hydroponics) AddComponent(/datum/component/usb_port, list(/obj/item/circuit_component/hydroponics)) /obj/machinery/hydroponics/constructable/RefreshParts() @@ -209,6 +209,76 @@ return ..() +/// Special demand connector that consumes as normal, but redirects water into the magical water space. +/datum/component/plumbing/hydroponics + demand_connects = SOUTH + /// Alternate reagents container to buffer incoming water + var/datum/reagents/water_reagents + /// Actual parent reagents that has nutrients + var/datum/reagents/nutri_reagents + +/datum/component/plumbing/hydroponics/Initialize(start=TRUE, _ducting_layer, _turn_connects=TRUE, datum/reagents/custom_receiver) + . = ..() + + if(!istype(parent, /obj/machinery/hydroponics/constructable)) + return COMPONENT_INCOMPATIBLE + + var/obj/machinery/hydroponics/constructable/hydro_parent = parent + + water_reagents = new(hydro_parent.maxwater) + water_reagents.my_atom = hydro_parent + + nutri_reagents = reagents + +/datum/component/plumbing/hydroponics/Destroy() + qdel(water_reagents) + nutri_reagents = null + return ..() + +/datum/component/plumbing/hydroponics/send_request(dir) + var/obj/machinery/hydroponics/constructable/hydro_parent = parent + + var/initial_nutri_amount = nutri_reagents.total_volume + if(initial_nutri_amount < nutri_reagents.maximum_volume) + // Well boy howdy, we have no way to tell a supply to not mix the water with everything else, + // So we'll let it leak in, and move the water over. + set_recipient_reagents_holder(nutri_reagents) + reagents = nutri_reagents + process_request( + amount = MACHINE_REAGENT_TRANSFER, + reagent = null, + dir = dir + ) + + // Move the leaked water from nutrients to... water + var/leaking_water_amount = nutri_reagents.get_reagent_amount(/datum/reagent/water) + if(leaking_water_amount) + nutri_reagents.trans_id_to(water_reagents, /datum/reagent/water, leaking_water_amount) + + // We should only take MACHINE_REAGENT_TRANSFER every tick; this is the remaining amount we can take + var/remaining_transfer_amount = max(MACHINE_REAGENT_TRANSFER - (nutri_reagents.total_volume - initial_nutri_amount), 0) + + // How much extra water we should gather this tick to try to fill the water tray. + var/extra_water_to_gather = clamp(hydro_parent.maxwater - hydro_parent.waterlevel - water_reagents.total_volume, 0, remaining_transfer_amount) + if(extra_water_to_gather > 0) + set_recipient_reagents_holder(water_reagents) + reagents = water_reagents + process_request( + amount = extra_water_to_gather, + reagent = /datum/reagent/water, + dir = dir, + ) + + // Now transfer all remaining water in that buffer and clear it out. + var/final_water_amount = water_reagents.total_volume + if(final_water_amount) + hydro_parent.adjust_waterlevel(round(final_water_amount)) + // Using a pipe doesn't afford you extra water storage and the baseline behavior for trays is that excess water goes into the shadow realm. + water_reagents.del_reagent(/datum/reagent/water) + + // Plumbing pauses if reagents is full.. so let's cheat and make sure it ticks unless both trays are happy + reagents = hydro_parent.waterlevel < hydro_parent.maxwater ? water_reagents : nutri_reagents + /obj/machinery/hydroponics/bullet_act(obj/projectile/Proj) //Works with the Somatoray to modify plant variables. if(!myseed) return ..() diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm index ec7d8afa10e..18302e0ef76 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm @@ -73,6 +73,7 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "puddle-oil" dispensedreagent = /datum/reagent/fuel/oil + pixel_shift = 0 /obj/structure/sink/oil_well/Initialize(mapload) .=..() diff --git a/icons/obj/plumbing/connects.dmi b/icons/obj/plumbing/connects.dmi index 943b580a624d8da7bc8e3c88a11f820138261ca3..f6d921624fb071720b7609371eea36483a76f040 100644 GIT binary patch literal 2449 zcma)8dpHyN8{g(KvM3eGWt>PM)9EC#i(3aBw?s?KcGT(SvSmUuo6$K=Ar%#oRdVUr z5JF@o#Yt($sYMwkn`@ZKW%u8Hoqx{r`|I~S@B4h;_w#+fxA*%#@B3a34)j^SZreHl z0I=TA*E<9N0OHi_uBo9$2;*&j>cKYHKlC7*&9<(NS&F%Oc!YF99Zo1RepnPYj+?%OFzdu|)4*h$j-x5)#ki;{kw_l3eZ{ z{S5aFzmDBOywpCIW4XuKSvz{CK;JsY-OBolodtF<+^c-)fG@HS`$q3NYx6+;-x6jh z?2bQ5U&?40j?yBI4#r<}eP}mTg?D=m>;7=-Ru93%cIc&FRYnEuFss?Og!aF>1H{bMF{_pxA^#9hcu-x**AX|aPQsJkvoD> z{+Fc7>`Gn5>31Ri_@BC@e$ss{zQ$qmEDUrYZtP1iH?A50&{^l_?Gc(%GIuv1e*69n zzm{9JW~BqP6LP)tPr5oebiH-Fi1WC{s#ntcw0*zluXHO~Mw~ldRIqxIF`=YtF z`*uIV9uY(@)(Bx8X;ChA$kE~a(@I_OFd{BloEr9gX}BG}AXu%xG?_a1W!Z18@jI9a z;=!b8PZ_z($9gm=JIKoXw%Av=lskTyHMafF=4enOC=$+HW(TjnF?qj^uoy~XC+8(X z&S|xz?1-^+T55U-LbvDs3K}po1r0Uqa6&r!@HuZDcV54_OX6rDJTk<6--C*3K7C#* zKHydI;!gUfC=K!wxgTXcBkb3fi+>kCn%l=7bvE8umDRVfgO7ptRyGX)IxvA7(~2>1 zabD5JdEZQ85b&^S2|_ux)_>QkAi&cX=OLr{fGEx(thC6l``&0LHKxE z^;i7l{Qh@Vdy+efOm;1S9iKgMWbdXBjQK_=7qh`31AXwyO6IESQf>|jiASZVf~F*I z{lph#oieJYd0{DFuHYJZBwk3#nFUe{I9V3`;+KQfhdclfI^hRVnyWU@>9Xd!gkM4|Fx=smJj0$3gMV?Dm!p>Z65I9|K#qqGpLj#3b7GtwqTGtsVB-hv1CI4 z**fjoFbmG&6lb)NXhI?Y6brC!Roev3J9n?_j%lR|K*Ylb?2=y>x(N+u8K z$o~RfVyEuamoz7&9%c_1oT7~?!Udzfb7Y_`s!)rvdipxmzIjQjM2=IYrBJV2qgFRI z{8w9Sk|!{ez2|HX%KGN7uzW9||Mep_ghu2x(HA*CWQh)owEOf&0vcpXAkZ|gI$mS< zYZw1)mZ`A~!SI-ejEY$qW%aQvwBa<4MD z`~=8@(SWlmjSy{XQ_-m<^ht6q!|OX|mS_LbqiQdnASb6oEnEij0g?p7Wz9fbDBBII z#zC2&5s6_7v~E>Ca;9Uew3(dR2xS1at8T^Rtz_=Q2}bMZ`YCnVIr4}m#3zFf=>zNz z;ioPI?&QL8^q;z`ne8;Sl8kG|wLu~46A7A68(0*POkug2H*sDUjanmQ|5fi(g{h&4 z#*BWRvVTT+QZbXHfe*WP+h|D>L_5))Xep8v&XeDDBduGpw1-s44=Ty?@>8g6yHv80vhSrZazQZf-6l<}e?A>t|~bbRva=flVfjMk3D{a?>b*MZNp)7`H4 zND7m-6uzLAp?}IkxX&thhvB_Fjn!;xW$telD*z_cuq>q@?<|_;C%oyuK`GdZ{eCS6UAMCdN@))?H z=i0ToP&cQqrxD6&0qLvm-!S{}?SIkD)$ukZiwrmD-t=;w8>9O*51~KTT%dNh>|^-kVpVy}&@Z?a`rWjO(DfV6)v9LR z!f6*Z_R8LIfwlhbRf_pXD_t2M>475#oEdOLI!yL)8rxgc?0OLeuZG3~D6X|INR3{R zQcOuXifUmg#_Cy4h1uOe>adP%EL_2tu5edY;+#hQU}j|MQ^ZgALnFt*5ua|yw2y`< znDN4Wb4*EJr!MdB(HZc5^00ht#Orfg2dId* z5I2vf+l_|zt(sN*yWptP+k_r(Y9J6cOER$kd89Ithj~siK&f`WpyzxRyWma1zQ-2s zznAEiV^s6cQDYq#uJzEAC8ykc~5RjxqB`6Suuvj00+Cs!Y2#8A+2uclnU6+$J z-41U=ZAAe9u<_`TgC_t0;`rBs!_*A9L*jyB!(!sYqN4yH`NmKEk5EkOO&33YAi4B@IPu`hZoj+}2A>XS+;zS5H6iSR zB0MVZ`dS2vwS-=yn?-jwi-HwDw$Z#p?|S%$BoOn0ZJ2|do%c57o)X-#ZzhhXa!7Y4 zgPXy(`JM#kqbS93g8N8ozsxt{tt-C$-q?9YH!9GRmYL9`l|WM4?FQ8SNx$kz@9IhY zem}0=*hRYvwY4=KxSh>&ZXk`loBOkBFMp^N8Y#nkqOFMYFBhKF4+xF?E7ri%YiE6g z3GO4#X(4g4SwwE(Qi?dO(pDaZTiTh+`#z=e-CsWM@??btSM!AQ91iNB8KB=rnRY~Q4O=m3F$#3O}~RR9=O`xS*0*_s2aN&icX|7LYQtxSmguybt2#J;{9 zI=W;UeUKqft3(d-iqeg3RPac@UI+(aNcH&#oP~`kWv;>NN5pL&!}#~Y(p6-??2dwB zPd^P(H+l`@Jz>{Yk=<6#14{OOHU}gpC--@MDU&m^ZGW1(IxvhUHH9T}C5STtv1gNn z)`z57WM`#B108g_)%DkG?gNO!rJ&e7?0aP5+_M9P9r@|dhl{!%ukkllNvsJE7BGr$ zE^OR@a8*#;RH<;upmKKiJWlgx8S_T^I!ZZ&SLh}dz>g~^r^s*gAG>`9FIf>*kfooh z5S0k6X`0n6gCnldi{}nY`?c)oqV-RRaeI0gNEMmO(q0JQh7Z5BM}C8;TM^GIC_&_& zQGDfkQ-)NNb6w8NV%a`PD%!TWu0}zzV8aVuRVwLIgPS*Ok~41yAORlur#d%Y{;yX` z`s)z>)Zh-X)t?R^@`{Y9ulGkuK(;!V3M4Dd2Ju}Gk}RRU=h%}z#xo`TE$h~8b(D0s z9Nx8pJlmtf%9$K)?B`v0^Qg<~`(_$bjclI~ydaJLoZaCC-E{_gPC;+(XTlipjmRVBCz}WvOPfz}$n# zh7G)}_3wq8o%#Peq^*e&9uhIHpI7bK1L36TRQJa@K2TqJ#eiCaTq!2ghVfa9cGfNt zI?$2db9EKDWBbxfo}7upNa8{il!rH_cCg8MS@+08%xOYt)|~4}^tBRS-TI^i=G?@% zK7s>EH*j4bmal`oxuVs@`tqED&dZUMwb)O8YoH~S{HR%)b^1z6Zn#@7#HTNg`?m@r z+^ipD8-2Y6b+`2L^hh70wqwR2RDi}b2~6x8${|fAc#%R$T3ciA3HZ5UkpchtxZEn8 zn6gch3M~CnxZIwov&3Hn-?>Nct0Fc%s+cmde_Y<^F}{SJEfK0*#yZr;JVfpJ#lKl^ zm7jmJS*M6>v7umok4RUW8}*XWUc1lFB(pku0P;M&{7m`3iLaFGivhIyii`kSgTEga zp)Qe+x@IdsAeUzfGg?Spp^?A^4g(gBFre<@Gk$;|-=m0Z@D$sCT}=KN?kOCRFvGaC z@XmY+J9+}Wmyz_@QWEA~<$D1O7D3ka$1_>0@o)NVKO^oyJAtpnko)7Cs56PE7e zlANa{=-aW`q8xuntky=|4EoZ$Q9r*h3NpgA2XY-7&mCAcc)0(0WrcK|tfe|9P`6p( zkD-u$C0$RV?kSUDZ$}P!2$631MVynkg$jz$i5Y)&*R67dr=0m5ZTr6*Eih(xMpWHJ z#+HR^uro7eu~!(=3W_QHJV@2_8pGES+gucseA}Z9j0`eSm6f?pT0S3Y3Q{pb2{Y4+ zhremdyuEAdyA zw`mu&`@rqnplJji0a-o5^3qOjNZQCFz^X@CUOGqo6aQc&gMrFtHxUfU?6SFN^+g-R z)s)2hu`pm)XhZ4&R&9!kqi{Aj%la~bFi`&m9~r|jj*&#R%_*dB6Zt6S%L+m) z%U?6s476)4imxg5Bh9&+pw#{`3vfWM>pDwg4ZVSpw}NQAFU_Tcy5Cd*53DqReFF0@ z@)9m*s8`0+SduBa&veKQ7x0-hUMIpgnc}3n=VxeLfO+~YH~Dz1$~+63gaY#J?tT8u z+r{mX;|2#SUw}%0RgFK`h&u!y-Aez)?4lSec7k|?wy;+>wW{2QwtvD&K^06~0#&?8 T+;5^DeSo7bZU=vJqG$dG8orB^ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 110cb746bf612fc002d3506653b5b454b26e79d6..1f07447e969cda5f12c410e5ebe95f7e126b8b81 100644 GIT binary patch literal 28148 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
wR9RH6bdAQ+ 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 vGXiU(@OJ!bSj{4!u_OxVfZzQ8+lW!1bmiMb