diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm index 5720ef32047..b5d6fe250df 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm @@ -178,7 +178,7 @@ /turf/simulated/floor/wood, /area/ruin/powered/snow_cabin) "aO" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/structure/fans/tiny, /turf/simulated/floor/pod/dark, /area/ruin/powered/snow_biodome) @@ -341,7 +341,7 @@ /turf/simulated/floor/wood, /area/ruin/powered/snow_cabin) "vf" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/structure/fans/tiny, /turf/simulated/floor/pod/dark, /area/ruin/powered/snow_cabin) @@ -381,7 +381,7 @@ /area/ruin/powered/snow_biodome) "Ez" = ( /obj/structure/fans/tiny, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/pod/dark, /area/ruin/powered/snow_biodome) "FP" = ( 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 93ffa2bdff6..833c241be29 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm @@ -1496,7 +1496,7 @@ /turf/simulated/floor/plating/lavaland_air, /area/ruin/unpowered/althland_excavation) "WH" = ( -/obj/machinery/door/poddoor/multi_tile/three_tile_hor, +/obj/machinery/door/poddoor/multi_tile/triple/directional/east, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/althland_excavation) "Xl" = ( diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm index e36e9f9d543..c3b1b73d300 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_nt.dmm @@ -1714,9 +1714,8 @@ }, /area/mine/outpost/hallway/west) "jQ" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - name = "Main Airlock"; - dir = 1 +/obj/machinery/door/airlock/multi_tile/glass/directional/north{ + name = "Main Airlock" }, /obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, @@ -3964,7 +3963,7 @@ /area/mine/outpost/production) "vP" = ( /obj/structure/fans/tiny, -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Main Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm index e3cd9f2febb..872694b2d21 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm @@ -509,7 +509,7 @@ /turf/simulated/floor/carpet/black, /area/ruin/space/powered/casino/floor) "mP" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/plasteel/dark, /area/ruin/space/powered/casino/arrivals) "mW" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm index 01a3c06fc5e..e6fc410b8dc 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1515,7 +1515,7 @@ "hW" = ( /obj/structure/fans/tiny, /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/multi_tile/impassable{ +/obj/machinery/door/poddoor/multi_tile/impassable/directional/south{ id_tag = "DS_Tram" }, /turf/simulated/floor/plating, @@ -3898,7 +3898,7 @@ "yb" = ( /obj/structure/fans/tiny, /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/north{ id_tag = "DS_BossStorage"; name = "warehouse valuables storage blast door" }, @@ -4295,7 +4295,7 @@ /obj/machinery/door/airlock/vault{ name = "Auxiliary Power Room" }, -/obj/machinery/door/poddoor/multi_tile/impassable{ +/obj/machinery/door/poddoor/multi_tile/impassable/directional/south{ id_tag = "DS_Engineering" }, /turf/simulated/floor/catwalk, @@ -4377,7 +4377,7 @@ }, /area/ruin/space/deepstorage) "AN" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/north{ id_tag = "DS_FrontGate" }, /turf/simulated/floor/catwalk/airless, @@ -5855,7 +5855,7 @@ "LJ" = ( /obj/structure/fans/tiny, /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "DS_BossStorage"; name = "warehouse blast doors" }, @@ -6883,7 +6883,7 @@ "TK" = ( /obj/effect/mapping_helpers/airlock/access/all/ruins/deepstorage, /obj/machinery/door/airlock/highsecurity, -/obj/machinery/door/poddoor/multi_tile/impassable{ +/obj/machinery/door/poddoor/multi_tile/impassable/directional/south{ id_tag = "DS_Storage" }, /turf/simulated/floor/plasteel{ @@ -6960,7 +6960,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/ruins/deepstorage, /obj/machinery/door/airlock/highsecurity, -/obj/machinery/door/poddoor/multi_tile/impassable{ +/obj/machinery/door/poddoor/multi_tile/impassable/directional/south{ id_tag = "DS_Storage" }, /turf/simulated/floor/plasteel{ diff --git a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm index d802a3f506a..c91ff595726 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm @@ -63,7 +63,7 @@ /turf/simulated/floor/plasteel, /area/ruin/space/powered) "jM" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "freighterblastdoor1" }, /obj/structure/fans/tiny, @@ -456,9 +456,7 @@ /turf/simulated/floor/wood, /area/ruin/space/powered) "Je" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 1 - }, +/obj/machinery/door/airlock/multi_tile/glass/directional/north, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm index 915147433db..de79d938e48 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm @@ -679,7 +679,7 @@ /turf/simulated/floor/plating/airless, /area/ruin/space/mech_transport) "Vp" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "mechtransport_ext" }, /turf/simulated/floor/plasteel/dark, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm index d238d330e0b..8039056279e 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm @@ -391,13 +391,13 @@ /area/ruin/space/moonbase19) "ba" = ( /obj/effect/mapping_helpers/airlock/access/all/ruins/moonoutpost19, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, /area/ruin/space/moonbase19) "bb" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 @@ -2586,7 +2586,7 @@ /area/ruin/space/moonbase19) "ij" = ( /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/north{ id_tag = "awaycargogate" }, /turf/simulated/floor/catwalk, @@ -10797,7 +10797,7 @@ /area/ruin/space/moonbase19) "RD" = ( /obj/effect/mapping_helpers/airlock/access/all/ruins/moonoutpost19, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/structure/barricade/wooden/crude{ layer = 4 }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm index e9b2e77f3b3..b46358e1f0a 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm @@ -4500,7 +4500,7 @@ /turf/template_noop, /area/space/nearstation) "rU" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/east{ name = "prototype vault blast doors"; desc = "A heavy duty blast door that opens mechanically. It was hermetically sealed when the crew went into cryostasis."; id_tag = "prototype_vault" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm b/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm index b83a5f4a67c..25395fd4825 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/sieged_lab.dmm @@ -492,7 +492,7 @@ "xV" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/east{ id_tag = "SL_EndRoom" }, /turf/simulated/floor/plasteel{ @@ -777,7 +777,7 @@ }, /area/ruin/space/sieged_lab) "La" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -1054,7 +1054,7 @@ name = "Executive Suite" }, /obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/north{ id_tag = "SL_EndRoom" }, /turf/simulated/floor/plasteel, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm index 01a80fecb24..898bdfe01ce 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm @@ -214,7 +214,7 @@ }, /area/ruin/space/powered/bar) "aX" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "black" @@ -234,9 +234,7 @@ /turf/template_noop, /area/space/nearstation) "ba" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 1 - }, +/obj/machinery/door/airlock/multi_tile/glass/directional/north, /obj/structure/fans/tiny, /turf/simulated/floor/plasteel{ dir = 10; diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm index b50d10ceffd..c798f73a54f 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm @@ -313,7 +313,7 @@ }, /area/syndicate_depot/core) "aZ" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_hor, +/obj/machinery/door/poddoor/multi_tile/double/directional/east, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index bbddbcf8206..091801afcfb 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -1775,7 +1775,7 @@ layer = 2.9; name = "Security Wing Lockdown" }, -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Security Wing" }, /turf/simulated/floor/plasteel{ diff --git a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm index 436c3992151..949c449827f 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm @@ -157,9 +157,7 @@ /turf/simulated/floor/wood, /area/shuttle/abandoned) "tV" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 1 - }, +/obj/machinery/door/airlock/multi_tile/glass/directional/north, /turf/simulated/floor/mineral/plastitanium, /area/shuttle/abandoned) "uo" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm index 16ef68a4c69..0734a5d061d 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm @@ -576,7 +576,7 @@ "uH" = ( /obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "cargoshipblastdoor1" }, /turf/simulated/floor/plating, diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 977f8c55744..6d4926d9423 100644 --- a/_maps/map_files/generic/centcomm.dmm +++ b/_maps/map_files/generic/centcomm.dmm @@ -780,7 +780,7 @@ /turf/simulated/floor/carpet/purple, /area/wizard_station) "cV" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/north{ name = "Syndicate Base Blast Door" }, /turf/simulated/floor/plasteel/dark, @@ -3055,7 +3055,7 @@ /turf/simulated/wall/indestructible/opsglass, /area/syndicate_mothership/jail) "lh" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/north{ id_tag = "nukeop_base"; name = "Syndicate Base Docking Area Blast Door" }, @@ -4220,7 +4220,7 @@ }, /area/centcom/specops) "oQ" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/north{ name = "Trading Satellite Central Access" }, /turf/simulated/floor/plating/airless, @@ -5331,7 +5331,7 @@ /area/syndicate_mothership) "sE" = ( /obj/effect/mapping_helpers/airlock/access/all/syndicate, -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Equipment Room" }, /turf/simulated/floor/plasteel{ @@ -7873,7 +7873,7 @@ /turf/simulated/floor/plasteel, /area/centcom/evac) "Ck" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/wood, /area/ghost_bar) @@ -10157,7 +10157,7 @@ /area/ghost_bar) "Kb" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "sec"; name = "CentCom Security" }, @@ -10197,7 +10197,7 @@ /area/centcom/specops) "Ki" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "CC"; name = "Thunderdome Access" }, @@ -11537,7 +11537,7 @@ /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "OB" = ( -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Badmin's Bar" }, /turf/simulated/floor/carpet/arcade, @@ -12049,7 +12049,7 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/administration) "Qh" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/east{ name = "Special Operations Engineering Storage"; id_tag = "SpecopsEngineering" }, @@ -12103,7 +12103,7 @@ /area/centcom/specops) "Qs" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/north{ id_tag = "CCTELE"; name = "Specops Teleporter" }, @@ -12549,7 +12549,7 @@ }, /area/centcom/control) "RW" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{ id_tag = "specopsoffice"; name = "Privacy Shield" }, @@ -13428,7 +13428,7 @@ /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "VD" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/east{ id_tag = "CCDOCK2"; name = "Special Operations Secondary Dock" }, @@ -13968,7 +13968,7 @@ }, /area/centcom/evac) "Xh" = ( -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/double/directional/north{ id_tag = "specopsoffice"; name = "Privacy Shield" }, @@ -13978,7 +13978,7 @@ /turf/simulated/floor/transparent/glass, /area/centcom/specops) "Xk" = ( -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Badmin's Bar" }, /turf/simulated/floor/wood, @@ -13996,7 +13996,7 @@ /area/shuttle/escape) "Xn" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/north{ id_tag = "SpecopsFerry"; name = "Special Operations Ferry Hangar" }, @@ -14726,7 +14726,7 @@ /area/centcom/specops) "ZF" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/north{ id_tag = "ASSAULT"; name = "Assault Armor" }, diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm index a3d2b62c902..085c7a42f5d 100644 --- a/_maps/map_files/stations/boxstation.dmm +++ b/_maps/map_files/stations/boxstation.dmm @@ -11642,7 +11642,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) @@ -16210,9 +16210,7 @@ /turf/simulated/floor/plasteel, /area/station/hallway/secondary/garden) "bdI" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 1 - }, +/obj/machinery/door/airlock/multi_tile/glass/directional/north, /obj/effect/mapping_helpers/airlock/autoname, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -20864,15 +20862,6 @@ /obj/structure/chair/comfy/black, /turf/simulated/floor/wood, /area/station/service/library) -"brz" = ( -/obj/structure/closet/walllocker/emerglocker/directional/north, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/extinguisher, -/turf/simulated/floor/plating, -/area/station/public/storage/emergency/port) "brA" = ( /obj/structure/chair/office/dark, /obj/effect/landmark/start/librarian, @@ -44798,7 +44787,7 @@ /area/station/public/dorms) "djg" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/plasteel{ dir = 8; @@ -50168,6 +50157,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/maintenance/aft) +"eOg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/economy/atm/directional/west, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "redcorner" + }, +/area/station/security/lobby) "eOh" = ( /obj/machinery/economy/vending/cigarette, /obj/structure/window/reinforced, @@ -52648,6 +52645,11 @@ icon_state = "white" }, /area/station/maintenance/asmaint) +"gaW" = ( +/obj/effect/spawner/random/blood/often, +/obj/machinery/economy/atm/directional/north, +/turf/simulated/floor/wood, +/area/station/maintenance/apmaint2) "gba" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -59752,14 +59754,6 @@ }, /turf/simulated/floor/plasteel, /area/station/science/xenobiology) -"jPg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/economy/atm/directional/west, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "redcorner" - }, -/area/station/security/lobby) "jPk" = ( /obj/structure/cable{ icon_state = "0-2" @@ -61169,13 +61163,6 @@ /obj/effect/mapping_helpers/turfs/rust/maybe, /turf/simulated/wall/r_wall, /area/station/engineering/gravitygenerator) -"kyJ" = ( -/obj/machinery/economy/atm/directional/north, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "yellowcorner" - }, -/area/station/hallway/primary/aft/south) "kzB" = ( /obj/effect/spawner/random/food_or_drink/three_course_meal, /obj/structure/closet/crate/freezer, @@ -64117,6 +64104,10 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/fpmaint2) +"lVm" = ( +/obj/item/kirbyplants/large, +/turf/simulated/floor/wood, +/area/station/service/bar) "lVr" = ( /obj/machinery/atmospherics/pipe/simple/visible/supply{ dir = 10 @@ -67917,6 +67908,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/aft) +"nZt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/station/hallway/secondary/entry/north) "nZF" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -73249,12 +73249,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/maintenance/aft) -"qEe" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry/north) "qEg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -74794,10 +74788,6 @@ icon_state = "dark" }, /area/station/telecomms/chamber) -"rsw" = ( -/obj/item/kirbyplants/large, -/turf/simulated/floor/wood, -/area/station/service/bar) "rsz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -75224,6 +75214,13 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/aft) +"rED" = ( +/obj/machinery/economy/atm/directional/north, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellowcorner" + }, +/area/station/hallway/primary/aft/south) "rET" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -80483,7 +80480,7 @@ }, /area/station/science/robotics) "uxZ" = ( -/obj/machinery/door/airlock/multi_tile{ +/obj/machinery/door/airlock/multi_tile/directional/east{ name = "maintenance access" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -82559,6 +82556,12 @@ }, /turf/simulated/floor/wood, /area/station/command/office/ntrep) +"vGS" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/station/hallway/secondary/entry/north) "vHd" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/structure/cable{ @@ -82705,15 +82708,6 @@ icon_state = "bluecorner" }, /area/station/hallway/secondary/exit) -"vKU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry/north) "vLb" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/structure/cable{ @@ -84219,6 +84213,15 @@ icon_state = "whitehall" }, /area/station/hallway/primary/starboard/west) +"wBH" = ( +/obj/structure/closet/walllocker/emerglocker/directional/north, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/extinguisher, +/turf/simulated/floor/plating, +/area/station/public/storage/emergency/port) "wCg" = ( /obj/structure/cable, /obj/structure/cable{ @@ -85606,11 +85609,6 @@ }, /turf/simulated/floor/plasteel, /area/station/maintenance/assembly_line) -"xnt" = ( -/obj/effect/spawner/random/blood/often, -/obj/machinery/economy/atm/directional/north, -/turf/simulated/floor/wood, -/area/station/maintenance/apmaint2) "xnF" = ( /obj/structure/cable{ icon_state = "1-2" @@ -97668,7 +97666,7 @@ aJP aRm aOR aQa -qEe +vGS aMD fay fay @@ -98696,7 +98694,7 @@ aJR aRV aOR aQa -vKU +nZt aRd nff aUm @@ -108991,7 +108989,7 @@ bgA blO iPh blR -brz +wBH bsD bui blR @@ -110064,7 +110062,7 @@ gwb uWp tGO cgQ -xnt +gaW xRm lnh kym @@ -115975,7 +115973,7 @@ cBp cAL cDY cvx -kyJ +rED mqV ePP ePP @@ -116414,7 +116412,7 @@ avd axD axA ayj -jPg +eOg azP aBY aCv @@ -124160,7 +124158,7 @@ bqk bqk bqk bAV -rsw +lVm aUS bAo bHy diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm index 1693eabff8d..a150528f3e3 100644 --- a/_maps/map_files/stations/cerestation.dmm +++ b/_maps/map_files/stations/cerestation.dmm @@ -9625,7 +9625,7 @@ /turf/simulated/floor/plasteel, /area/station/public/toilet/lockerroom) "bvF" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/double/directional/east{ name = "Command Emergency EVA Storage"; id_tag = "commandeva" }, @@ -24102,7 +24102,7 @@ }, /area/station/hallway/primary/aft/west) "dnY" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/double/directional/north{ name = "Medical Emergency EVA Storage"; id_tag = "medeva" }, @@ -28778,7 +28778,7 @@ /area/station/security/permabrig) "epT" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -38598,7 +38598,7 @@ }, /area/station/hallway/primary/aft/east) "gPT" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/autoname, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -40685,7 +40685,7 @@ /turf/simulated/floor/engine, /area/station/hallway/spacebridge/scidock) "hre" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/double/directional/east{ name = "Cargo Emergency EVA Storage"; id_tag = "cargoeva" }, @@ -45480,9 +45480,7 @@ /area/station/hallway/primary/fore/north) "iwy" = ( /obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 2 - }, +/obj/machinery/door/airlock/multi_tile/glass/directional/south, /obj/machinery/door/firedoor, /turf/simulated/floor/wood, /area/station/service/bar) @@ -60280,7 +60278,7 @@ /obj/structure/cable/orange{ icon_state = "1-2" }, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/plasteel, /area/station/public/locker) @@ -65011,7 +65009,7 @@ }, /area/station/engineering/control) "mUX" = ( -/obj/machinery/door/poddoor/multi_tile/three_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/triple/directional/east{ name = "Civilian Emergency EVA Storage"; id_tag = "civeva" }, @@ -67066,7 +67064,7 @@ /turf/simulated/floor/wood, /area/station/medical/psych) "nvX" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_ver{ +/obj/machinery/door/poddoor/multi_tile/double/directional/north{ id_tag = "arrivalseva"; name = "Arrivals Emergency EVA Storage" }, @@ -83252,7 +83250,7 @@ }, /area/station/hallway/primary/fore/east) "rrI" = ( -/obj/machinery/door/poddoor/multi_tile/two_tile_hor{ +/obj/machinery/door/poddoor/multi_tile/double/directional/east{ name = "Science Emergency EVA Storage"; id_tag = "scieva" }, @@ -84874,7 +84872,7 @@ }, /area/station/hallway/primary/central/north) "rMg" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ @@ -106267,7 +106265,7 @@ /turf/simulated/floor/wood, /area/station/command/office/hos) "wMQ" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index 35cf7c69cd4..5a70e414b17 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -35701,7 +35701,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) @@ -73836,7 +73836,7 @@ "oll" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ name = "Cryogenic Dormitories" }, /obj/structure/cable{ diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm index ca6af59ae96..baf0841327f 100644 --- a/_maps/map_files/stations/emeraldstation.dmm +++ b/_maps/map_files/stations/emeraldstation.dmm @@ -65671,7 +65671,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/security/fore) "nib" = ( -/obj/machinery/door/airlock/multi_tile/glass, +/obj/machinery/door/airlock/multi_tile/glass/directional/east, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/autoname, /turf/simulated/floor/plasteel{ @@ -92475,7 +92475,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/aft2) "svF" = ( -/obj/machinery/door/airlock/multi_tile{ +/obj/machinery/door/airlock/multi_tile/directional/east{ name = "maintenance access" }, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, @@ -94639,7 +94639,7 @@ }, /area/station/legal/lawoffice) "sSv" = ( -/obj/machinery/door/airlock/multi_tile/glass{ +/obj/machinery/door/airlock/multi_tile/glass/directional/east{ locked = 1 }, /obj/structure/barricade/wooden, @@ -103957,7 +103957,7 @@ /turf/simulated/floor/bluegrid, /area/station/telecomms/computer) "uJn" = ( -/obj/machinery/door/airlock/multi_tile{ +/obj/machinery/door/airlock/multi_tile/directional/east{ name = "maintenance access" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, diff --git a/code/__DEFINES/mappers.dm b/code/__DEFINES/mappers.dm index 5ac32e9468f..adff62e6900 100644 --- a/code/__DEFINES/mappers.dm +++ b/code/__DEFINES/mappers.dm @@ -33,3 +33,18 @@ dir = WEST; \ pixel_x = offset_west; \ } + +#define MAPPING_DIRECTIONAL_HELPERS_MULTITILE(path, offset) ##path/directional/north {\ + dir = NORTH; \ +} \ +##path/directional/south {\ + dir = SOUTH; \ + pixel_y = -offset; \ +} \ +##path/directional/east {\ + dir = EAST; \ +} \ +##path/directional/west {\ + dir = WEST; \ + pixel_x = -offset; \ +} diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a4dfbcf41c5..2a1d596cd9d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1330,7 +1330,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) operating = NONE recalculate_atmos_connectivity() if(safe) - CheckForMobs() + check_for_mobs() return TRUE /obj/machinery/door/airlock/lock(forced=0) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 1ff5eca4d53..d3565431b1a 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -654,7 +654,6 @@ //Terribly sorry for the code doubling, but things go derpy otherwise. /obj/machinery/door/airlock/multi_tile name = "large airlock" - dir = EAST width = 2 icon = 'icons/obj/doors/airlocks/glass_large/glass_large.dmi' overlays_file = 'icons/obj/doors/airlocks/glass_large/overlays.dmi' @@ -662,9 +661,13 @@ assemblytype = /obj/structure/door_assembly/multi_tile paintable = FALSE +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/airlock/multi_tile, 32) + /obj/machinery/door/airlock/multi_tile/narsie_act() return +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/airlock/multi_tile/glass, 32) + /obj/machinery/door/airlock/multi_tile/glass opacity = FALSE glass = TRUE @@ -678,17 +681,38 @@ opacity = TRUE anchored = TRUE invisibility = INVISIBILITY_MAXIMUM + obj_integrity = INFINITY // our parent airlock/assembly will handle that //atmos_canpass = CANPASS_DENSITY /// The door/airlock this fluff panel is attached to var/obj/machinery/door/filled_airlock + /// The assembly this fluff panel is attached to + var/obj/structure/door_assembly/filled_assembly /obj/airlock_filler_object/Bumped(atom/A) - if(isnull(filled_airlock)) - stack_trace("Someone bumped into an airlock filler with no parent airlock specified!") - return filled_airlock.Bumped(A) + if(filled_airlock) + return filled_airlock.Bumped(A) + if(filled_assembly) + return filled_assembly.Bumped(A) + else + stack_trace("Someone bumped into an airlock filler with no parent airlock/assembly specified!") /obj/airlock_filler_object/Destroy() filled_airlock = null + filled_assembly = null + return ..() + +/obj/airlock_filler_object/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = TRUE, attack_dir, armour_penetration_flat = 0, armour_penetration_percentage = 0) + if(filled_airlock) + filled_airlock.take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + else if(filled_assembly) + filled_assembly.take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + return ..() + +/obj/airlock_filler_object/ex_act(severity) + if(filled_airlock) + filled_airlock.ex_act(severity) + else if(filled_assembly) + filled_assembly.ex_act(severity) return ..() /// Multi-tile airlocks pair with a filler panel, if one goes so does the other. @@ -699,18 +723,31 @@ filled_airlock = parent_airlock RegisterSignal(filled_airlock, COMSIG_PARENT_QDELETING, PROC_REF(no_airlock)) +/obj/airlock_filler_object/proc/pair_assembly(obj/structure/door_assembly/parent_assembly) + if(isnull(parent_assembly)) + stack_trace("Attempted to pair an airlock filler with no parent assembly specified!") + + filled_assembly = parent_assembly + RegisterSignal(filled_assembly, COMSIG_PARENT_QDELETING, PROC_REF(no_assembly)) + /obj/airlock_filler_object/proc/no_airlock() UnregisterSignal(filled_airlock) qdel(src) +/obj/airlock_filler_object/proc/no_assembly() + UnregisterSignal(filled_assembly) + qdel(src) + /// Multi-tile airlocks (using a filler panel) have special handling for movables with PASS_FLAG_GLASS /obj/airlock_filler_object/CanPass(atom/movable/mover, border_dir) + if(mover == filled_assembly) + return TRUE . = ..() if(.) return if(istype(mover)) - return !opacity + return !density /obj/airlock_filler_object/singularity_act() return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 03816be6f74..143de7aee6e 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -53,6 +53,8 @@ /// How much this door reduces superconductivity to when closed. var/superconductivity = DOOR_HEAT_TRANSFER_COEFFICIENT + /// So explosion doesn't deal extra damage for multitile airlocks + COOLDOWN_DECLARE(explosion_cooldown) /obj/machinery/door/Initialize(mapload) @@ -88,6 +90,13 @@ return update_icon() +/obj/machinery/door/ex_act() + if(width > 1 && fillers) + if(!COOLDOWN_FINISHED(src, explosion_cooldown)) + return + COOLDOWN_START(src, explosion_cooldown, 1 SECONDS) + return ..() + /obj/machinery/door/Destroy() density = FALSE recalculate_atmos_connectivity() @@ -425,33 +434,42 @@ recalculate_atmos_connectivity() update_freelook_sight() if(safe) - CheckForMobs() + check_for_mobs() else crush() return TRUE -/obj/machinery/door/proc/CheckForMobs() - if(locate(/mob/living) in get_turf(src)) - sleep(1) - open() +/obj/machinery/door/proc/get_airlock_turfs() + var/list/airlock_turfs = list(get_turf(src)) + if(width > 1 && fillers) + for(var/obj/F in fillers) + airlock_turfs |= get_turf(F) + return airlock_turfs + +/obj/machinery/door/proc/check_for_mobs() + for(var/turf/T in get_airlock_turfs()) + if(locate(/mob/living) in T) + sleep(1) + open() + break /obj/machinery/door/proc/crush() - for(var/mob/living/L in get_turf(src)) - L.visible_message("[src] closes on [L], crushing [L.p_them()]!", "[src] closes on you and crushes you!") - if(isalien(L)) //For xenos - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. - L.emote("roar") - else if(ishuman(L)) //For humans - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - if(L.stat == CONSCIOUS) - L.emote("scream") - L.Weaken(10 SECONDS) - else //for simple_animals & borgs - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - var/turf/location = get_turf(src) - L.add_splatter_floor(location) - for(var/obj/mecha/M in get_turf(src)) - M.take_damage(DOOR_CRUSH_DAMAGE) + for(var/turf/T in get_airlock_turfs()) + for(var/mob/living/L in T) + L.visible_message("[src] closes on [L], crushing [L.p_them()]!", "[src] closes on you and crushes you!") + if(isalien(L)) //For xenos + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. + L.emote("roar") + else if(ishuman(L)) //For humans + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + if(L.stat == CONSCIOUS) + L.emote("scream") + L.Weaken(10 SECONDS) + else //for simple_animals & borgs + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + L.add_splatter_floor(T) + for(var/obj/mecha/M in T) + M.take_damage(DOOR_CRUSH_DAMAGE) /obj/machinery/door/proc/requiresID() return 1 @@ -529,11 +547,6 @@ * Checks which way the airlock is facing and adjusts the direction accordingly. * For use with multi-tile airlocks. */ -/obj/machinery/door/proc/get_adjusted_dir(dir) - if(dir in list(EAST, WEST)) - return EAST - else - return NORTH /** * Sets the bounds of the airlock. For use with multi-tile airlocks. @@ -550,25 +563,41 @@ if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size + bound_y = 0 + pixel_y = 0 + if(dir == WEST) + bound_x = -(width - 1) * world.icon_size + pixel_x = -(width - 1) * world.icon_size + else + bound_x = 0 + pixel_x = 0 + else bound_width = world.icon_size bound_height = width * world.icon_size + bound_x = 0 + pixel_x = 0 + if(dir == SOUTH) + bound_y = -(width - 1) * world.icon_size + pixel_y = -(width - 1) * world.icon_size + else + bound_y = 0 + pixel_y = 0 LAZYINITLIST(fillers) - var/adjusted_dir = get_adjusted_dir(dir) var/obj/last_filler = src - for(var/i = 1, i < width, i++) + for(var/i in 1 to width) var/obj/airlock_filler_object/filler if(length(fillers) < i) - filler = new + filler = new(src) filler.pair_airlock(src) fillers.Add(filler) else filler = fillers[i] - filler.loc = get_step(last_filler, adjusted_dir) + filler.loc = get_step(last_filler, dir) filler.density = density filler.set_opacity(opacity) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index ef430a2d96a..57b7f51f27c 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -92,41 +92,33 @@ layer = CLOSED_BLASTDOOR_LAYER closingLayer = CLOSED_BLASTDOOR_LAYER -/obj/machinery/door/poddoor/multi_tile/four_tile_ver - icon = 'icons/obj/doors/1x4blast_vert.dmi' - width = 4 - dir = NORTH +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/door/poddoor/multi_tile, 0, 0) -/obj/machinery/door/poddoor/multi_tile/three_tile_ver - icon = 'icons/obj/doors/1x3blast_vert.dmi' - width = 3 - dir = NORTH - -/obj/machinery/door/poddoor/multi_tile/two_tile_ver - icon = 'icons/obj/doors/1x2blast_vert.dmi' +/obj/machinery/door/poddoor/multi_tile/double + icon = 'icons/obj/doors/blastdoor_1x2.dmi' width = 2 - dir = NORTH -/obj/machinery/door/poddoor/multi_tile/four_tile_hor - icon = 'icons/obj/doors/1x4blast_hor.dmi' - width = 4 - dir = EAST +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/double, 32) -/obj/machinery/door/poddoor/multi_tile/three_tile_hor - icon = 'icons/obj/doors/1x3blast_hor.dmi' +/obj/machinery/door/poddoor/multi_tile/triple + icon = 'icons/obj/doors/blastdoor_1x3.dmi' width = 3 - dir = EAST -/obj/machinery/door/poddoor/multi_tile/two_tile_hor - icon = 'icons/obj/doors/1x2blast_hor.dmi' - width = 2 - dir = EAST +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/triple, 64) + +/obj/machinery/door/poddoor/multi_tile/quad + icon = 'icons/obj/doors/blastdoor_1x4.dmi' + width = 4 + +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/quad, 96) /obj/machinery/door/poddoor/multi_tile/impassable desc = "A heavy duty blast door that opens mechanically. Looks even tougher than usual." resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF move_resist = INFINITY +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/door/poddoor/multi_tile/impassable, 0, 0) + /obj/machinery/door/poddoor/multi_tile/impassable/hostile_lockdown() return @@ -137,32 +129,20 @@ to_chat(user, "The electronic systems in this door are far too advanced for your primitive hacking peripherals.") return -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver - icon = 'icons/obj/doors/1x4blast_vert.dmi' - width = 4 - dir = NORTH - -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver - icon = 'icons/obj/doors/1x3blast_vert.dmi' - width = 3 - dir = NORTH - -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver - icon = 'icons/obj/doors/1x2blast_vert.dmi' +/obj/machinery/door/poddoor/multi_tile/impassable/double + icon = 'icons/obj/doors/blastdoor_1x2.dmi' width = 2 - dir = NORTH -/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_hor - icon = 'icons/obj/doors/1x4blast_hor.dmi' - width = 4 - dir = EAST +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/impassable/double, 32) -/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor - icon = 'icons/obj/doors/1x3blast_hor.dmi' +/obj/machinery/door/poddoor/multi_tile/impassable/triple + icon = 'icons/obj/doors/blastdoor_1x3.dmi' width = 3 - dir = EAST -/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_hor - icon = 'icons/obj/doors/1x2blast_hor.dmi' - width = 2 - dir = EAST +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/impassable/triple, 64) + +/obj/machinery/door/poddoor/multi_tile/impassable/quad + icon = 'icons/obj/doors/blastdoor_1x4.dmi' + width = 4 + +MAPPING_DIRECTIONAL_HELPERS_MULTITILE(/obj/machinery/door/poddoor/multi_tile/impassable/quad, 96) diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 8d5035018f0..11c51720ae1 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -136,29 +136,80 @@ icon = 'icons/obj/doors/airlocks/glass_large/glass_large.dmi' base_name = "large airlock" overlays_file = 'icons/obj/doors/airlocks/glass_large/overlays.dmi' - dir = EAST var/width = 2 + var/list/fillers airlock_type = /obj/machinery/door/airlock/multi_tile glass_type = /obj/machinery/door/airlock/multi_tile/glass material_amt = 8 /obj/structure/door_assembly/multi_tile/Initialize(mapload) . = ..() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size + update_bounds() -/obj/structure/door_assembly/multi_tile/Move() +/obj/structure/door_assembly/multi_tile/Move(new_loc, new_dir) . = ..() + update_bounds() + +/obj/structure/door_assembly/multi_tile/start_pulling(atom/movable/AM, state, force, show_message) + . = ..() + if(fillers) + for(var/i in 1 to width) + var/obj/airlock_filler_object/filler = fillers[i] + filler.density = FALSE + +/obj/structure/door_assembly/multi_tile/stop_pulling() + . = ..() + if(fillers) + for(var/i in 1 to width) + var/obj/airlock_filler_object/filler = fillers[i] + filler.density = TRUE + +/obj/structure/door_assembly/multi_tile/proc/update_bounds() + if(width <= 1) + return + if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size + bound_y = 0 + pixel_y = 0 + if(dir == WEST) + bound_x = -(width - 1) * world.icon_size + pixel_x = -(width - 1) * world.icon_size + else + bound_x = 0 + pixel_x = 0 + else bound_width = world.icon_size bound_height = width * world.icon_size + bound_x = 0 + pixel_x = 0 + if(dir == SOUTH) + bound_y = -(width - 1) * world.icon_size + pixel_y = -(width - 1) * world.icon_size + else + bound_y = 0 + pixel_y = 0 + + QDEL_LIST_CONTENTS(fillers) + LAZYINITLIST(fillers) + + var/obj/last_filler = src + for(var/i in 1 to width) + var/obj/airlock_filler_object/filler + + if(length(fillers) < i) + filler = new(src) + filler.pair_assembly(src) + fillers += filler + else + filler = fillers[i] + + filler.loc = get_step(last_filler, dir) + filler.set_opacity(opacity) + + last_filler = filler /obj/structure/door_assembly/door_assembly_cult name = "cult airlock assembly" diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index 1c169406929..d1a6a0a836b 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -97,3 +97,12 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /obj/machinery/gravity_generator/shuttleRotate(rotation, params) params = NONE return ..() + +// Updates airlocks' icon +/obj/machinery/door/shuttleRotate(rotation, params) + ..() + update_bounds() + +/obj/structure/door_assembly/multi_tile/shuttleRotate(rotation, params) + ..() + update_bounds() diff --git a/icons/obj/doors/1x2blast_hor.dmi b/icons/obj/doors/1x2blast_hor.dmi deleted file mode 100644 index fa6338b9abb..00000000000 Binary files a/icons/obj/doors/1x2blast_hor.dmi and /dev/null differ diff --git a/icons/obj/doors/1x2blast_vert.dmi b/icons/obj/doors/1x2blast_vert.dmi deleted file mode 100644 index 93550ef3e63..00000000000 Binary files a/icons/obj/doors/1x2blast_vert.dmi and /dev/null differ diff --git a/icons/obj/doors/1x3blast_hor.dmi b/icons/obj/doors/1x3blast_hor.dmi deleted file mode 100644 index 2f2b0e79143..00000000000 Binary files a/icons/obj/doors/1x3blast_hor.dmi and /dev/null differ diff --git a/icons/obj/doors/1x3blast_vert.dmi b/icons/obj/doors/1x3blast_vert.dmi deleted file mode 100644 index f5fb5414f92..00000000000 Binary files a/icons/obj/doors/1x3blast_vert.dmi and /dev/null differ diff --git a/icons/obj/doors/1x4blast_hor.dmi b/icons/obj/doors/1x4blast_hor.dmi deleted file mode 100644 index d9d09df282a..00000000000 Binary files a/icons/obj/doors/1x4blast_hor.dmi and /dev/null differ diff --git a/icons/obj/doors/1x4blast_vert.dmi b/icons/obj/doors/1x4blast_vert.dmi deleted file mode 100644 index a40c611b6d4..00000000000 Binary files a/icons/obj/doors/1x4blast_vert.dmi and /dev/null differ diff --git a/icons/obj/doors/airlocks/glass_large/glass_large.dmi b/icons/obj/doors/airlocks/glass_large/glass_large.dmi index 5d394c0b0cf..692335b89e1 100644 Binary files a/icons/obj/doors/airlocks/glass_large/glass_large.dmi and b/icons/obj/doors/airlocks/glass_large/glass_large.dmi differ diff --git a/icons/obj/doors/airlocks/glass_large/overlays.dmi b/icons/obj/doors/airlocks/glass_large/overlays.dmi index 60242e95f92..3a4c3cb7f90 100644 Binary files a/icons/obj/doors/airlocks/glass_large/overlays.dmi and b/icons/obj/doors/airlocks/glass_large/overlays.dmi differ diff --git a/icons/obj/doors/blastdoor.dmi b/icons/obj/doors/blastdoor.dmi index fa3d6457e97..f17e80ee47a 100644 Binary files a/icons/obj/doors/blastdoor.dmi and b/icons/obj/doors/blastdoor.dmi differ diff --git a/icons/obj/doors/blastdoor_1x2.dmi b/icons/obj/doors/blastdoor_1x2.dmi new file mode 100644 index 00000000000..8e9eb954468 Binary files /dev/null and b/icons/obj/doors/blastdoor_1x2.dmi differ diff --git a/icons/obj/doors/blastdoor_1x3.dmi b/icons/obj/doors/blastdoor_1x3.dmi new file mode 100644 index 00000000000..e1947750ef2 Binary files /dev/null and b/icons/obj/doors/blastdoor_1x3.dmi differ diff --git a/icons/obj/doors/blastdoor_1x4.dmi b/icons/obj/doors/blastdoor_1x4.dmi new file mode 100644 index 00000000000..8b8b0d77f3a Binary files /dev/null and b/icons/obj/doors/blastdoor_1x4.dmi differ diff --git a/icons/obj/doors/door2x1glass.dmi b/icons/obj/doors/door2x1glass.dmi index e8c7fad6c93..f2da356e500 100644 Binary files a/icons/obj/doors/door2x1glass.dmi and b/icons/obj/doors/door2x1glass.dmi differ diff --git a/icons/obj/doors/door_assembly2x1.dmi b/icons/obj/doors/door_assembly2x1.dmi index 2406867df0c..0b83b172504 100644 Binary files a/icons/obj/doors/door_assembly2x1.dmi and b/icons/obj/doors/door_assembly2x1.dmi differ diff --git a/tools/UpdatePaths/Scripts/28928_directional_doors.txt b/tools/UpdatePaths/Scripts/28928_directional_doors.txt new file mode 100644 index 00000000000..16a0a331a73 --- /dev/null +++ b/tools/UpdatePaths/Scripts/28928_directional_doors.txt @@ -0,0 +1,30 @@ +/obj/machinery/door/poddoor/multi_tile/four_tile_ver : /obj/machinery/door/poddoor/multi_tile/quad/directional/north{@OLD} +/obj/machinery/door/poddoor/multi_tile/three_tile_ver : /obj/machinery/door/poddoor/multi_tile/triple/directional/north{@OLD} +/obj/machinery/door/poddoor/multi_tile/two_tile_ver : /obj/machinery/door/poddoor/multi_tile/double/directional/north{@OLD} + +/obj/machinery/door/poddoor/multi_tile/four_tile_hor : /obj/machinery/door/poddoor/multi_tile/quad/directional/east{@OLD} +/obj/machinery/door/poddoor/multi_tile/three_tile_hor : /obj/machinery/door/poddoor/multi_tile/triple/directional/east{@OLD} +/obj/machinery/door/poddoor/multi_tile/two_tile_hor : /obj/machinery/door/poddoor/multi_tile/double/directional/east{@OLD} + +/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver : /obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/north{@OLD} +/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_ver : /obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/north{@OLD} +/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_ver : /obj/machinery/door/poddoor/multi_tile/impassable/double/directional/north{@OLD} + +/obj/machinery/door/poddoor/multi_tile/impassable/four_tile_hor : /obj/machinery/door/poddoor/multi_tile/impassable/quad/directional/east{@OLD} +/obj/machinery/door/poddoor/multi_tile/impassable/three_tile_hor : /obj/machinery/door/poddoor/multi_tile/impassable/triple/directional/east{@OLD} +/obj/machinery/door/poddoor/multi_tile/impassable/two_tile_hor : /obj/machinery/door/poddoor/multi_tile/impassable/double/directional/east{@OLD} + +/obj/machinery/door/airlock/multi_tile{dir=1} : /obj/machinery/door/airlock/multi_tile/directional/north{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile{dir=2} : /obj/machinery/door/airlock/multi_tile/directional/south{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile{dir=4} : /obj/machinery/door/airlock/multi_tile/directional/east{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile{dir=8} : /obj/machinery/door/airlock/multi_tile/directional/west{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile : /obj/machinery/door/airlock/multi_tile/directional/east{@OLD;dir=@SKIP} + +/obj/machinery/door/airlock/multi_tile/glass{dir=1} : /obj/machinery/door/airlock/multi_tile/glass/directional/north{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile/glass{dir=2} : /obj/machinery/door/airlock/multi_tile/glass/directional/south{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile/glass{dir=4} : /obj/machinery/door/airlock/multi_tile/glass/directional/east{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile/glass{dir=8} : /obj/machinery/door/airlock/multi_tile/glass/directional/west{@OLD;dir=@SKIP} +/obj/machinery/door/airlock/multi_tile/glass : /obj/machinery/door/airlock/multi_tile/glass/directional/east{@OLD;dir=@SKIP} + +/obj/machinery/door/poddoor/multi_tile : /obj/machinery/door/poddoor/multi_tile/directional/south{@OLD;dir=@SKIP} +/obj/machinery/door/poddoor/multi_tile/impassable : /obj/machinery/door/poddoor/multi_tile/impassable/directional/south{@OLD;dir=@SKIP} diff --git a/tools/maplint/lints/directional_airlocks.yml b/tools/maplint/lints/directional_airlocks.yml new file mode 100644 index 00000000000..4b37590be75 --- /dev/null +++ b/tools/maplint/lints/directional_airlocks.yml @@ -0,0 +1,45 @@ +help: "Use the specific directional subtypes for this poddoor. Run 28928_directional_doors.txt to fix this." +/obj/machinery/door/poddoor/multi_tile: + banned_variables: + - pixel_x + - pixel_y + - dir +=/obj/machinery/door/poddoor/multi_tile/double: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/double/directional: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/triple: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/triple/directional: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/quad: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/quad/directional: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/double: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/double/directional: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/triple: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/triple/directional: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/quad: + banned: TRUE +=/obj/machinery/door/poddoor/multi_tile/impassable/quad/directional: + banned: TRUE +/obj/machinery/door/airlock/multi_tile: + banned_variables: + - pixel_x + - pixel_y + - dir +=/obj/machinery/door/airlock/multi_tile: + banned: TRUE +=/obj/machinery/door/airlock/multi_tile/directional: + banned: TRUE +=/obj/machinery/door/airlock/multi_tile/glass: + banned: TRUE +=/obj/machinery/door/airlock/multi_tile/glass/directional: + banned: TRUE