diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
index 2ee5cb13371..5720ef32047 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
@@ -40,11 +40,11 @@
/turf/simulated/floor/plating,
/area/ruin/powered/snow_biodome)
"ai" = (
-/obj/machinery/shower,
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plating,
/area/ruin/powered/snow_biodome)
"aj" = (
-/obj/structure/sink,
+/obj/structure/sink/directional/north,
/obj/machinery/light/small{
dir = 1
},
@@ -65,9 +65,7 @@
/turf/simulated/floor/plating,
/area/ruin/powered/snow_biodome)
"an" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plating,
/area/ruin/powered/snow_biodome)
"ao" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
index 00d96dd7467..93ffa2bdff6 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
@@ -1318,9 +1318,7 @@
/area/ruin/unpowered/althland_excavation)
"Pe" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/unpowered/althland_excavation)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_eden.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_eden.dmm
index 0de8d02a939..c67b3f82254 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_eden.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_eden.dmm
@@ -274,11 +274,7 @@
/turf/simulated/floor/grass/jungle/lavaland_air,
/area/ruin/unpowered/misc_lavaruin)
"sU" = (
-/obj/structure/sink/kitchen{
- dir = 4;
- pixel_y = 3;
- pixel_x = -13
- },
+/obj/structure/sink/kitchen/directional/west,
/obj/effect/decal/cleanable/flour,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/wood/lavaland_air,
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm
index c614f565197..839f6983aa8 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm
@@ -683,9 +683,7 @@
},
/area/mine/laborcamp)
"ep" = (
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/effect/turf_decal/box,
/turf/simulated/floor/plasteel{
dir = 6;
@@ -3140,10 +3138,7 @@
},
/area/mine/outpost/cafeteria)
"qZ" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = -10;
- dir = 1
- },
+/obj/structure/sink/kitchen/old/directional/south,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "darkredyellowfull"
@@ -4449,9 +4444,7 @@
/area/mine/laborcamp)
"yr" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/effect/turf_decal/box,
/turf/simulated/floor/plasteel{
icon_state = "yellowsiding"
@@ -5721,9 +5714,7 @@
/area/mine/laborcamp)
"FF" = (
/obj/effect/turf_decal/delivery/white/hollow,
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/machinery/camera{
c_tag = "Mining Outpost - Main Airlock";
network = list("Mining Outpost");
@@ -7996,9 +7987,7 @@
},
/area/mine/outpost/airlock)
"RG" = (
-/obj/structure/sink/kitchen{
- pixel_y = 24
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_regular_floor = "yellowsiding";
icon_state = "tranquillite"
@@ -8231,9 +8220,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/outpost/catwalk)
"SR" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery/white/hollow,
/obj/structure/sign/poster/official/random/directional/north,
/obj/machinery/light_switch{
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
index eec3746a98f..dfc60c5b632 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
@@ -3,9 +3,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"al" = (
@@ -45,16 +43,11 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/structure/sink{
- pixel_y = -4;
- dir = 1
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"dX" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"ed" = (
@@ -156,10 +149,7 @@
/turf/simulated/wall/r_wall,
/area/ruin/powered/seedvault)
"nt" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"oy" = (
@@ -411,11 +401,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Uh" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"Vu" = (
@@ -441,10 +427,7 @@
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"XC" = (
-/obj/structure/sink{
- pixel_y = -4;
- dir = 1
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"XF" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_shuttlecrash.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_shuttlecrash.dmm
index e64f6a181d6..ab375631d04 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_shuttlecrash.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_shuttlecrash.dmm
@@ -313,7 +313,7 @@
},
/area/ruin/unpowered/misc_lavaruin)
"zG" = (
-/obj/structure/toilet,
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/mineral/titanium,
/area/ruin/unpowered/misc_lavaruin)
"zM" = (
@@ -342,10 +342,7 @@
/turf/simulated/floor/mineral/titanium/blue,
/area/ruin/unpowered/misc_lavaruin)
"AC" = (
-/obj/structure/sink{
- pixel_x = 12;
- dir = 4
- },
+/obj/structure/sink/directional/east,
/obj/item/mounted/mirror{
icon_state = "mirror_broke";
pixel_y = -32
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm
index 7c68fc49551..e16ffc6786b 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm
@@ -285,10 +285,7 @@
/turf/simulated/wall/r_wall,
/area/ruin/space/abandoned_engi_sat)
"jk" = (
-/obj/machinery/shower{
- dir = 4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower/engineering,
/turf/simulated/floor/plasteel{
icon_state = "cmo"
@@ -1080,9 +1077,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/abandoned_engi_sat)
"LL" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "vault";
dir = 5
@@ -1222,10 +1217,7 @@
/turf/template_noop,
/area/ruin/space/abandoned_engi_sat)
"QJ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "vault";
dir = 5
@@ -1431,10 +1423,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/abandoned_engi_sat)
"ZS" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/sign/poster/random/directional/east,
/turf/simulated/floor/plasteel,
/area/ruin/space/abandoned_engi_sat)
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
index a84cec5e815..e3cd9f2febb 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
@@ -98,10 +98,7 @@
/turf/simulated/floor/carpet/black,
/area/ruin/space/powered/casino/floor)
"cy" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -6
- },
+/obj/structure/sink/directional/south,
/obj/structure/mirror{
pixel_y = -32
},
@@ -799,9 +796,7 @@
/turf/template_noop,
/area/template_noop)
"wn" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -1187,9 +1182,7 @@
/turf/simulated/floor/carpet/black,
/area/ruin/space/powered/casino/floor)
"Hq" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
index fff32296b73..01a3c06fc5e 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -1166,10 +1166,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/deepstorage)
"fD" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -4
- },
+/obj/structure/sink/directional/south,
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
@@ -1701,11 +1698,7 @@
},
/area/ruin/space/deepstorage)
"jo" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_x = -4;
- pixel_y = -4
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/obj/item/soap,
/obj/effect/decal/cleanable/dirt,
@@ -4861,11 +4854,7 @@
/area/ruin/space/deepstorage)
"Dx" = (
/obj/structure/window/reinforced/tinted,
-/obj/machinery/shower{
- dir = 8;
- pixel_x = -4;
- pixel_y = -4
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -4986,11 +4975,7 @@
/area/ruin/space/deepstorage)
"Eu" = (
/obj/structure/window/reinforced/tinted,
-/obj/machinery/shower{
- dir = 8;
- pixel_x = -4;
- pixel_y = -4
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/obj/item/bikehorn/rubberducky,
/turf/simulated/floor/plasteel{
@@ -5633,9 +5618,7 @@
},
/area/ruin/space/deepstorage)
"Kg" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small{
dir = 8
@@ -5687,9 +5670,7 @@
},
/area/ruin/space/deepstorage)
"Kx" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -7023,10 +7004,7 @@
},
/area/ruin/space/deepstorage)
"Uv" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -4
- },
+/obj/structure/sink/directional/south,
/obj/structure/mirror{
pixel_y = -28
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm b/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm
index da3e14074d5..791e60450cd 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm
@@ -687,11 +687,7 @@
dir = 4;
pixel_x = -32
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed,
/turf/simulated/floor/plasteel{
@@ -716,9 +712,7 @@
},
/area/ruin/space/djstation)
"bT" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/structure/curtain/open/shower,
/obj/structure/window/reinforced,
/obj/item/soap/deluxe/laundry,
@@ -964,9 +958,7 @@
/turf/simulated/floor/plasteel/dark,
/area/ruin/space/djstation)
"MM" = (
-/obj/structure/toilet{
- pixel_y = 11
- },
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm
index f8ac4b5cfe7..42324cac85c 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm
@@ -76,10 +76,7 @@
},
/area/ruin/space/syndicate_listening_station/asteroid)
"hQ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -492,9 +489,7 @@
/turf/simulated/floor/plasteel/dark,
/area/ruin/space/syndicate_listening_station)
"KM" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/item/soap/syndie,
/obj/item/bikehorn/rubberducky,
/obj/structure/curtain/open/shower/security,
@@ -653,9 +648,7 @@
},
/area/ruin/space/syndicate_listening_station/asteroid)
"Xm" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/mineral/silver,
/area/ruin/space/syndicate_listening_station)
"Xz" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
index e37a0611c77..4d8c7fc05ac 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
@@ -470,9 +470,7 @@
},
/area/ruin/unpowered/bmp_ship/midship)
"bW" = (
-/obj/structure/sink{
- pixel_y = 12
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "yellow"
@@ -2057,9 +2055,7 @@
},
/area/ruin/unpowered/bmp_ship/aft)
"hg" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 1
},
@@ -2084,11 +2080,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/bmp_ship/aft)
"hk" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
index 075436bfc75..d238d330e0b 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
@@ -93,9 +93,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/moonbase19)
"ap" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/noslip,
@@ -198,9 +196,7 @@
},
/area/ruin/space/moonbase19)
"aD" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/floor/plasteel{
@@ -1507,10 +1503,7 @@
/obj/structure/mirror{
pixel_x = -28
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light/small,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
@@ -2082,9 +2075,7 @@
},
/area/ruin/space/moonbase19)
"gM" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/machinery/light/small{
dir = 8
},
@@ -5061,11 +5052,7 @@
},
/area/ruin/space/moonbase19)
"rl" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = -2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "darkblue";
dir = 4
@@ -6900,9 +6887,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -7987,9 +7972,7 @@
},
/area/ruin/space/moonbase19)
"Ey" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/noslip,
/area/ruin/space/moonbase19)
@@ -8164,10 +8147,7 @@
/turf/simulated/floor/engine,
/area/ruin/space/moonbase19)
"Fp" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor";
temperature = 273.15
@@ -11755,9 +11735,7 @@
},
/area/ruin/space/moonbase19)
"VX" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/light/small{
@@ -12288,10 +12266,7 @@
/obj/structure/mirror{
pixel_x = -28
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -12310,9 +12285,7 @@
},
/area/ruin/space/moonbase19)
"Yu" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/effect/decal/cleanable/vomit/green,
/mob/living/simple_animal/hostile/alien,
/turf/simulated/floor/plasteel{
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm
index edddeac388b..081aeea54af 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm
@@ -199,9 +199,7 @@
/area/ruin/ancientstation)
"aJ" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/toilet{
- pixel_y = 12
- },
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/plasteel/white,
/area/ruin/ancientstation)
"aK" = (
@@ -254,10 +252,7 @@
name = "dusty mirror";
pixel_x = 26
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/white,
/area/ruin/ancientstation)
"aR" = (
@@ -314,9 +309,7 @@
/area/ruin/ancientstation/comm)
"bb" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/door/window/classic/reversed{
dir = 8
},
@@ -389,9 +382,7 @@
"bm" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/soap/nanotrasen,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/door/window/classic/normal{
dir = 8
},
@@ -1664,9 +1655,7 @@
/area/ruin/ancientstation)
"fg" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "red"
@@ -2372,9 +2361,7 @@
/area/ruin/ancientstation/comm)
"gX" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel,
/area/ruin/ancientstation/rnd)
@@ -5884,9 +5871,7 @@
/area/ruin/ancientstation/rnd)
"IP" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
index 52c49d85aee..b40789f790b 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
@@ -27,10 +27,7 @@
/turf/simulated/floor/wood,
/area/ruin/space/rocky_motel)
"cT" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -374,9 +371,7 @@
/turf/simulated/floor/plating/asteroid/airless,
/area/ruin/space/rocky_motel/asteroid)
"Fc" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/vault,
/area/ruin/space/rocky_motel)
"Ff" = (
@@ -625,11 +620,7 @@
"Ub" = (
/obj/structure/curtain/open/shower,
/obj/item/soap,
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -762,9 +753,7 @@
/turf/simulated/wall,
/area/ruin/space/rocky_motel)
"Zz" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm b/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm
index e4973cfcbf4..b83a5f4a67c 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm
@@ -164,9 +164,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/sieged_lab)
"kA" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -654,10 +652,7 @@
/turf/simulated/floor/wood,
/area/ruin/space/sieged_lab)
"Eo" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
index 4fa31d186e5..01a80fecb24 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
@@ -207,11 +207,7 @@
/obj/structure/mirror{
pixel_x = -28
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = -8
- },
+/obj/structure/sink/directional/west,
/obj/effect/spawner/random/cobweb/left/rare,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -314,11 +310,7 @@
/obj/structure/mirror{
pixel_x = -28
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = -8
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -670,9 +662,7 @@
/turf/simulated/floor/mineral/titanium/blue/airless,
/area/ruin/space/powered)
"CN" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -689,9 +679,7 @@
/turf/simulated/floor/plating/airless,
/area/ruin/space/powered)
"DT" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/item/wrench,
/turf/simulated/floor/plasteel{
icon_state = "dark"
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/submaps/rocky_motel_submap.dmm b/_maps/map_files/RandomRuins/SpaceRuins/submaps/rocky_motel_submap.dmm
index 560e13bafba..2a9260e805d 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/submaps/rocky_motel_submap.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/submaps/rocky_motel_submap.dmm
@@ -327,11 +327,7 @@
/area/template_noop)
"Kr" = (
/obj/item/soap/syndie,
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 4
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/submaps/sieged_lab_submaps.dmm b/_maps/map_files/RandomRuins/SpaceRuins/submaps/sieged_lab_submaps.dmm
index f0fab13debe..9c80cb0e358 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/submaps/sieged_lab_submaps.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/submaps/sieged_lab_submaps.dmm
@@ -1979,9 +1979,7 @@
/turf/simulated/floor/plating/airless,
/area/template_noop)
"Qa" = (
-/obj/structure/sink{
- pixel_y = 19
- },
+/obj/structure/sink/directional/north,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/plasteel{
dir = 1;
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
index 91fc320b5fa..1a5a0b879ae 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
@@ -245,9 +245,7 @@
/turf/simulated/floor/grass,
/area/ruin/unpowered/syndicate_space_base/service)
"bO" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/machinery/firealarm/directional/east,
/obj/effect/turf_decal/box/white,
/turf/simulated/floor/wood,
@@ -1195,10 +1193,7 @@
name = "east bump";
pixel_x = 27
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/box/white,
/turf/simulated/floor/plasteel{
@@ -3854,11 +3849,7 @@
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/atmos)
"wf" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/box/white,
/turf/simulated/floor/wood,
@@ -7142,10 +7133,7 @@
/area/ruin/unpowered/syndicate_space_base/arrivals)
"QO" = (
/obj/item/storage/box/monkeycubes/syndicate,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 24;
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
index cdcdf7e822e..b50d10ceffd 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
@@ -771,10 +771,7 @@
/turf/simulated/floor/mineral/silver,
/area/syndicate_depot/core)
"cr" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/mineral/silver,
/area/syndicate_depot/core)
"cs" = (
@@ -885,9 +882,7 @@
},
/area/syndicate_depot/core)
"cE" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/mineral/silver,
/area/syndicate_depot/core)
"cF" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
index 203d8aea28a..29a7fc0eb28 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
@@ -425,10 +425,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/turreted_outpost)
"Kd" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -473,7 +470,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/structure/toilet,
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/space/turreted_outpost)
"Oc" = (
@@ -498,9 +495,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/turreted_outpost)
"OU" = (
-/obj/machinery/shower{
- pixel_y = 24
- },
+/obj/machinery/shower/directional/north,
/obj/structure/curtain/open/shower/security,
/obj/item/soap/syndie,
/obj/item/bikehorn/rubberducky,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
index 6876289a51c..bbddbcf8206 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
@@ -682,7 +682,7 @@
/area/ruin/space/derelict/bridge)
"bR" = (
/obj/structure/curtain/open,
-/obj/structure/toilet,
+/obj/structure/toilet/directional/north,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -815,9 +815,7 @@
},
/area/ruin/space/derelict/crew_quarters)
"ck" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
@@ -912,10 +910,7 @@
},
/area/ruin/space/derelict/bridge)
"cy" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
dir = 4;
pixel_x = -32
@@ -1044,10 +1039,7 @@
/area/ruin/space/derelict/arrival)
"cO" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/obj/structure/window/reinforced{
dir = 1
},
@@ -2469,9 +2461,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -2821,11 +2811,7 @@
},
/area/ruin/space/derelict/arrival)
"hw" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "purple"
@@ -2947,11 +2933,7 @@
},
/area/ruin/space/derelict/arrival)
"hN" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "purple"
@@ -4884,9 +4866,7 @@
/turf/template_noop,
/area/ruin/space/derelict/hallway/primary)
"ne" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
@@ -4974,9 +4954,7 @@
/turf/simulated/floor/plasteel/white,
/area/ruin/space/derelict/hallway/primary)
"ns" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/obj/structure/window/reinforced,
/obj/effect/decal/cleanable/dirt,
@@ -5045,11 +5023,7 @@
/turf/simulated/floor/plasteel/white,
/area/ruin/space/derelict/hallway/primary)
"nC" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel/white,
/area/ruin/space/derelict/hallway/primary)
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index e21503b6ca3..977f8c55744 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -982,16 +982,12 @@
},
/area/holodeck/source_basketball)
"dH" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plating,
/area/centcom)
"dI" = (
/obj/effect/decal/cleanable/cobweb2,
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plating,
/area/centcom)
"dJ" = (
@@ -1065,9 +1061,7 @@
/area/holodeck/source_basketball)
"eb" = (
/obj/effect/decal/cleanable/blood,
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plating,
/area/centcom)
"ec" = (
@@ -1281,10 +1275,7 @@
/turf/simulated/floor/pod/dark,
/area/syndicate_mothership)
"eW" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -3736,9 +3727,7 @@
/obj/machinery/door/window/reinforced/reversed{
name = "Tactical Toilet"
},
-/obj/structure/toilet{
- pixel_y = 13
- },
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/syndicate_mothership)
"np" = (
@@ -4315,10 +4304,7 @@
/turf/simulated/wall/r_wall,
/area/start)
"pi" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror/magic/nuclear{
pixel_x = 28
},
@@ -5913,10 +5899,7 @@
/obj/structure/mirror{
pixel_x = 28
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
"uJ" = (
@@ -6459,10 +6442,7 @@
/obj/structure/mirror{
pixel_x = 28
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
"wE" = (
@@ -6506,9 +6486,7 @@
/turf/simulated/floor/plasteel,
/area/admin)
"wI" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/structure/window/reinforced/tinted,
/obj/machinery/door/window{
dir = 8;
@@ -6631,9 +6609,7 @@
/turf/simulated/floor/carpet,
/area/admin)
"xa" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/structure/window/reinforced/tinted{
dir = 1
},
@@ -6988,10 +6964,7 @@
},
/area/centcom/evac)
"yI" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 32
},
@@ -7154,10 +7127,7 @@
/turf/simulated/floor/wood,
/area/wizard_station)
"zw" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 32
},
@@ -7925,10 +7895,7 @@
/turf/simulated/floor/wood,
/area/ghost_bar)
"Cp" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -7952,9 +7919,7 @@
/area/admin)
"Ct" = (
/obj/effect/decal/cleanable/blood,
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plasteel/dark,
/area/admin)
"Cu" = (
@@ -8353,9 +8318,7 @@
/obj/structure/window/reinforced/tinted{
dir = 1
},
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/door/window{
dir = 8;
name = "Toilet";
@@ -8803,10 +8766,7 @@
/obj/structure/curtain/open/shower/security,
/obj/item/soap/syndie,
/obj/item/bikehorn/rubberducky/captainducky,
-/obj/machinery/shower{
- dir = 1;
- pixel_y = -2
- },
+/obj/machinery/shower/directional/south,
/turf/simulated/floor/plasteel/freezer,
/area/syndicate_mothership)
"FB" = (
@@ -9390,9 +9350,7 @@
},
/area/syndicate_mothership)
"Hy" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plasteel/dark,
/area/admin)
"Hz" = (
@@ -9427,10 +9385,7 @@
},
/area/ghost_bar)
"HE" = (
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -2
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel/freezer,
/area/ghost_bar)
@@ -10514,9 +10469,7 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/specops)
"Lc" = (
-/obj/structure/toilet{
- pixel_y = 13
- },
+/obj/structure/toilet/directional/north,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
"Le" = (
@@ -10683,9 +10636,7 @@
},
/area/ghost_bar)
"LG" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -11650,10 +11601,7 @@
/area/space/nearstation/centcom)
"OL" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 1;
- pixel_y = -2
- },
+/obj/machinery/shower/directional/south,
/obj/structure/window/basic{
dir = 1
},
@@ -12332,9 +12280,7 @@
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
"QZ" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/structure/window/reinforced/tinted{
dir = 1
},
diff --git a/_maps/map_files/shuttles/admin_hospital.dmm b/_maps/map_files/shuttles/admin_hospital.dmm
index 0dc262a957e..1107280fbd1 100644
--- a/_maps/map_files/shuttles/admin_hospital.dmm
+++ b/_maps/map_files/shuttles/admin_hospital.dmm
@@ -278,11 +278,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"bt" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"bv" = (
@@ -362,10 +358,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"bJ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"bL" = (
diff --git a/_maps/map_files/shuttles/emergency_bar.dmm b/_maps/map_files/shuttles/emergency_bar.dmm
index 30e5462092c..6517dbd5ec2 100644
--- a/_maps/map_files/shuttles/emergency_bar.dmm
+++ b/_maps/map_files/shuttles/emergency_bar.dmm
@@ -56,9 +56,7 @@
/turf/simulated/floor/wood,
/area/shuttle/escape)
"ao" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/light/small,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -924,9 +922,7 @@
dir = 1
},
/obj/item/soap/deluxe,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -944,9 +940,7 @@
/obj/structure/mirror{
pixel_y = 35
},
-/obj/structure/sink{
- pixel_y = 14
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -1055,9 +1049,7 @@
"SW" = (
/obj/structure/curtain/open/shower,
/obj/item/bikehorn/rubberducky,
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
diff --git a/_maps/map_files/shuttles/emergency_cherenkov.dmm b/_maps/map_files/shuttles/emergency_cherenkov.dmm
index 56dbaabcc87..3a00fcedc7d 100644
--- a/_maps/map_files/shuttles/emergency_cherenkov.dmm
+++ b/_maps/map_files/shuttles/emergency_cherenkov.dmm
@@ -175,9 +175,7 @@
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"fS" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/shuttle/escape)
@@ -1579,9 +1577,7 @@
/turf/simulated/floor/pod/dark,
/area/shuttle/escape)
"YP" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/shuttle/escape)
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index 0d7b9f056a4..ccf3ac978a5 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -242,9 +242,7 @@
},
/area/station/security/main)
"acB" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower/security,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -271,10 +269,7 @@
},
/area/station/security/main)
"acE" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -361,9 +356,7 @@
/turf/simulated/floor/grass,
/area/station/security/permabrig)
"acS" = (
-/obj/structure/toilet{
- dir = 1
- },
+/obj/structure/toilet/directional/south,
/obj/machinery/light/small,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -3095,15 +3088,11 @@
},
/area/station/security/storage)
"amK" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 28
- },
+/obj/structure/sink/kitchen/old/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"amL" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
@@ -4223,9 +4212,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"aqr" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 4
},
@@ -5879,10 +5866,7 @@
},
/area/station/security/processing)
"avC" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/item/soap,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
@@ -6233,9 +6217,7 @@
/turf/space,
/area/station/engineering/solar/fore_starboard)
"awS" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -7772,9 +7754,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/abandonedbar)
"aBW" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/obj/machinery/light_construct/small{
dir = 4
},
@@ -13260,9 +13240,7 @@
/obj/machinery/light{
dir = 1
},
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/garden)
"aUx" = (
@@ -13278,9 +13256,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint2)
"aUz" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/garden)
"aUA" = (
@@ -18049,11 +18025,7 @@
/turf/simulated/floor/wood,
/area/station/service/bar)
"bja" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light_switch{
dir = 4;
name = "west bump";
@@ -18066,11 +18038,7 @@
/turf/simulated/floor/wood,
/area/station/service/bar)
"bjd" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
@@ -19127,9 +19095,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/port/east)
"bmt" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -19853,11 +19819,7 @@
/area/station/service/bar)
"bou" = (
/obj/item/reagent_containers/glass/bucket,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -20406,10 +20368,7 @@
},
/area/station/service/hydroponics)
"bqb" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
@@ -22435,9 +22394,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry/south)
"bwP" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -22602,10 +22559,7 @@
c_tag = "Hydroponics South";
dir = 8
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/item/reagent_containers/glass/bucket,
/obj/machinery/light_switch{
dir = 8;
@@ -22709,10 +22663,7 @@
},
/area/station/public/toilet/lockerroom)
"byo" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
icon_state = "1-2"
@@ -22926,9 +22877,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/exit)
"bzu" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -23069,9 +23018,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/exit)
"bzP" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plasteel{
@@ -23872,10 +23819,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry/south)
"bDv" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
@@ -24111,10 +24055,7 @@
/turf/simulated/wall,
/area/station/medical/reception)
"bEz" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -25067,10 +25008,7 @@
/turf/simulated/floor/plating,
/area/station/medical/chemistry)
"bIi" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -25124,10 +25062,7 @@
/turf/simulated/floor/plating,
/area/station/medical/reception)
"bIs" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -25500,10 +25435,7 @@
/area/station/supply/sorting)
"bJF" = (
/obj/machinery/firealarm/directional/west,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whiteyellow"
@@ -30102,10 +30034,7 @@
},
/area/station/science/robotics)
"ccj" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -30381,9 +30310,7 @@
},
/area/station/science/robotics)
"cdG" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
@@ -31882,10 +31809,7 @@
/area/station/medical/medbay3)
"cjG" = (
/obj/machinery/firealarm/directional/east,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
@@ -32234,10 +32158,7 @@
},
/area/station/medical/virology)
"cll" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/camera{
c_tag = "Virology Module North";
dir = 5
@@ -32352,9 +32273,7 @@
},
/area/station/medical/virology)
"clU" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -32993,9 +32912,7 @@
},
/area/station/supply/miningdock)
"coi" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "whitegreen"
@@ -34286,10 +34203,7 @@
/turf/simulated/wall/r_wall,
/area/station/engineering/control)
"ctk" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/light_switch{
dir = 8;
name = "east bump";
@@ -35189,9 +35103,7 @@
/turf/simulated/floor/plating,
/area/station/command/bridge)
"cxn" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/white/hollow,
/turf/simulated/floor/noslip,
/area/station/medical/surgery)
@@ -35355,10 +35267,7 @@
name = "east bump";
pixel_x = 28
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/iv_drip,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -38168,10 +38077,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
"cIi" = (
@@ -41575,10 +41481,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/hardsuitstorage)
"cVv" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -41790,9 +41693,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"cWr" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -42139,9 +42040,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/equipmentstorage)
"cXO" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
@@ -44608,9 +44507,7 @@
},
/area/station/public/toilet/unisex)
"dhV" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -47853,9 +47750,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/purple{
dir = 4
},
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"dHd" = (
@@ -50102,9 +49997,7 @@
dir = 1;
name = "Shower"
},
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/item/bikehorn/rubberducky/captainducky,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -51704,10 +51597,7 @@
c_tag = "Research Access";
network = list("Research","SS13")
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "whitepurple"
@@ -52338,10 +52228,7 @@
/turf/space,
/area/space/nearstation)
"fOF" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -53679,9 +53566,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint2)
"gyt" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/newscaster/directional/north,
/obj/machinery/door_control{
id = "toilet_unit1";
@@ -54092,9 +53977,7 @@
},
/area/station/engineering/control)
"gKN" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -54578,9 +54461,7 @@
"gVD" = (
/obj/effect/decal/cleanable/blood/xeno,
/obj/item/restraints/handcuffs/cable/blue,
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"gVE" = (
@@ -56356,10 +56237,7 @@
/turf/simulated/floor/plasteel,
/area/station/science/xenobiology)
"hTK" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -59169,11 +59047,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/asmaint)
"jum" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_x = -4;
- pixel_y = -4
- },
+/obj/machinery/shower/directional/east,
/obj/structure/curtain/open/shower,
/obj/structure/window/reinforced/tinted,
/turf/simulated/floor/plasteel{
@@ -59921,10 +59795,7 @@
"jPZ" = (
/obj/structure/sign/poster/official/cleanliness/directional/east,
/obj/effect/decal/cleanable/dirt,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -60142,10 +60013,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"jTV" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -61253,9 +61121,7 @@
"kwZ" = (
/obj/structure/curtain/open/shower,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -61347,9 +61213,7 @@
"kAp" = (
/obj/machinery/firealarm/directional/south,
/obj/effect/turf_decal/delivery/white/hollow,
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -62312,10 +62176,7 @@
},
/area/station/security/permabrig)
"kXA" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -26;
pixel_y = 3
@@ -62829,10 +62690,7 @@
},
/area/station/maintenance/asmaint)
"llD" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whiteblue"
@@ -63228,9 +63086,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/assembly_line)
"luh" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -63498,10 +63354,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/apmaint)
"lDi" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
@@ -66500,9 +66353,7 @@
/turf/simulated/floor/plasteel,
/area/station/public/storage/tools/auxiliary)
"nfE" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/noslip,
/area/station/engineering/control)
"ngD" = (
@@ -66571,10 +66422,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"niP" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/firealarm/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
@@ -67578,11 +67426,7 @@
/area/station/maintenance/asmaint)
"nNe" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 8;
- pixel_x = -4;
- pixel_y = -4
- },
+/obj/machinery/shower/directional/east,
/obj/structure/window/reinforced/tinted,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -68961,10 +68805,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"oto" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurple"
@@ -69479,10 +69320,7 @@
},
/area/station/medical/storage)
"oGi" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
@@ -69562,10 +69400,7 @@
},
/area/station/medical/virology)
"oHA" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
@@ -71675,10 +71510,7 @@
/turf/simulated/floor/plating,
/area/station/security/main)
"pPr" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
@@ -72973,9 +72805,7 @@
/area/station/legal/courtroom/gallery)
"qup" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"qvf" = (
@@ -73122,9 +72952,7 @@
/area/station/maintenance/storage)
"qyf" = (
/obj/structure/sign/poster/official/random/directional/east,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
dir = 4;
@@ -75656,10 +75484,7 @@
/area/station/hallway/secondary/exit)
"rLK" = (
/obj/machinery/newscaster/directional/west,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -75821,9 +75646,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"rRa" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 4
},
@@ -76560,9 +76383,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"smL" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/newscaster/directional/north,
/obj/effect/landmark/spawner/nukedisc_respawn,
/turf/simulated/floor/plating,
@@ -77771,10 +77592,7 @@
/turf/simulated/wall,
/area/station/science/hallway)
"sSX" = (
-/obj/structure/sink/kitchen/old{
- dir = 4;
- pixel_x = -12
- },
+/obj/structure/sink/kitchen/old/directional/west,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/grass,
/area/station/security/permabrig)
@@ -78158,9 +77976,7 @@
/turf/simulated/floor/engine/airless,
/area/station/science/toxins/test)
"tfv" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/white/hollow,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -78221,10 +78037,7 @@
"tia" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/sink/kitchen/old{
- dir = 8;
- pixel_x = 12
- },
+/obj/structure/sink/kitchen/old/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -79471,9 +79284,7 @@
/turf/simulated/floor/wood,
/area/station/command/office/captain)
"tQJ" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/engineering/control)
"tRp" = (
@@ -79506,9 +79317,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"tRw" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -81439,9 +81248,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint2)
"uWf" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/camera{
c_tag = "Prison Solitary 2";
dir = 8;
@@ -82645,9 +82452,7 @@
/area/station/maintenance/asmaint)
"vDY" = (
/obj/effect/turf_decal/delivery/red/hollow,
-/obj/machinery/shower{
- pixel_y = 16
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/security/prisonlockers)
"vEm" = (
@@ -82675,10 +82480,7 @@
},
/area/station/science/genetics)
"vEA" = (
-/obj/structure/sink/kitchen/old{
- dir = 8;
- pixel_x = 12
- },
+/obj/structure/sink/kitchen/old/directional/east,
/obj/item/reagent_containers/glass/bucket,
/obj/item/radio/intercom/locked/prison{
name = "Prison Intercom (General)";
@@ -83968,9 +83770,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"woA" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
dir = 4;
@@ -84418,11 +84218,7 @@
/turf/simulated/floor/engine,
/area/station/science/misc_lab)
"wAW" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
@@ -84576,10 +84372,7 @@
/area/station/hallway/primary/central/se)
"wEP" = (
/obj/machinery/newscaster/directional/east,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -84973,9 +84766,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "redfull"
},
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index 8f877b6b1d5..72d5a33d2a3 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -567,9 +567,7 @@
/area/station/engineering/engine/supermatter)
"adI" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -584,9 +582,7 @@
/area/station/engineering/engine/supermatter)
"adS" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/item/bikehorn/rubberducky,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -1878,9 +1874,7 @@
},
/area/station/medical/storage)
"aoC" = (
-/obj/structure/toilet{
- pixel_y = 6
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 4
},
@@ -2297,9 +2291,7 @@
/area/station/command/office/hos)
"asv" = (
/obj/structure/curtain,
-/obj/machinery/shower{
- pixel_y = 24
- },
+/obj/machinery/shower/directional/north,
/obj/item/bikehorn/rubberducky/captainducky,
/turf/simulated/floor/plasteel/freezer,
/area/station/command/office/captain)
@@ -2630,11 +2622,7 @@
/turf/simulated/floor/carpet/royalblack,
/area/station/command/office/captain)
"auW" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -32
},
@@ -2695,9 +2683,7 @@
},
/area/station/security/brig)
"avk" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 1
},
@@ -5217,9 +5203,7 @@
/turf/simulated/mineral/ancient,
/area/station/security/permabrig)
"aTB" = (
-/obj/machinery/shower{
- pixel_y = 24
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel/white,
/area/station/science/xenobiology)
@@ -6783,10 +6767,7 @@
/obj/structure/mirror{
pixel_x = 28
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/sign/poster/official/cleanliness/directional/south,
/turf/simulated/floor/plasteel/freezer,
/area/station/medical/virology)
@@ -8306,10 +8287,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/sign/poster/official/cleanliness/directional/west,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -11374,9 +11352,7 @@
/turf/simulated/floor/plating,
/area/station/engineering/control)
"bFr" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/red/hollow,
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -11398,9 +11374,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/red/hollow,
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -12423,9 +12397,7 @@
/area/station/engineering/gravitygenerator)
"bKZ" = (
/obj/effect/turf_decal/delivery/red/hollow,
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/medical/cloning)
"bLz" = (
@@ -19508,9 +19480,7 @@
},
/area/station/maintenance/fsmaint)
"cHT" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "whiteblue"
},
@@ -20599,10 +20569,7 @@
},
/area/station/maintenance/fore2)
"cPa" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -23650,9 +23617,7 @@
/area/station/security/storage)
"diM" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/window/reinforced/tinted/frosted{
dir = 1
},
@@ -25943,9 +25908,7 @@
},
/area/station/maintenance/port2)
"dEg" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/mob/living/carbon/human/monkey,
/turf/simulated/floor/grass,
/area/station/science/genetics)
@@ -26180,9 +26143,7 @@
/area/station/maintenance/apmaint)
"dHT" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/structure/window/reinforced/tinted/frosted{
dir = 1
},
@@ -30531,9 +30492,7 @@
/turf/simulated/floor/catwalk,
/area/station/maintenance/fsmaint)
"eJD" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/mapping_helpers/turfs/burn,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
@@ -34887,9 +34846,7 @@
/obj/machinery/light/small{
dir = 8
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/door_control{
id = "b1";
name = "Privacy Bolts";
@@ -35996,9 +35953,7 @@
pixel_y = 28;
name = "custom placement"
},
-/obj/structure/toilet{
- pixel_y = 6
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -37881,9 +37836,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port)
"gFd" = (
-/obj/machinery/shower{
- pixel_y = 24
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/station/medical/virology)
@@ -40405,10 +40358,7 @@
},
/area/station/hallway/primary/fore/north)
"hnr" = (
-/obj/structure/sink/kitchen{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/kitchen/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -40842,9 +40792,7 @@
/turf/simulated/floor/plating,
/area/station/hallway/spacebridge/sercom)
"hsc" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "darkgreenfull"
},
@@ -40980,9 +40928,7 @@
/obj/machinery/light/small{
dir = 8
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/door_control{
id = "b2";
name = "Privacy Bolts";
@@ -41096,9 +41042,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/west)
"huJ" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 1
},
@@ -44143,9 +44087,7 @@
/turf/simulated/floor/plating,
/area/station/hallway/primary/fore/north)
"iek" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/station/medical/cryo)
@@ -44333,9 +44275,7 @@
/area/shuttle/arrival/station)
"igH" = (
/obj/structure/curtain/open/shower/security,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/structure/window/reinforced{
dir = 4
},
@@ -46356,9 +46296,7 @@
"iFW" = (
/obj/structure/window/reinforced/tinted/frosted,
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/item/bikehorn/rubberducky,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
@@ -48891,10 +48829,7 @@
},
/area/station/public/storage/tools)
"jiG" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -49160,9 +49095,7 @@
},
/area/station/maintenance/fore)
"jmy" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/station/medical/surgery)
@@ -55096,11 +55029,7 @@
},
/area/station/engineering/gravitygenerator)
"kBz" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
@@ -56895,9 +56824,7 @@
"kXH" = (
/obj/item/soap/nanotrasen,
/obj/item/bikehorn/rubberducky,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/structure/curtain/open/shower/security,
/turf/simulated/floor/plasteel/freezer,
/area/station/security/storage)
@@ -58722,10 +58649,7 @@
/area/shuttle/pod_2)
"lsW" = (
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/grass,
/area/station/service/hydroponics)
"lta" = (
@@ -59873,9 +59797,7 @@
},
/area/station/medical/cryo)
"lFz" = (
-/obj/structure/toilet{
- pixel_y = 6
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/door_control{
id = "fb2";
name = "Privacy Bolts";
@@ -67398,9 +67320,7 @@
"nyG" = (
/obj/structure/window/reinforced/tinted/frosted,
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
"nyI" = (
@@ -67525,9 +67445,7 @@
/turf/simulated/floor/wood,
/area/station/public/vacant_office)
"nBp" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/station/security/storage)
"nBA" = (
@@ -71028,10 +70946,7 @@
dir = 1
},
/mob/living/carbon/human/monkey,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "whitegreenfull"
},
@@ -71469,9 +71384,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/disposal)
"ozg" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/station/service/kitchen)
"ozk" = (
@@ -73226,10 +73139,7 @@
},
/area/station/maintenance/starboard)
"oVM" = (
-/obj/structure/sink/kitchen/old{
- dir = 8;
- pixel_x = 12
- },
+/obj/structure/sink/kitchen/old/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
@@ -77730,9 +77640,7 @@
/turf/simulated/floor/wood,
/area/station/public/vacant_office)
"pWT" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel/freezer,
/area/station/maintenance/gambling_den)
@@ -78110,10 +78018,7 @@
},
/area/station/maintenance/starboard)
"qcC" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/wood,
/area/station/public/pet_store)
"qcE" = (
@@ -79424,10 +79329,7 @@
dir = 1
},
/mob/living/carbon/human/monkey,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "whitegreenfull"
},
@@ -79886,10 +79788,7 @@
},
/area/station/security/lobby)
"qyG" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
@@ -80106,9 +80005,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/effect/turf_decal/delivery/red/hollow,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -82174,10 +82071,7 @@
/area/station/hallway/primary/fore/east)
"raF" = (
/obj/effect/spawner/random/dirt/frequent,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -85246,10 +85140,7 @@
},
/area/station/medical/sleeper)
"rOP" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/sign/poster/official/cleanliness/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
@@ -88337,10 +88228,7 @@
/turf/simulated/floor/catwalk,
/area/station/engineering/transmission_laser)
"szL" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
@@ -89700,9 +89588,7 @@
/area/station/security/detective)
"sOA" = (
/obj/effect/turf_decal/delivery,
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/firealarm/directional/south,
/turf/simulated/floor/plasteel/white,
/area/station/science/hallway)
@@ -92621,11 +92507,7 @@
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/unisex)
"tzy" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "darkgreenfull"
},
@@ -95351,10 +95233,7 @@
},
/area/station/supply/storage)
"uhb" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/official/cleanliness/directional/west,
/turf/simulated/floor/plasteel{
@@ -98016,9 +97895,7 @@
},
/area/station/medical/medbay3)
"uNh" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/unisex)
"uNp" = (
@@ -98948,10 +98825,7 @@
},
/area/station/medical/medbay3)
"uZP" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light/small,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
@@ -100058,9 +99932,7 @@
/area/station/hallway/primary/aft/east)
"vnj" = (
/obj/effect/turf_decal/delivery/red/hollow,
-/obj/machinery/shower{
- pixel_y = 16
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/security/prisonlockers)
"vno" = (
@@ -101349,10 +101221,7 @@
},
/area/station/maintenance/starboard)
"vCs" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkpurple"
@@ -101969,9 +101838,7 @@
},
/area/station/public/locker)
"vKD" = (
-/obj/structure/toilet{
- pixel_y = 6
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 8
},
@@ -102655,10 +102522,7 @@
name = "east bump";
pixel_x = 28
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/unisex)
"vSy" = (
@@ -103950,9 +103814,7 @@
},
/area/station/hallway/spacebridge/servsci)
"wkH" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whiteblue"
@@ -104322,9 +104184,7 @@
},
/area/station/science/robotics/chargebay)
"wnP" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
@@ -104459,10 +104319,7 @@
},
/area/station/maintenance/port2)
"wpH" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -104811,9 +104668,7 @@
/obj/structure/mirror{
pixel_x = 32
},
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel/freezer,
/area/station/security/storage)
"wtn" = (
@@ -105073,9 +104928,7 @@
/turf/simulated/floor/plating,
/area/station/engineering/tech_storage)
"wvB" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 4
},
@@ -106742,9 +106595,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"wPJ" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/engineering/control)
"wPV" = (
@@ -107216,9 +107067,7 @@
},
/area/station/public/quantum/service)
"wWs" = (
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/obj/structure/curtain/open/shower,
/obj/item/soap/nanotrasen,
/obj/item/bikehorn/rubberducky,
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index 0993078db00..0b4a98deea6 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -2111,9 +2111,7 @@
/turf/simulated/floor/plasteel/white/side,
/area/station/maintenance/fore2)
"aog" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/obj/machinery/newscaster/directional/east,
/obj/effect/decal/cleanable/cobweb2,
/turf/simulated/floor/plasteel{
@@ -2128,9 +2126,7 @@
/turf/simulated/floor/plasteel/white/side,
/area/station/maintenance/fore2)
"aoi" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel/white/side,
/area/station/maintenance/fore2)
@@ -5501,9 +5497,7 @@
},
/area/station/public/toilet/unisex)
"azt" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/obj/structure/mirror{
pixel_x = 28
},
@@ -6099,9 +6093,7 @@
/area/station/supply/storage)
"aBb" = (
/obj/machinery/light/small,
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/door_control{
id = "toilet_unit1";
name = "Door Bolt Control";
@@ -6635,9 +6627,7 @@
},
/area/station/supply/storage)
"aCP" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
@@ -7661,9 +7651,7 @@
/turf/simulated/floor/wood,
/area/station/service/clown)
"aGx" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel/dark,
/area/station/service/bar)
"aGy" = (
@@ -7796,10 +7784,7 @@
/turf/simulated/wall/r_wall,
/area/station/maintenance/incinerator)
"aHb" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel,
/area/station/maintenance/abandoned_garden)
"aHc" = (
@@ -8406,9 +8391,7 @@
/area/station/supply/storage)
"aIQ" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/item/soap/nanotrasen,
/obj/item/bikehorn/rubberducky,
/turf/simulated/floor/plasteel{
@@ -9533,9 +9516,7 @@
name = "south bump";
pixel_y = -28
},
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/noslip,
/area/station/engineering/controlroom)
"aMM" = (
@@ -10239,9 +10220,7 @@
},
/area/station/supply/storage)
"aPE" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/noslip,
/area/station/engineering/controlroom)
"aPF" = (
@@ -10599,9 +10578,7 @@
},
/area/station/hallway/primary/port/north)
"aRa" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/structure/extinguisher_cabinet{
name = "south bump";
pixel_y = -30
@@ -12299,9 +12276,7 @@
"aWW" = (
/obj/machinery/alarm/directional/south,
/obj/effect/turf_decal/delivery/red/hollow,
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/noslip,
/area/station/security/prisonlockers)
"aXa" = (
@@ -15032,10 +15007,7 @@
},
/area/station/service/hydroponics)
"bje" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -18012,9 +17984,7 @@
},
/area/station/service/hydroponics)
"buX" = (
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/engineering/equipmentstorage)
"buY" = (
@@ -25574,9 +25544,7 @@
/obj/machinery/light{
dir = 8
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
@@ -25584,9 +25552,7 @@
/turf/simulated/floor/plasteel/white,
/area/station/command/office/captain/bedroom)
"bVb" = (
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/obj/structure/curtain/open/shower,
/obj/item/soap/deluxe,
/obj/item/bikehorn/rubberducky/captainducky,
@@ -26079,10 +26045,7 @@
/turf/simulated/floor/plasteel/white,
/area/station/command/office/captain/bedroom)
"bWZ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/white,
/area/station/command/office/captain/bedroom)
"bXa" = (
@@ -33163,10 +33126,7 @@
},
/area/station/public/locker)
"cwe" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/plasteel{
icon_state = "green";
@@ -33996,9 +33956,7 @@
},
/area/station/hallway/primary/central/se)
"cyB" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
"cyC" = (
@@ -34009,9 +33967,7 @@
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
"cyD" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
"cyE" = (
@@ -35715,17 +35671,12 @@
},
/area/station/hallway/primary/port/north)
"cEj" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/public/toilet/lockerroom)
"cEo" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small,
/obj/effect/decal/cleanable/vomit,
/turf/simulated/floor/plating,
@@ -35936,9 +35887,7 @@
},
/area/station/hallway/primary/central)
"cFb" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small,
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/delivery/hollow,
@@ -41118,10 +41067,7 @@
/area/station/science/rnd)
"cYD" = (
/obj/machinery/alarm/directional/west,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/camera{
c_tag = "Chemistry North";
dir = 4;
@@ -42626,9 +42572,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/starboard)
"der" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -42882,10 +42826,7 @@
/turf/simulated/wall/r_wall,
/area/station/command/office/rd)
"dfl" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whiteblue"
@@ -44935,10 +44876,7 @@
/turf/simulated/floor/carpet,
/area/station/maintenance/starboard)
"dos" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/carpet,
/area/station/maintenance/starboard)
"dot" = (
@@ -46390,10 +46328,7 @@
/obj/structure/mirror{
pixel_x = 32
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "darkpurple"
@@ -48552,10 +48487,7 @@
/obj/structure/mirror{
pixel_x = -32
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
@@ -48676,9 +48608,7 @@
/turf/simulated/floor/plating/airless,
/area/station/engineering/control)
"dJr" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/structure/disposalpipe/junction/y{
dir = 2
},
@@ -54581,11 +54511,7 @@
/turf/simulated/floor/engine/n2,
/area/station/engineering/atmos)
"ffg" = (
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/obj/structure/window/reinforced/tinted,
/turf/simulated/floor/plasteel{
@@ -58124,10 +58050,7 @@
/turf/simulated/floor/plating/airless,
/area/space/nearstation)
"gLq" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "whitegreen"
},
@@ -58346,9 +58269,7 @@
"gPc" = (
/obj/machinery/firealarm/directional/west,
/obj/effect/turf_decal/delivery/white/hollow,
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/medical/surgery)
"gPh" = (
@@ -58823,10 +58744,7 @@
},
/area/station/hallway/primary/central/north)
"hgR" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "whiteblue"
@@ -59487,10 +59405,7 @@
/turf/simulated/floor/plasteel/dark,
/area/station/aisat)
"hwE" = (
-/obj/structure/sink/kitchen{
- dir = 1;
- pixel_y = -5
- },
+/obj/structure/sink/kitchen/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "darkgreenfull"
},
@@ -60034,9 +59949,7 @@
/turf/simulated/floor/plasteel/stairs,
/area/station/science/lobby)
"hJS" = (
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/turf/simulated/floor/noslip,
/area/station/maintenance/fore)
"hJY" = (
@@ -61211,9 +61124,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
"ilF" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
@@ -63508,11 +63419,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
"jnp" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/apmaint)
@@ -64630,9 +64537,7 @@
/area/station/security/storage)
"jRi" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/obj/item/clothing/suit/chef/classic,
/obj/item/clothing/head/chefhat,
/turf/simulated/floor/plasteel{
@@ -64877,9 +64782,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"jVd" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "tranquillite"
},
@@ -68250,9 +68153,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"lAO" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"lAX" = (
@@ -69131,9 +69032,7 @@
"lZr" = (
/obj/item/soap/nanotrasen,
/obj/item/bikehorn/rubberducky,
-/obj/machinery/shower{
- pixel_y = 22
- },
+/obj/machinery/shower/directional/north,
/obj/machinery/light/small{
dir = 4
},
@@ -72243,10 +72142,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whiteblue"
@@ -75846,10 +75742,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"pax" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/obj/machinery/light{
dir = 4
},
@@ -77178,9 +77071,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"pFr" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
@@ -77734,10 +77625,7 @@
name = "west bump";
pixel_x = -28
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light_switch{
name = "north bump";
pixel_y = 24
@@ -78605,9 +78493,7 @@
},
/area/station/security/permabrig)
"qmS" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
@@ -82790,11 +82676,7 @@
},
/area/station/hallway/secondary/entry/south)
"saM" = (
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -83573,9 +83455,7 @@
},
/area/station/service/janitor)
"spp" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/obj/effect/spawner/random/blood/maybe,
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/floor/plasteel{
@@ -83823,10 +83703,7 @@
dir = 1;
name = "Monkey Pen"
},
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/grass,
/area/station/science/genetics)
"ssL" = (
@@ -85386,9 +85263,7 @@
},
/area/station/public/fitness)
"tby" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/white/hollow,
/obj/machinery/firealarm/directional/west,
/turf/simulated/floor/plasteel{
@@ -85397,9 +85272,7 @@
},
/area/station/medical/sleeper)
"tbO" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light/small{
dir = 4
},
@@ -86036,9 +85909,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"tpR" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel{
dir = 5;
@@ -87059,9 +86930,7 @@
/turf/simulated/wall/r_wall,
/area/station/maintenance/fsmaint)
"tMJ" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/white/hollow,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -88100,10 +87969,7 @@
/turf/simulated/floor/plasteel,
/area/station/science/storage)
"ueK" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -88774,9 +88640,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"uvp" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -89179,9 +89043,7 @@
/obj/structure/mirror{
pixel_y = 28
},
-/obj/structure/sink{
- pixel_y = 14
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -91245,9 +91107,7 @@
/turf/simulated/floor/engine,
/area/station/engineering/controlroom)
"vBL" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -91921,9 +91781,7 @@
},
/area/station/engineering/break_room/secondary)
"vOH" = (
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 4
},
diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm
index 38bc805bc5e..88abbc70d04 100644
--- a/_maps/map_files/stations/emeraldstation.dmm
+++ b/_maps/map_files/stations/emeraldstation.dmm
@@ -1287,9 +1287,7 @@
},
/area/station/security/brig)
"aoM" = (
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/obj/machinery/camera/autoname{
dir = 6;
c_tag = "Medbay Primary Storage"
@@ -2599,10 +2597,7 @@
},
/area/station/service/chapel/funeral)
"aCl" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/obj/effect/turf_decal/delivery/blue/hollow,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -3635,8 +3630,7 @@
/turf/simulated/floor/wood,
/area/station/public/vacant_office)
"aND" = (
-/obj/machinery/shower{
- dir = 8;
+/obj/machinery/shower/directional/east{
name = "emergency shower"
},
/turf/simulated/floor/noslip,
@@ -9369,10 +9363,7 @@
"bQW" = (
/obj/structure/flora/ausbushes/leafybush,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/grass/no_creep,
/area/station/science/genetics)
"bQX" = (
@@ -13788,9 +13779,7 @@
/turf/simulated/wall,
/area/station/science/research)
"cLp" = (
-/obj/structure/toilet{
- dir = 1
- },
+/obj/structure/toilet/directional/south,
/obj/effect/spawner/random/dirt/maybe,
/obj/machinery/light/small{
dir = 8
@@ -15003,11 +14992,7 @@
},
/area/station/hallway/primary/fore/north)
"cZM" = (
-/obj/structure/sink/kitchen{
- dir = 4;
- pixel_y = 3;
- pixel_x = -13
- },
+/obj/structure/sink/kitchen/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -23078,9 +23063,7 @@
},
/area/station/science/xenobiology)
"eGv" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
icon_state = "whitegreencorner"
@@ -24441,9 +24424,7 @@
},
/area/station/security/permabrig)
"eVD" = (
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/item/radio/intercom{
name = "south bump";
pixel_y = -28
@@ -27501,9 +27482,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"fxn" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
@@ -29800,11 +29779,7 @@
/turf/simulated/floor/wood,
/area/station/service/bar)
"fUo" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/grass,
/area/station/service/kitchen)
"fUr" = (
@@ -31866,10 +31841,7 @@
/area/station/security/interrogation)
"gpY" = (
/obj/item/wrench,
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
@@ -32133,10 +32105,7 @@
/turf/simulated/floor/wood,
/area/station/command/office/hop)
"gth" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/plasteel{
dir = 4;
@@ -33705,9 +33674,7 @@
},
/area/station/service/kitchen)
"gJG" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/spawner/random/maintenance,
@@ -33716,10 +33683,7 @@
},
/area/station/maintenance/starboard)
"gJU" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -34072,10 +34036,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/asteroid_filtering)
"gOg" = (
-/obj/structure/sink/kitchen{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/kitchen/directional/south,
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"gOr" = (
@@ -34756,9 +34717,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"gWn" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/flasher{
id = "Perma Cell 4";
pixel_x = -22
@@ -35095,10 +35054,7 @@
/turf/simulated/floor/wood,
/area/station/legal/courtroom)
"gZk" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
"gZo" = (
@@ -36475,10 +36431,7 @@
},
/area/station/hallway/secondary/entry)
"hmX" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_y = 28
},
@@ -36706,9 +36659,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/asmaint)
"hoR" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -37007,9 +36958,7 @@
},
/area/station/security/prisonlockers)
"hsh" = (
-/obj/structure/toilet{
- dir = 1
- },
+/obj/structure/toilet/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -38079,9 +38028,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/security/aft_starboard)
"hBo" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/obj/machinery/camera{
c_tag = "Virology Airlock"
@@ -42222,9 +42169,7 @@
/obj/structure/mirror{
pixel_y = 34
},
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -43893,9 +43838,7 @@
},
/area/station/engineering/engine)
"iKS" = (
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/turf/simulated/floor/noslip,
/area/station/medical/cryo)
"iLb" = (
@@ -46399,10 +46342,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"jkX" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/sign/poster/official/cleanliness/directional/east,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
@@ -49175,9 +49115,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"jMs" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -50241,7 +50179,7 @@
},
/area/station/medical/reception)
"jXg" = (
-/obj/structure/toilet,
+/obj/structure/toilet/directional/north,
/obj/effect/landmark/spawner/rev,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -50318,9 +50256,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"jYM" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -52436,9 +52372,7 @@
/turf/simulated/floor/grass,
/area/station/hallway/secondary/exit)
"kuB" = (
-/obj/structure/toilet{
- dir = 1
- },
+/obj/structure/toilet/directional/south,
/obj/machinery/light/small,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -52642,9 +52576,7 @@
/turf/simulated/floor/plasteel,
/area/station/public/storage/tools)
"kxp" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/decal/cleanable/blood/tracks,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
@@ -53388,11 +53320,7 @@
"kGK" = (
/obj/structure/window/reinforced/tinted,
/obj/structure/curtain/open/shower,
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -55916,10 +55844,7 @@
},
/area/station/service/hydroponics)
"lhT" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/obj/effect/turf_decal/delivery/blue/hollow,
/obj/item/reagent_containers/glass/bucket,
/obj/item/radio/intercom{
@@ -58396,9 +58321,7 @@
/obj/structure/mirror{
pixel_y = 33
},
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/obj/effect/spawner/random/dirt/maybe,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -58468,9 +58391,7 @@
/turf/simulated/floor/wood,
/area/station/hallway/secondary/exit)
"lHr" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/obj/item/radio/intercom{
name = "west bump";
@@ -58588,10 +58509,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/apmaint)
"lJz" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel{
dir = 6;
@@ -60303,11 +60221,7 @@
/turf/simulated/floor/engine,
/area/station/engineering/engine)
"mdh" = (
-/obj/machinery/shower{
- dir = 4;
- pixel_y = -4;
- pixel_x = 5
- },
+/obj/machinery/shower/directional/west,
/obj/structure/curtain/open/shower,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -62182,9 +62096,7 @@
/turf/simulated/floor/carpet/grimey,
/area/station/security/detective)
"mxc" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
dir = 9;
@@ -62299,10 +62211,7 @@
/turf/simulated/floor/carpet/black,
/area/station/service/chapel)
"myB" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -64377,9 +64286,7 @@
},
/area/station/legal/courtroom)
"mUA" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/obj/effect/turf_decal/delivery/hollow,
/obj/structure/cable{
icon_state = "4-8"
@@ -66382,9 +66289,7 @@
/area/station/maintenance/apmaint)
"npy" = (
/obj/structure/sign/poster/official/random/directional/west,
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/station/security/prisonlockers)
@@ -66791,9 +66696,7 @@
/obj/structure/mirror{
pixel_y = 33
},
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -66919,9 +66822,7 @@
/obj/structure/mirror{
pixel_y = 33
},
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -67171,9 +67072,7 @@
},
/area/station/public/construction)
"nxB" = (
-/obj/structure/toilet{
- dir = 1
- },
+/obj/structure/toilet/directional/south,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/newscaster/directional/west,
/obj/effect/spawner/random/maintenance,
@@ -69865,9 +69764,7 @@
/turf/simulated/floor/plating,
/area/station/security/warden)
"nWW" = (
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/obj/effect/turf_decal/box,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -72622,11 +72519,7 @@
/turf/simulated/floor/plasteel,
/area/station/command/bridge)
"oyk" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/structure/sign/poster/official/cleanliness/directional/west,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
@@ -75146,10 +75039,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/ne)
"oWG" = (
-/obj/structure/sink/kitchen/old{
- dir = 4;
- pixel_x = -12
- },
+/obj/structure/sink/kitchen/old/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "darkgrey"
},
@@ -76105,9 +75995,7 @@
/turf/simulated/wall,
/area/station/legal/courtroom)
"pfG" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/noslip,
/area/station/medical/surgery)
"pfK" = (
@@ -77158,10 +77046,9 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"ppH" = (
-/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";
- name = "old sink";
- pixel_y = 25
+ name = "old sink"
},
/mob/living/simple_animal/cockroach,
/obj/effect/spawner/random/maintenance,
@@ -77974,9 +77861,7 @@
},
/area/station/hallway/primary/central/ne)
"pzW" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/item/bikehorn/rubberducky,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -78245,11 +78130,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/apmaint2)
"pCJ" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/structure/sign/poster/contraband/random/directional/west,
/turf/simulated/floor/plasteel,
/area/station/maintenance/apmaint)
@@ -80928,9 +80809,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint2)
"qes" = (
-/obj/machinery/shower{
- pixel_y = 20
- },
+/obj/machinery/shower/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -81357,9 +81236,7 @@
},
/area/station/hallway/primary/fore)
"qjT" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/door/window/classic/reversed{
dir = 8;
name = "Shower"
@@ -81371,9 +81248,7 @@
},
/area/station/command/office/captain/bedroom)
"qkb" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -81657,9 +81532,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/security/aft_port)
"qnD" = (
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "whiteyellow"
@@ -82544,9 +82417,7 @@
pixel_y = -25;
specialfunctions = 4
},
-/obj/structure/toilet{
- dir = 8
- },
+/obj/structure/toilet/directional/east,
/obj/machinery/light/small{
dir = 1
},
@@ -83628,9 +83499,7 @@
/area/station/science/xenobiology)
"qJf" = (
/obj/structure/curtain/open/shower/security,
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -86399,14 +86268,6 @@
icon_state = "dark"
},
/area/station/public/construction)
-"rke" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
-/turf/simulated/floor/plasteel{
- icon_state = "freezerfloor"
- },
-/area/station/security/permabrig)
"rkg" = (
/obj/machinery/door/airlock/virology/glass{
name = "Monkey Pen"
@@ -87184,9 +87045,7 @@
},
/area/station/security/permabrig)
"rtb" = (
-/obj/structure/sink{
- pixel_y = 24
- },
+/obj/structure/sink/directional/north,
/obj/item/razor{
pixel_x = -4;
pixel_y = 2
@@ -89633,9 +89492,7 @@
/turf/simulated/wall,
/area/station/medical/paramedic)
"rQV" = (
-/obj/structure/sink{
- pixel_y = 25
- },
+/obj/structure/sink/directional/north,
/obj/structure/closet/cardboard,
/turf/simulated/floor/plasteel,
/area/station/public/pet_store)
@@ -90626,10 +90483,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"rZl" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/grass,
/area/station/service/kitchen)
@@ -90959,11 +90813,7 @@
/turf/simulated/wall,
/area/station/hallway/primary/aft)
"sdM" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitegreen"
@@ -91412,10 +91262,7 @@
/turf/simulated/wall,
/area/station/maintenance/fpmaint)
"sit" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/extinguisher_cabinet{
name = "south bump";
pixel_y = -30
@@ -91882,10 +91729,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
"smT" = (
-/obj/structure/sink/kitchen{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/kitchen/directional/south,
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/abandonedbar)
@@ -97783,9 +97627,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/apmaint2)
"tua" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -98141,9 +97983,7 @@
/turf/simulated/floor/plasteel,
/area/station/public/locker)
"tzh" = (
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/obj/machinery/firealarm/directional/west,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -103156,10 +102996,9 @@
"uzX" = (
/obj/item/clothing/head/chefhat,
/obj/effect/decal/cleanable/blood/old,
-/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";
- name = "old sink";
- pixel_y = 25
+ name = "old sink"
},
/turf/simulated/floor/plasteel{
icon_state = "red"
@@ -105034,10 +104873,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -110302,10 +110138,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
"vVz" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
"vVE" = (
@@ -112974,9 +112807,7 @@
},
/area/station/science/research)
"wxK" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
@@ -113629,10 +113460,7 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/assembly_line)
"wGM" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
@@ -116305,10 +116133,7 @@
},
/area/station/public/dorms)
"xjA" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/machinery/firealarm/directional/east,
/turf/simulated/floor/plasteel{
dir = 5;
@@ -116497,11 +116322,7 @@
/turf/simulated/floor/plasteel,
/area/station/medical/paramedic)
"xma" = (
-/obj/structure/sink/kitchen{
- dir = 8;
- pixel_y = 3;
- pixel_x = 12
- },
+/obj/structure/sink/kitchen/directional/east,
/obj/machinery/door_control{
id = "kitchendiner";
name = "Kitchen Diner Shutters Control";
@@ -116709,9 +116530,7 @@
/turf/simulated/floor/wood,
/area/station/service/bar)
"xnS" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
@@ -121199,9 +121018,7 @@
/turf/space,
/area/space/nearstation)
"yiq" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/machinery/flasher{
id = "Perma Cell 2";
pixel_x = -22
@@ -176612,7 +176429,7 @@ jnP
aZS
aZS
fjJ
-rke
+qes
hfE
oXJ
eTx
@@ -176869,7 +176686,7 @@ jnP
jnP
jnP
fjJ
-rke
+qes
hfE
hfE
hfE
@@ -177126,7 +176943,7 @@ jnP
jnP
jnP
fjJ
-rke
+qes
hfE
hgN
hfE
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index c7031af00f8..89ce884a41b 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -2692,9 +2692,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "redfull"
},
@@ -3817,9 +3815,7 @@
},
/area/station/public/sleep)
"ayj" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/machinery/door/window/classic/reversed{
dir = 4;
name = "Shower"
@@ -5817,9 +5813,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/red/hollow,
/turf/simulated/floor/noslip,
/area/station/security/prisonlockers)
@@ -8259,10 +8253,7 @@
/obj/structure/mirror{
pixel_y = -34
},
-/obj/structure/sink/kitchen/old{
- pixel_y = -8;
- dir = 1
- },
+/obj/structure/sink/kitchen/old/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -16431,9 +16422,7 @@
},
/area/station/command/bridge)
"bqn" = (
-/obj/structure/sink{
- pixel_y = 17
- },
+/obj/structure/sink/directional/north,
/obj/structure/mirror{
pixel_y = 34
},
@@ -16442,9 +16431,7 @@
},
/area/station/command/office/captain/bedroom)
"bqo" = (
-/obj/structure/toilet{
- pixel_y = 13
- },
+/obj/structure/toilet/directional/north,
/obj/machinery/light,
/obj/machinery/light_switch{
dir = 1;
@@ -21537,9 +21524,7 @@
/turf/simulated/floor/carpet,
/area/station/public/vacant_office)
"bHk" = (
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -23412,9 +23397,7 @@
/area/station/hallway/secondary/entry/north)
"bOy" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -27443,11 +27426,7 @@
/area/station/service/chapel/office)
"ceP" = (
/obj/effect/turf_decal/delivery,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light/small,
/turf/simulated/floor/plasteel,
/area/station/service/hydroponics)
@@ -28492,9 +28471,7 @@
/area/station/engineering/atmos/control)
"ciF" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/turf/simulated/floor/plasteel,
/area/station/maintenance/turbine)
"ciH" = (
@@ -29880,9 +29857,7 @@
},
/area/station/medical/cryo)
"cpH" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/delivery/blue/hollow,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -30149,10 +30124,7 @@
/turf/simulated/floor/engine/air,
/area/station/engineering/atmos)
"cqS" = (
-/obj/structure/sink/kitchen/old{
- dir = 4;
- pixel_x = -12
- },
+/obj/structure/sink/kitchen/old/directional/west,
/obj/structure/mirror{
pixel_x = -28
},
@@ -30565,9 +30537,7 @@
},
/area/station/medical/exam_room)
"csJ" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/delivery/blue/hollow,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -31119,11 +31089,7 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -34233,8 +34199,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"cIM" = (
-/obj/machinery/shower{
- pixel_y = 8;
+/obj/machinery/shower/directional/north{
on = 1
},
/obj/effect/turf_decal/box,
@@ -34255,11 +34220,7 @@
},
/area/station/command/office/cmo)
"cIS" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/effect/spawner/random/trash,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
@@ -39160,9 +39121,7 @@
/turf/simulated/floor/carpet/red,
/area/station/maintenance/asmaint)
"drL" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/noslip,
/area/station/engineering/control)
"dsf" = (
@@ -39763,10 +39722,7 @@
/area/station/security/permabrig)
"dGO" = (
/obj/item/reagent_containers/glass/bucket,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "green"
@@ -42832,10 +42788,7 @@
},
/area/station/hallway/secondary/exit)
"eXd" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -43033,11 +42986,7 @@
/area/station/service/janitor)
"fbt" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/obj/effect/turf_decal/stripes/line{
dir = 9
},
@@ -45912,9 +45861,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"ggM" = (
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -46031,9 +45978,7 @@
network = list("Prison","SS13")
},
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "redfull"
},
@@ -47048,11 +46993,7 @@
pixel_x = 3;
pixel_y = -3
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/sink/directional/west,
/turf/simulated/floor/grass/no_creep,
/area/station/maintenance/medmaint)
"gIJ" = (
@@ -48398,9 +48339,7 @@
},
/area/station/science/xenobiology)
"hnI" = (
-/obj/structure/sink{
- pixel_y = 17
- },
+/obj/structure/sink/directional/north,
/obj/effect/turf_decal/delivery/hollow,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/official/cleanliness/directional/east,
@@ -48894,10 +48833,7 @@
/area/station/medical/surgery/primary)
"hzV" = (
/obj/machinery/alarm/directional/east,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 9
},
@@ -49867,9 +49803,7 @@
/turf/simulated/floor/wood,
/area/station/maintenance/starboard)
"hTx" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -50761,10 +50695,7 @@
},
/area/station/hallway/secondary/entry/lounge)
"inq" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/light_switch{
dir = 8;
name = "east bump";
@@ -53187,10 +53118,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/equipmentstorage)
"jvr" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
icon_state = "1-2"
@@ -53417,10 +53345,7 @@
},
/area/station/hallway/primary/starboard/east)
"jCz" = (
-/obj/structure/sink/kitchen{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/kitchen/directional/south,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -56403,9 +56328,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"kLT" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
@@ -56456,9 +56379,7 @@
},
/area/station/medical/medbay)
"kMZ" = (
-/obj/machinery/shower{
- pixel_y = 12
- },
+/obj/machinery/shower/directional/north,
/obj/item/radio/intercom{
name = "east bump";
pixel_x = 28
@@ -56999,9 +56920,7 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/structure/sink/kitchen{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/directional/north,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -58365,9 +58284,7 @@
/area/station/aisat)
"lCA" = (
/mob/living/simple_animal/mouse/brown/tom,
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"lCO" = (
@@ -58405,8 +58322,7 @@
},
/area/station/hallway/primary/central/north)
"lDq" = (
-/obj/machinery/shower{
- dir = 8;
+/obj/machinery/shower/directional/east{
name = "emergency shower"
},
/obj/machinery/atmospherics/pipe/simple/visible/purple,
@@ -58498,9 +58414,7 @@
},
/area/station/engineering/break_room)
"lFm" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
@@ -59034,10 +58948,7 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/alarm/directional/east,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whiteyellow"
@@ -61261,10 +61172,7 @@
},
/area/station/science/toxins/mixing)
"mNu" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -8
- },
+/obj/structure/sink/directional/south,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -70124,9 +70032,7 @@
/turf/simulated/floor/plasteel,
/area/station/security/brig)
"qAh" = (
-/obj/structure/sink{
- pixel_y = 22
- },
+/obj/structure/sink/directional/north,
/obj/structure/sign/poster/official/cleanliness/directional/west,
/turf/simulated/floor/plasteel{
dir = 9;
@@ -70240,10 +70146,7 @@
/area/station/hallway/primary/central/south)
"qCm" = (
/obj/structure/flora/ausbushes/fernybush,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/mob/living/carbon/human/monkey,
/turf/simulated/floor/grass/no_creep,
/area/station/science/genetics)
@@ -71709,10 +71612,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/garden)
"rkU" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/light/small,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
@@ -73804,9 +73704,7 @@
},
/area/station/security/main)
"saw" = (
-/obj/structure/sink/kitchen/old{
- pixel_y = 25
- },
+/obj/structure/sink/kitchen/old/directional/north,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "darkred"
@@ -74900,10 +74798,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
"sBQ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
+/obj/structure/sink/directional/east,
/obj/machinery/light_switch{
dir = 8;
name = "east bump";
@@ -75871,10 +75766,7 @@
/obj/structure/mirror{
pixel_y = -34
},
-/obj/structure/sink/kitchen/old{
- pixel_y = -8;
- dir = 1
- },
+/obj/structure/sink/kitchen/old/directional/south,
/obj/structure/sign/poster/official/random/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -79992,9 +79884,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"uNl" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
+/obj/structure/toilet/directional/north,
/obj/effect/landmark/spawner/nukedisc_respawn,
/obj/machinery/light/small,
/obj/machinery/door_control{
@@ -81943,9 +81833,7 @@
},
/area/station/service/chapel)
"vCe" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -83798,9 +83686,7 @@
/turf/simulated/floor/plasteel,
/area/station/security/range)
"wxR" = (
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/effect/turf_decal/stripes/line{
dir = 5
},
@@ -84632,9 +84518,7 @@
},
/area/station/public/sleep)
"wSy" = (
-/obj/machinery/shower{
- pixel_y = 8
- },
+/obj/machinery/shower/directional/north,
/obj/item/radio/intercom{
name = "north bump";
pixel_y = 28
@@ -84851,10 +84735,7 @@
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"wXy" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12
- },
+/obj/structure/sink/directional/west,
/obj/machinery/light_switch{
dir = 4;
name = "west bump";
@@ -87258,9 +87139,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
-/obj/machinery/shower{
- dir = 1
- },
+/obj/machinery/shower/directional/south,
/obj/effect/turf_decal/siding{
dir = 9
},
diff --git a/_maps/map_files/templates/biodome_beach.dmm b/_maps/map_files/templates/biodome_beach.dmm
index 66859c86710..a834e42917c 100644
--- a/_maps/map_files/templates/biodome_beach.dmm
+++ b/_maps/map_files/templates/biodome_beach.dmm
@@ -70,17 +70,12 @@
/obj/machinery/light/small{
dir = 1
},
-/obj/structure/toilet{
- dir = 4
- },
+/obj/structure/toilet/directional/west,
/obj/effect/turf_decal/sand,
/turf/simulated/floor/plating,
/area/ruin/powered/beach)
"ao" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
@@ -264,9 +259,7 @@
/turf/simulated/floor/beach/sand,
/area/ruin/powered/beach)
"bo" = (
-/obj/machinery/shower{
- dir = 4
- },
+/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/sand,
/turf/simulated/floor/pod/light,
/area/ruin/powered/beach)
@@ -456,9 +449,7 @@
/turf/simulated/floor/beach/sand,
/area/ruin/powered/beach)
"qT" = (
-/obj/machinery/shower{
- dir = 8
- },
+/obj/machinery/shower/directional/east,
/turf/simulated/floor/pod/light,
/area/ruin/powered/beach)
"sp" = (
diff --git a/_maps/map_files/templates/shelter_2.dmm b/_maps/map_files/templates/shelter_2.dmm
index da889651ccc..8f1345ed27d 100644
--- a/_maps/map_files/templates/shelter_2.dmm
+++ b/_maps/map_files/templates/shelter_2.dmm
@@ -54,24 +54,10 @@
/obj/machinery/kitchen_machine/microwave,
/turf/simulated/floor/carpet/black,
/area/survivalpod/luxurypod)
-"al" = (
-/obj/structure/sink/kitchen{
- dir = 4;
- pixel_x = -11
- },
-/turf/simulated/floor/carpet/black,
-/area/survivalpod/luxurypod)
"am" = (
/obj/structure/sign/mining/survival,
/turf/simulated/wall/mineral/titanium/survival,
/area/survivalpod/luxurypod)
-"an" = (
-/obj/structure/curtain/black,
-/obj/machinery/shower{
- pixel_y = 20
- },
-/turf/simulated/floor/pod,
-/area/survivalpod/luxurypod)
"ao" = (
/obj/structure/window/reinforced/survival_pod{
dir = 8;
@@ -131,12 +117,6 @@
},
/turf/simulated/wall/mineral/titanium/survival,
/area/survivalpod/luxurypod)
-"ay" = (
-/obj/structure/toilet/secret{
- pixel_y = 12
- },
-/turf/simulated/floor/pod,
-/area/survivalpod/luxurypod)
"az" = (
/obj/structure/window/reinforced/survival_pod{
dir = 1
@@ -184,6 +164,19 @@
/obj/machinery/economy/vending/wallmed/directional/west,
/turf/simulated/floor/pod,
/area/survivalpod/luxurypod)
+"aL" = (
+/obj/structure/sink/kitchen/directional/west,
+/turf/simulated/floor/carpet/black,
+/area/survivalpod/luxurypod)
+"hp" = (
+/obj/structure/toilet/directional/north,
+/turf/simulated/floor/pod,
+/area/survivalpod/luxurypod)
+"pv" = (
+/obj/structure/curtain/black,
+/obj/machinery/shower/directional/north,
+/turf/simulated/floor/pod,
+/area/survivalpod/luxurypod)
(1,1,1) = {"
aa
@@ -200,7 +193,7 @@ ah
aF
aj
ak
-al
+aL
am
"}
(3,1,1) = {"
@@ -223,7 +216,7 @@ aw
"}
(5,1,1) = {"
aa
-an
+pv
ao
aq
ar
@@ -232,7 +225,7 @@ aa
"}
(6,1,1) = {"
ag
-ay
+hp
az
aA
aB
diff --git a/code/__DEFINES/mappers.dm b/code/__DEFINES/mappers.dm
index 5d5afcfadb7..5ac32e9468f 100644
--- a/code/__DEFINES/mappers.dm
+++ b/code/__DEFINES/mappers.dm
@@ -15,3 +15,21 @@
dir = WEST; \
pixel_x = -offset_x; \
}
+
+// If we want to set custom offset to each cardinal direction
+#define MAPPING_DIRECTIONAL_HELPERS_CUSTOM(path, offset_north, offset_south, offset_east, offset_west) ##path/directional/north {\
+ dir = NORTH; \
+ pixel_y = offset_north; \
+} \
+##path/directional/south {\
+ dir = SOUTH; \
+ pixel_y = offset_south; \
+} \
+##path/directional/east {\
+ dir = EAST; \
+ pixel_x = offset_east; \
+} \
+##path/directional/west {\
+ dir = WEST; \
+ pixel_x = offset_west; \
+}
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index f2e7efb79ce..c17e9267421 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -11,12 +11,18 @@
var/cistern = FALSE //if the cistern bit is open
var/w_items = 0 //the combined w_class of all the items in the cistern
var/mob/living/swirlie = null //the mob being given a swirlie
+ new_attack_chain = TRUE
+MAPPING_DIRECTIONAL_HELPERS_CUSTOM(/obj/structure/toilet, 8, -8, 0, 0)
+
+/obj/structure/toilet/New(loc)
+ ..()
+ update_icon() // updates pixel offsets
/obj/structure/toilet/Initialize(mapload)
. = ..()
open = prob(50)
- update_icon()
+ update_icon() // just setting open = TRUE doesn't change the icon
/obj/structure/toilet/Destroy()
swirlie = null
@@ -25,9 +31,11 @@
/obj/structure/toilet/attack_hand(mob/living/user)
if(swirlie)
user.changeNext_move(CLICK_CD_MELEE)
- playsound(src.loc, "swing_hit", 25, 1)
- swirlie.visible_message("[user] slams the toilet seat onto [swirlie]'s head!", "[user] slams the toilet seat onto [swirlie]'s head!", "You hear reverberating porcelain.")
- swirlie.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
+ playsound(src.loc, "swing_hit", 25, TRUE)
+ user.visible_message("[user] slams the toilet seat onto [swirlie]'s head!",
+ "You slam the toilet seat onto [swirlie]'s head!",
+ "You hear reverberating porcelain.")
+ swirlie.apply_damage(5, BRUTE, BODY_ZONE_HEAD, swirlie.run_armor_check(BODY_ZONE_HEAD, MELEE))
return
if(cistern && !open)
@@ -54,77 +62,87 @@
pixel_y = 0
layer = OBJ_LAYER
else
- if(dir == SOUTH)
+ if(dir == NORTH)
pixel_x = 0
pixel_y = 8
- if(dir == NORTH)
+ if(dir == SOUTH)
pixel_x = 0
pixel_y = -8
layer = FLY_LAYER
-/obj/structure/toilet/attackby__legacy__attackchain(obj/item/I, mob/living/user, params)
- if(istype(I, /obj/item/reagent_containers))
+/obj/structure/toilet/item_interaction(mob/living/user, obj/item/used, list/modifiers)
+ if(istype(used, /obj/item/reagent_containers))
if(!open)
- return
- var/obj/item/reagent_containers/RG = I
- if(RG.is_refillable())
- if(RG.reagents.holder_full())
- to_chat(user, "[RG] is full.")
+ return ITEM_INTERACT_COMPLETE
+ var/obj/item/reagent_containers/container = used
+ if(container.is_refillable())
+ if(container.reagents.holder_full())
+ to_chat(user, "[container] is full.")
else
- RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
- to_chat(user, "You fill [RG] from [src]. Gross.")
- return
+ container.reagents.add_reagent("toiletwater", min(container.volume - container.reagents.total_volume, container.amount_per_transfer_from_this))
+ to_chat(user, "You fill [container] from [src]. Gross.")
+ return ITEM_INTERACT_COMPLETE
- if(istype(I, /obj/item/grab))
+ if(istype(used, /obj/item/grab))
user.changeNext_move(CLICK_CD_MELEE)
- var/obj/item/grab/G = I
+ var/obj/item/grab/G = used
if(HAS_TRAIT(user, TRAIT_PACIFISM))
to_chat(user, "Swirling [G.affecting] might hurt them!")
- return
+ return ITEM_INTERACT_COMPLETE
if(!G.confirm())
- return
+ return ITEM_INTERACT_COMPLETE
if(isliving(G.affecting))
- var/mob/living/GM = G.affecting
+ var/mob/living/target = G.affecting
if(G.state >= GRAB_AGGRESSIVE)
- if(GM.loc != get_turf(src))
- to_chat(user, "[GM] needs to be on [src]!")
- return
+ if(target.loc != get_turf(src))
+ to_chat(user, "[target] needs to be on [src]!")
+ return ITEM_INTERACT_COMPLETE
if(!swirlie)
if(open)
- GM.visible_message("[user] starts to give [GM] a swirlie!", "[user] starts to give [GM] a swirlie...")
- swirlie = GM
- if(do_after(user, 30, 0, target = src))
- GM.visible_message("[user] gives [GM] a swirlie!", "[user] gives [GM] a swirlie!", "You hear a toilet flushing.")
- if(iscarbon(GM))
- var/mob/living/carbon/C = GM
+ user.visible_message("[user] starts to give [target] a swirlie!",
+ "You start to give [target] a swirlie...")
+ swirlie = target
+ if(do_after(user, 3 SECONDS, FALSE, target = src))
+ user.visible_message("[user] gives [target] a swirlie!",
+ "You give [target] a swirlie!",
+ "You hear a toilet flushing.")
+ if(iscarbon(target))
+ var/mob/living/carbon/C = target
if(!C.internal)
C.adjustOxyLoss(5)
else
- GM.adjustOxyLoss(5)
+ target.adjustOxyLoss(5)
swirlie = null
else
- playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
- GM.visible_message("[user] slams [GM.name]'s head into [src]!", "[user] slams [GM.name]'s head into [src]!")
- GM.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
+ playsound(src.loc, 'sound/effects/bang.ogg', 25, TRUE)
+ user.visible_message("[user] slams [target]'s head into [src]!",
+ "You slam [target]'s head into [src]!")
+ target.apply_damage(5, BRUTE, BODY_ZONE_HEAD, target.run_armor_check(BODY_ZONE_HEAD, MELEE))
+ return ITEM_INTERACT_COMPLETE
else
to_chat(user, "You need a tighter grip!")
- if(istype(I, /obj/item/flamethrower))
- var/obj/item/flamethrower/big_lighter = I
+ return ITEM_INTERACT_COMPLETE
+
+ if(istype(used, /obj/item/flamethrower))
+ var/obj/item/flamethrower/big_lighter = used
if(!big_lighter.lit)
- to_chat(user, "The flamethrower isn't lit!")
- return
+ to_chat(user, "[big_lighter] isn't lit!")
+ return ITEM_INTERACT_COMPLETE
big_lighter.default_ignite(loc, 0.01)
if(!cistern) //Just changes what message you get, since fire_act handles the open cistern too.
- user.visible_message("[user] torches the contents of the top of the toilet with [big_lighter]!", "You torch the top of the toilet with [big_lighter]! Whoops.")
- return
-
- user.visible_message("[user] torches the contents of the cistern with [big_lighter]!", "You torch the contents of the cistern with [big_lighter]!")
- return
+ user.visible_message("[user] torches the contents of the top of the toilet with [big_lighter]!",
+ "You torch the top of the toilet with [big_lighter]! Whoops.")
+ return ITEM_INTERACT_COMPLETE
+ user.visible_message("[user] torches the contents of the cistern with [big_lighter]!",
+ "You torch the contents of the cistern with [big_lighter]!")
+ return ITEM_INTERACT_COMPLETE
if(cistern)
update_contents_weight_class()
- stash_goods(I, user)
- return
+ stash_goods(used, user)
+ return ITEM_INTERACT_COMPLETE
+
+ return ..()
/obj/structure/toilet/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay)
..()
@@ -140,19 +158,21 @@
new_total_weight += I.w_class
w_items = new_total_weight
-/obj/structure/toilet/crowbar_act(mob/user, obj/item/I)
+/obj/structure/toilet/crowbar_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.tool_use_check(user, 0))
return
to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...")
- playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
+ playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, TRUE)
if(I.use_tool(src, user, 30, volume = I.tool_volume))
- user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!", "You hear grinding porcelain.")
+ user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!",
+ "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!",
+ "You hear grinding porcelain.")
cistern = !cistern
update_icon()
return
-/obj/structure/toilet/wrench_act(mob/user, obj/item/I)
+/obj/structure/toilet/wrench_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.tool_use_check(user, 0))
return
@@ -162,8 +182,7 @@
if(anchored)
choices += "Disconnect"
else
- choices += "Connect"
- choices += "Rotate"
+ choices += list("Connect", "Rotate")
var/response = tgui_input_list(user, "What do you want to do?", "[src]", choices)
if(!Adjacent(user) || !response) //moved away or cancelled
@@ -172,18 +191,22 @@
if("Stash")
stash_goods(I, user)
if("Disconnect")
- user.visible_message("[user] starts disconnecting [src].", "You begin disconnecting [src]...")
+ user.visible_message("[user] starts disconnecting [src].",
+ "You begin disconnecting [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || !anchored)
return
- user.visible_message("[user] disconnects [src]!", "You disconnect [src]!")
+ user.visible_message("[user] disconnects [src]!",
+ "You disconnect [src]!")
anchored = FALSE
if("Connect")
- user.visible_message("[user] starts connecting [src].", "You begin connecting [src]...")
+ user.visible_message("[user] starts connecting [src].",
+ "You begin connecting [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || anchored)
return
- user.visible_message("[user] connects [src]!", "You connect [src]!")
+ user.visible_message("[user] connects [src]!",
+ "You connect [src]!")
anchored = TRUE
if("Rotate")
var/list/dir_choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST)
@@ -191,7 +214,7 @@
if(!selected)
return
dir = dir_choices[selected]
- update_icon() //is this necessary? probably not
+ update_icon() //is this necessary? probably not // yes it is
/obj/structure/toilet/proc/stash_goods(obj/item/I, mob/user)
if(!I)
@@ -209,18 +232,6 @@
update_contents_weight_class()
to_chat(user, "You carefully place [I] into the cistern.")
-/obj/structure/toilet/secret
- var/secret_type = null
-
-/obj/structure/toilet/secret/Initialize(mapload)
- . = ..()
- if(secret_type)
- var/obj/item/secret = new secret_type(src)
- secret.desc += " It's a secret!"
- w_items += secret.w_class
-
-
-
/obj/structure/urinal
name = "urinal"
desc = "The HU-452, an experimental urinal."
@@ -228,48 +239,55 @@
icon_state = "urinal"
density = FALSE
anchored = TRUE
+ new_attack_chain = TRUE
-
-/obj/structure/urinal/attackby__legacy__attackchain(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/grab))
- var/obj/item/grab/G = I
+/obj/structure/urinal/item_interaction(mob/living/user, obj/item/used, list/modifiers)
+ if(istype(used, /obj/item/grab))
+ var/obj/item/grab/G = used
if(!G.confirm())
- return
+ return ITEM_INTERACT_COMPLETE
if(HAS_TRAIT(user, TRAIT_PACIFISM))
to_chat(user, "Slamming [G.affecting] into [src] might hurt them!")
- return
+ return ITEM_INTERACT_COMPLETE
if(isliving(G.affecting))
- var/mob/living/GM = G.affecting
+ var/mob/living/target = G.affecting
if(G.state >= GRAB_AGGRESSIVE)
- if(GM.loc != get_turf(src))
- to_chat(user, "[GM.name] needs to be on [src].")
- return
+ if(target.loc != get_turf(src))
+ to_chat(user, "[target] needs to be on [src].")
+ return ITEM_INTERACT_COMPLETE
user.changeNext_move(CLICK_CD_MELEE)
- playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
- user.visible_message("[user] slams [GM]'s head into [src]!", "You slam [GM]'s head into [src]!")
- GM.apply_damage(8, BRUTE, BODY_ZONE_HEAD)
+ playsound(src.loc, 'sound/effects/bang.ogg', 25, TRUE)
+ user.visible_message("[user] slams [target]'s head into [src]!",
+ "You slam [target]'s head into [src]!")
+ target.apply_damage(8, BRUTE, BODY_ZONE_HEAD, target.run_armor_check(BODY_ZONE_HEAD, MELEE))
else
to_chat(user, "You need a tighter grip!")
+ return ITEM_INTERACT_COMPLETE
+ return ..()
-/obj/structure/urinal/wrench_act(mob/user, obj/item/I)
+/obj/structure/urinal/wrench_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.tool_use_check(user, 0))
return
if(anchored)
- user.visible_message("[user] begins disconnecting [src]...", "You begin to disconnect [src]...")
+ user.visible_message("[user] begins disconnecting [src]...",
+ "You begin to disconnect [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || !anchored)
return
- user.visible_message("[user] disconnects [src]!", "You disconnect [src]!")
+ user.visible_message("[user] disconnects [src]!",
+ "You disconnect [src]!")
anchored = FALSE
pixel_x = 0
pixel_y = 0
else
- user.visible_message("[user] begins connecting [src]...", "You begin to connect [src]...")
+ user.visible_message("[user] begins connecting [src]...",
+ "You begin to connect [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || anchored)
return
- user.visible_message("[user] connects [src]!", "You connect [src]!")
+ user.visible_message("[user] connects [src]!",
+ "You connect [src]!")
anchored = TRUE
pixel_x = 0
pixel_y = 32
@@ -292,20 +310,16 @@
var/current_temperature = SHOWER_NORMAL
///What sound will be played on loop when the shower is on and pouring water.
var/datum/looping_sound/showering/soundloop
+ new_attack_chain = TRUE
+
+MAPPING_DIRECTIONAL_HELPERS_CUSTOM(/obj/machinery/shower, 16, -5, 0, 0)
/obj/machinery/shower/New(turf/T, newdir = SOUTH, building = FALSE)
..()
soundloop = new(list(src), FALSE)
if(building)
dir = newdir
- pixel_x = 0
- pixel_y = 0
- switch(newdir)
- if(SOUTH)
- pixel_y = 16
- if(NORTH)
- pixel_y = -5
- layer = FLY_LAYER
+ update_icon()
/obj/machinery/shower/Initialize(mapload)
. = ..()
@@ -321,6 +335,17 @@
QDEL_IN(mist, 25 SECONDS)
return ..()
+/obj/machinery/shower/update_icon_state()
+ layer = OBJ_LAYER
+ pixel_x = 0
+ pixel_y = 0
+ switch(dir)
+ if(NORTH)
+ pixel_y = 16
+ if(SOUTH)
+ pixel_y = -5
+ layer = FLY_LAYER
+
//add heat controls? when emagged, you can freeze to death in it?
/obj/effect/mist
@@ -336,6 +361,8 @@
update_icon()
handle_mist()
add_fingerprint(M)
+ M.visible_message("[M] turns [src] [on ? "on" : "off"].",
+ "You turn [src] [on ? "on" : "off"].")
if(on)
START_PROCESSING(SSmachines, src)
process()
@@ -353,7 +380,7 @@
return ..()
-/obj/machinery/shower/wrench_act(mob/user, obj/item/I)
+/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
..()
to_chat(user, "You begin to adjust the temperature valve with [I].")
if(I.use_tool(src, user, 50))
@@ -364,19 +391,22 @@
current_temperature = SHOWER_BOILING
if(SHOWER_BOILING)
current_temperature = SHOWER_NORMAL
- user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [current_temperature] temperature.")
+ user.visible_message("[user] adjusts the shower with \the [I].",
+ "You adjust the shower with \the [I] to [current_temperature] temperature.")
add_hiddenprint(user)
handle_mist()
return TRUE
-/obj/machinery/shower/welder_act(mob/user, obj/item/I)
+/obj/machinery/shower/welder_act(mob/living/user, obj/item/I)
. = TRUE
if(on)
to_chat(user, "Turn [src] off before you attempt to cut it loose.")
return
if(!I.tool_use_check(user, 0))
return
- visible_message("[user] begins slicing [src] free...", "You begin slicing [src] free...", "You hear welding.")
+ visible_message("[user] begins slicing [src] free...",
+ "You begin slicing [src] free...",
+ "You hear welding.")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
user.visible_message("[user] cuts [src] loose!", "You cut [src] loose!")
var/obj/item/mounted/shower/S = new /obj/item/mounted/shower(get_turf(user))
@@ -482,7 +512,7 @@
icon = 'icons/obj/watercloset.dmi'
icon_state = "rubberducky"
item_state = "rubberducky"
- honk_sounds = list('sound/items/squeaktoy.ogg' = 1)
+ honk_sounds = list('sound/items/squeaktoy.ogg')
attack_verb = list("quacked", "squeaked")
/obj/item/bikehorn/rubberducky/captainducky
@@ -490,122 +520,113 @@
desc = "Captain's favorite rubber ducky. This one squeaks with power."
icon_state = "cap_rubber_ducky"
+#define SINK_BUSY (1 << 0) // Something's being washed at the moment
+#define SINK_MOVEABLE (1 << 1) // if the sink can be disconnected and moved
+
/obj/structure/sink
name = "sink"
icon = 'icons/obj/watercloset.dmi'
icon_state = "sink"
desc = "A sink used for washing one's hands and face."
anchored = TRUE
- var/busy = FALSE //Something's being washed at the moment
- var/can_move = 1 //if the sink can be disconnected and moved
- var/can_rotate = 1 //if the sink can be rotated to face alternate directions
+ var/sink_flags = SINK_MOVEABLE
+ new_attack_chain = TRUE
-/obj/structure/sink/attack_hand(mob/user as mob)
- if(!user || !istype(user))
- return
- if(!iscarbon(user))
- return
- if(!Adjacent(user))
+MAPPING_DIRECTIONAL_HELPERS_CUSTOM(/obj/structure/sink, 18, -4, 0, 0)
+
+/obj/structure/sink/New(loc)
+ ..()
+ update_icon() // updates pixel offsets
+
+/obj/structure/sink/attack_hand(mob/living/carbon/human/user)
+ if(..())
return
if(!anchored)
to_chat(user, "[src] isn't connected, wrench it into position first!")
return
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"]
- if(user.hand)
- temp = H.bodyparts_by_name["l_hand"]
- if(temp && !temp.is_usable())
- to_chat(user, "You try to move your [temp.name], but cannot!")
- return
- if(busy)
+ var/obj/item/organ/external/temp = user.bodyparts_by_name["r_hand"]
+ if(user.hand)
+ temp = user.bodyparts_by_name["l_hand"]
+ if(temp && !temp.is_usable())
+ to_chat(user, "You try to move your [temp], but cannot!")
+ return
+ if(sink_flags & SINK_BUSY)
to_chat(user, "Someone's already washing here.")
return
+
var/selected_area = parse_zone(user.zone_selected)
- var/washing_face = 0
+ var/washing_face = FALSE
if(selected_area in list("head", "mouth", "eyes"))
- washing_face = 1
+ washing_face = TRUE
+ sink_flags |= SINK_BUSY
user.visible_message("[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]...", \
"You start washing your [washing_face ? "face" : "hands"]...")
- busy = TRUE
-
- if(!do_after(user, 40, target = src))
- busy = FALSE
+ if(!do_after(user, 4 SECONDS, target = src))
+ sink_flags &= ~SINK_BUSY
return
- busy = FALSE
-
- user.visible_message("[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src].", \
- "You wash your [washing_face ? "face" : "hands"] using [src].")
if(washing_face)
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- H.lip_style = null //Washes off lipstick
- H.lip_color = initial(H.lip_color)
- H.regenerate_icons()
- H.AdjustDrowsy(-rand(4 SECONDS, 6 SECONDS)) //Washing your face wakes you up if you're falling asleep
+ user.lip_style = null // Washes off lipstick
+ user.lip_color = initial(user.lip_color)
+ user.regenerate_icons()
+ user.AdjustDrowsy(-rand(4 SECONDS, 6 SECONDS)) // Washing your face wakes you up if you're falling asleep
else
user.clean_blood()
+ sink_flags &= ~SINK_BUSY
+ user.visible_message("[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src].", \
+ "You wash your [washing_face ? "face" : "hands"] using [src].")
-
-/obj/structure/sink/attackby__legacy__attackchain(obj/item/O, mob/user, params)
- if(busy)
+/obj/structure/sink/item_interaction(mob/living/user, obj/item/used, list/modifiers)
+ if(sink_flags & SINK_BUSY)
to_chat(user, "Someone's already washing here!")
- return
-
- if(!(istype(O)))
- return
-
+ return ITEM_INTERACT_COMPLETE
if(!anchored)
to_chat(user, "[src] isn't connected, wrench it into position first!")
- return
+ return ITEM_INTERACT_COMPLETE
+ sink_flags |= SINK_BUSY
+ if(used.wash(user, src))
+ used.water_act(20, COLD_WATER_TEMPERATURE, src)
+ sink_flags &= ~SINK_BUSY
+ return ITEM_INTERACT_COMPLETE
- busy = TRUE
- var/wateract = 0
- wateract = O.wash(user, src)
- busy = FALSE
- if(wateract)
- O.water_act(20, COLD_WATER_TEMPERATURE, src)
-
-/obj/structure/sink/wrench_act(mob/user, obj/item/I)
+/obj/structure/sink/wrench_act(mob/living/user, obj/item/I)
+ if(!(sink_flags & SINK_MOVEABLE)) // we can't move it, let's just wash our wrench now
+ return NONE
. = TRUE
if(!I.tool_use_check(user, 0))
return
- var/choices = list()
+ var/list/choices
if(anchored)
- choices += "Wash"
- if(can_move)
- choices += "Disconnect"
+ choices += list("Wash", "Disconnect")
else
- choices += "Connect"
- if(can_rotate)
- choices += "Rotate"
-
+ choices += list("Connect", "Rotate")
var/response = tgui_input_list(user, "What do you want to do?", "[src]", choices)
- if(!Adjacent(user) || !response) //moved away or cancelled
+ if(!Adjacent(user) || !response) // moved away or cancelled
return
switch(response)
if("Wash")
- busy = TRUE
- var/wateract = 0
- wateract = (I.wash(user, src))
- busy = FALSE
- if(wateract)
+ sink_flags |= SINK_BUSY
+ if(I.wash(user, src))
I.water_act(20, COLD_WATER_TEMPERATURE, src)
+ sink_flags &= ~SINK_BUSY
if("Disconnect")
- user.visible_message("[user] starts disconnecting [src].", "You begin disconnecting [src]...")
+ user.visible_message("[user] starts disconnecting [src].",
+ "You begin disconnecting [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || !anchored)
return
- user.visible_message("[user] disconnects [src]!", "You disconnect [src]!")
+ user.visible_message("[user] disconnects [src]!",
+ "You disconnect [src]!")
anchored = FALSE
if("Connect")
- user.visible_message("[user] starts connecting [src].", "You begin connecting [src]...")
+ user.visible_message("[user] starts connecting [src].",
+ "You begin connecting [src]...")
if(I.use_tool(src, user, 40, volume = I.tool_volume))
if(!loc || anchored)
return
- user.visible_message("[user] connects [src]!", "You connect [src]!")
+ user.visible_message("[user] connects [src]!",
+ "You connect [src]!")
anchored = TRUE
if("Rotate")
var/list/dir_choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST)
@@ -613,66 +634,62 @@
if(!selected)
return
dir = dir_choices[selected]
- update_icon() //is this necessary? probably not
+ update_icon() //is this necessary? probably not // yes it is
/obj/structure/sink/update_icon_state()
layer = OBJ_LAYER
- if(!anchored)
- pixel_x = 0
- pixel_y = 0
- else
- //the following code will probably want to be updated in the future to be less reliant on hardcoded offsets based on the can_move/can_rotate values
- if(!can_move) //puddles
- return
- if(!can_rotate) //kitchen sinks
- pixel_x = 0
- pixel_y = 28
- return
- else //normal sinks
- if(dir == NORTH || dir == SOUTH)
- pixel_x = 0
- pixel_y = (dir == NORTH) ? -5 : 30
- if(dir == NORTH)
- layer = FLY_LAYER
- else
- pixel_x = (dir == EAST) ? 12 : -12
- pixel_y = 0
-
+ pixel_x = 0
+ pixel_y = 0
+ if(!(sink_flags & SINK_MOVEABLE)) // puddles - don't need an offset
+ return
+ if(anchored)
+ switch(dir)
+ if(NORTH)
+ pixel_y = 18
+ if(SOUTH)
+ pixel_y = -4
+ layer = FLY_LAYER
/obj/structure/sink/kitchen
name = "kitchen sink"
icon_state = "sink_alt"
- can_rotate = 0
+MAPPING_DIRECTIONAL_HELPERS_CUSTOM(/obj/structure/sink/kitchen, 18, -4, 0, 0)
+
+/obj/structure/sink/kitchen/old
+ name = "old sink"
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made."
+
+MAPPING_DIRECTIONAL_HELPERS_CUSTOM(/obj/structure/sink/kitchen/old, 18, -4, 0, 0)
/// splishy splashy ^_^
/obj/structure/sink/puddle
name = "puddle"
desc = "A puddle of clean water. Looks refreshing."
icon_state = "puddle"
- can_move = 0
- can_rotate = 0
resistance_flags = UNACIDABLE
+ sink_flags = 0
-/obj/structure/sink/puddle/attack_hand(mob/M as mob)
+/obj/structure/sink/puddle/attack_hand(mob/living/carbon/human/user)
icon_state = "puddle-splash"
..()
- icon_state = "puddle"
+ if(!(sink_flags & SINK_BUSY)) // so if we click puddle while someone uses it, it doesn't reset its pretty animation
+ icon_state = "puddle"
-/obj/structure/sink/puddle/attackby__legacy__attackchain(obj/item/O as obj, mob/user as mob, params)
+/obj/structure/sink/puddle/item_interaction(mob/living/user, obj/item/used, list/modifiers)
icon_state = "puddle-splash"
..()
- icon_state = "puddle"
+ if(!(sink_flags & SINK_BUSY)) // so if we click puddle while someone uses it, it doesn't reset its pretty animation
+ icon_state = "puddle"
+ return ITEM_INTERACT_COMPLETE
-/obj/structure/sink/kitchen/old
- name = "old sink"
- desc = "A sink used for washing one's hands and face. It looks rusty and home-made."
+#undef SINK_BUSY
+#undef SINK_MOVEABLE
//////////////////////////////////
// Bathroom Fixture Items //
//////////////////////////////////
-
/obj/item/mounted/shower
name = "shower fixture"
desc = "A self-adhering shower fixture. Simply stick to a wall, no plumber needed!"
@@ -684,17 +701,16 @@
//overriding this because we don't care about other items on the wall, but still need to do adjacent checks
if(!on_wall || !user)
return
- if(!(get_dir(on_wall, user) in GLOB.cardinal))
+ if(!(get_dir(user, on_wall) in GLOB.cardinal))
to_chat(user, "You need to be standing next to a wall to place \the [src].")
return
- return 1
+ return TRUE
/obj/item/mounted/shower/do_build(turf/on_wall, mob/user)
- var/obj/machinery/shower/S = new /obj/machinery/shower(get_turf(user), get_dir(on_wall, user), 1)
+ var/obj/machinery/shower/S = new /obj/machinery/shower(get_turf(user), user.dir, TRUE)
transfer_prints_to(S, TRUE)
qdel(src)
-
/obj/item/bathroom_parts
name = "toilet in a box"
desc = "An entire toilet in a box, straight from Space Sweden. It has an unpronounceable name."
@@ -703,6 +719,7 @@
w_class = WEIGHT_CLASS_BULKY
var/result = /obj/structure/toilet
var/result_name = "toilet"
+ new_attack_chain = TRUE
/obj/item/bathroom_parts/urinal
name = "urinal in a box"
@@ -718,17 +735,18 @@
..()
desc = "An entire [result_name] in a box, straight from Space Sweden. It has an [pick("unpronounceable", "overly accented", "entirely gibberish", "oddly normal-sounding")] name."
-/obj/item/bathroom_parts/attack_self__legacy__attackchain(mob/user)
+/obj/item/bathroom_parts/activate_self(mob/user)
+ if(..())
+ return
var/turf/T = get_turf(user)
if(!T)
to_chat(user, "You can't build that here!")
return
- if(result in T.contents)
- to_chat(user, "There's already \an [result_name] here.")
- return
- user.visible_message("[user] begins assembling a new [result_name].", "You begin assembling a new [result_name].")
- if(do_after(user, 30, target = user))
- user.visible_message("[user] finishes building a new [result_name]!", "You finish building a new [result_name]!")
+ user.visible_message("[user] begins assembling a new [result_name].",
+ "You begin assembling a new [result_name].")
+ if(do_after(user, 3 SECONDS, target = user))
+ user.visible_message("[user] finishes building a new [result_name]!",
+ "You finish building a new [result_name]!")
var/obj/structure/S = new result(T)
S.anchored = FALSE
S.dir = user.dir
diff --git a/code/tests/attack_chain/test_attack_chain_watercloset.dm b/code/tests/attack_chain/test_attack_chain_watercloset.dm
new file mode 100644
index 00000000000..e44dcf30501
--- /dev/null
+++ b/code/tests/attack_chain/test_attack_chain_watercloset.dm
@@ -0,0 +1,85 @@
+/datum/game_test/attack_chain_toilet/Run()
+ var/datum/test_puppeteer/player = new(src)
+
+ var/obj/structure/toilet/toilet = player.spawn_obj_nearby(/obj/structure/toilet, EAST)
+ toilet.open = TRUE
+ var/obj/item/reagent_containers/glass/beaker = player.spawn_obj_in_hand(/obj/item/reagent_containers/glass/beaker)
+ player.use_item_in_hand()
+ player.click_on(toilet)
+ TEST_ASSERT_NOT_CHATLOG(player, "You fill")
+ player.use_item_in_hand()
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You fill")
+ player.put_away(beaker)
+
+ var/obj/item/flamethrower = player.spawn_obj_in_hand(/obj/item/flamethrower/full/tank)
+ player.use_item_in_hand()
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You torch")
+ player.use_item_in_hand()
+ player.put_away(flamethrower)
+
+ var/obj/item/crowbar = player.spawn_obj_in_hand(/obj/item/crowbar)
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You lift")
+ player.puppet.swap_hand()
+ player.click_on(toilet)
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "The cistern is empty")
+ var/obj/item/storage/box = player.spawn_obj_in_hand(/obj/item/storage/box)
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You carefully")
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You find")
+ player.puppet.swap_hand()
+ player.click_on(toilet)
+ TEST_ASSERT_LAST_CHATLOG(player, "You replace")
+
+/datum/game_test/attack_chain_shower/Run()
+ var/datum/test_puppeteer/player = new(src)
+
+ var/obj/machinery/shower = player.spawn_obj_nearby(/obj/machinery/shower, EAST)
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "You turn")
+
+ var/obj/item/wrench = player.spawn_obj_in_hand(/obj/item/wrench)
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "You adjust")
+
+ player.put_away(wrench)
+ player.spawn_obj_in_hand(/obj/item/analyzer)
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "The water temperature")
+
+ player.puppet.swap_hand()
+ var/obj/item/welder = player.spawn_obj_in_hand(/obj/item/weldingtool)
+ player.use_item_in_hand()
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "Turn")
+ player.put_away(welder)
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "You turn")
+ player.retrieve(welder)
+ player.click_on(shower)
+ TEST_ASSERT_LAST_CHATLOG(player, "You cut")
+ player.put_away(welder)
+ qdel(player)
+
+/datum/game_test/attack_chain_sink/Run()
+ var/datum/test_puppeteer/player = new(src)
+
+ var/obj/structure/sink = player.spawn_obj_nearby(/obj/structure/sink, SOUTH)
+ sink.anchored = FALSE
+ player.click_on(sink)
+ TEST_ASSERT_LAST_CHATLOG(player, "The sink isn't")
+ sink.anchored = TRUE
+ player.click_on(sink)
+ TEST_ASSERT_LAST_CHATLOG(player, "You wash your")
+ player.spawn_obj_in_hand(/obj/item/crowbar)
+ player.click_on(sink)
+ TEST_ASSERT_LAST_CHATLOG(player, "You wash the")
+
+ player.puppet.swap_hand()
+ player.spawn_obj_in_hand(/obj/item/bathroom_parts/sink)
+ player.use_item_in_hand()
+ TEST_ASSERT_LAST_CHATLOG(player, "You finish")
diff --git a/code/tests/game_tests.dm b/code/tests/game_tests.dm
index 03f191b9e13..6ebc37c096d 100644
--- a/code/tests/game_tests.dm
+++ b/code/tests/game_tests.dm
@@ -18,6 +18,7 @@
#include "attack_chain\test_attack_chain_stunbaton.dm"
#include "attack_chain\test_attack_chain_turf.dm"
#include "attack_chain\test_attack_chain_vehicles.dm"
+#include "attack_chain\test_attack_chain_watercloset.dm"
#include "games\test_cards.dm"
#include "jobs\test_job_globals.dm"
#include "test_aicard_icons.dm"
diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi
index 4bddc45e11e..9564291cc8c 100644
Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ
diff --git a/tools/UpdatePaths/Scripts/28940_directional_watercloset.txt b/tools/UpdatePaths/Scripts/28940_directional_watercloset.txt
new file mode 100644
index 00000000000..207442e9bcb
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/28940_directional_watercloset.txt
@@ -0,0 +1,25 @@
+/obj/structure/toilet{dir=1} : /obj/structure/toilet/directional/south{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/toilet{dir=4} : /obj/structure/toilet/directional/west{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/toilet{dir=8} : /obj/structure/toilet/directional/east{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/toilet : /obj/structure/toilet/directional/north{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/toilet/secret : /obj/structure/toilet/directional/north
+
+/obj/machinery/shower{dir=1} : /obj/machinery/shower/directional/south{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/machinery/shower{dir=4} : /obj/machinery/shower/directional/west{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/machinery/shower{dir=8} : /obj/machinery/shower/directional/east{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/machinery/shower : /obj/machinery/shower/directional/north{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+
+/obj/structure/sink{dir=1} : /obj/structure/sink/directional/south{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink{dir=4} : /obj/structure/sink/directional/east{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink{dir=8} : /obj/structure/sink/directional/west{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink : /obj/structure/sink/directional/north{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+
+/obj/structure/sink/kitchen{dir=1} : /obj/structure/sink/kitchen/directional/south{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen{dir=4} : /obj/structure/sink/kitchen/directional/west{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen{dir=8} : /obj/structure/sink/kitchen/directional/east{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen : /obj/structure/sink/kitchen/directional/north{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+
+/obj/structure/sink/kitchen/old{dir=1} : /obj/structure/sink/kitchen/old/directional/south{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen/old{dir=4} : /obj/structure/sink/kitchen/old/directional/west{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen/old{dir=8} : /obj/structure/sink/kitchen/old/directional/east{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sink/kitchen/old : /obj/structure/sink/kitchen/old/directional/north{@OLD;dir=@SKIP;pixel_x=@SKIP;pixel_y=@SKIP}
diff --git a/tools/maplint/lints/directional_watercloset.yml b/tools/maplint/lints/directional_watercloset.yml
new file mode 100644
index 00000000000..2895d76895c
--- /dev/null
+++ b/tools/maplint/lints/directional_watercloset.yml
@@ -0,0 +1,36 @@
+help: "Use the specific directional subtypes for this watercloset equipment."
+/obj/structure/toilet:
+ banned_variables:
+ - pixel_x
+ - pixel_y
+ - dir
+=/obj/structure/toilet:
+ banned: true
+=/obj/structure/toilet/directional:
+ banned: true
+/obj/machinery/shower:
+ banned_variables:
+ - pixel_x
+ - pixel_y
+ - dir
+=/obj/machinery/shower:
+ banned: true
+=/obj/machinery/shower/directional:
+ banned: true
+/obj/structure/sink:
+ banned_variables:
+ - pixel_x
+ - pixel_y
+ - dir
+=/obj/structure/sink:
+ banned: true
+=/obj/structure/sink/directional:
+ banned: true
+=/obj/structure/sink/kitchen:
+ banned: true
+=/obj/structure/sink/kitchen/directional:
+ banned: true
+=/obj/structure/sink/kitchen/old:
+ banned: true
+=/obj/structure/sink/kitchen/old/directional:
+ banned: true