diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index 8d5ddf4163d..5ae1aa27833 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -2608,23 +2608,20 @@ /turf/open/space, /area/space) "afa" = ( -/obj/structure/transit_tube{ - icon_state = "E-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, /turf/open/space, /area/space) "afb" = ( -/obj/structure/transit_tube, /obj/structure/lattice, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "afc" = ( /obj/structure/lattice/catwalk, -/obj/structure/transit_tube{ - tag = "icon-E-W-Pass"; - icon_state = "E-W-Pass" - }, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "afd" = ( @@ -2634,15 +2631,15 @@ /area/space) "afe" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/aisat) "aff" = ( -/obj/structure/transit_tube, /obj/structure/cable/blue{ tag = "icon-1-2"; icon_state = "1-2" }, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (WEST)"; dir = 8 @@ -2653,11 +2650,7 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube/station/reverse{ - tag = "icon-closed (NORTH)"; - icon_state = "closed"; - dir = 1 - }, +/obj/structure/transit_tube/station/reverse/flipped, /turf/open/floor/plasteel/black, /area/aisat) "afh" = ( @@ -2665,11 +2658,6 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube{ - tag = "icon-Block (WEST)"; - icon_state = "Block"; - dir = 8 - }, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners" }, @@ -2759,10 +2747,8 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aft" = ( -/obj/structure/transit_tube{ - icon_state = "NE-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/diagonal, /turf/open/space, /area/space) "afu" = ( @@ -3047,10 +3033,8 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "agf" = ( -/obj/structure/transit_tube{ - icon_state = "S-NE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved, /turf/open/space, /area/space) "agg" = ( @@ -3110,9 +3094,7 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "ago" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/space, /area/space) "agp" = ( @@ -3155,10 +3137,8 @@ /turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "agu" = ( -/obj/structure/transit_tube{ - icon_state = "N-S-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing, /turf/open/space, /area/space) "agv" = ( @@ -4680,11 +4660,10 @@ /turf/open/space, /area/solar/auxport) "akd" = ( -/obj/structure/transit_tube{ - tag = "icon-N-SE"; - icon_state = "N-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, /turf/open/space, /area/space) "ake" = ( @@ -4797,24 +4776,23 @@ /turf/open/space, /area/space) "akt" = ( -/obj/structure/transit_tube{ - tag = "icon-E-NW"; - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "aku" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/engine/engineering) "akv" = ( -/obj/structure/transit_tube, /obj/structure/cable/green{ tag = "icon-1-2"; icon_state = "1-2" }, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (NORTH)"; dir = 1 @@ -4836,11 +4814,6 @@ tag = "icon-1-2"; icon_state = "1-2" }, -/obj/structure/transit_tube{ - tag = "icon-Block (WEST)"; - icon_state = "Block"; - dir = 8 - }, /turf/open/floor/plasteel/darkblue/corner{ tag = "icon-darkbluecorners (EAST)"; dir = 4 @@ -105938,7 +105911,7 @@ aac aaa aaa aaa -aeZ +aae agf ago agu @@ -105965,7 +105938,7 @@ agu ago ago akd -aks +aae aae aae alN @@ -106194,9 +106167,9 @@ aaa aac aaa aaa -aeZ +aae aft -afu +aae afN agv agG @@ -106221,7 +106194,7 @@ agG ajr ajz aae -ake +aae akt aae aaa @@ -106450,9 +106423,9 @@ aak aaa aac aaa -aeZ +aae aft -afu +aae afN agb aaa @@ -106706,9 +106679,9 @@ aar aak aaa aac -aeZ +aae aft -afu +aae afN agb aae @@ -106964,7 +106937,7 @@ abl abl abl afa -afu +aae afN agb aaa @@ -107734,7 +107707,7 @@ adT aej aey abl -afd +afb aae afP aaa diff --git a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm index c36a43c8b22..248253170eb 100644 --- a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm +++ b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm @@ -49158,9 +49158,6 @@ /turf/open/floor/plating, /area/engine/engineering) "bTM" = ( -/obj/structure/transit_tube{ - icon_state = "E-SW" - }, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -49168,23 +49165,26 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, /turf/open/floor/plating, /area/engine/engineering) "bTN" = ( -/obj/structure/transit_tube/station{ - dir = 1 - }, /obj/structure/transit_tube_pod{ dir = 4 }, /obj/structure/window/reinforced, +/obj/structure/transit_tube/station{ + dir = 1 + }, /turf/open/floor/plating, /area/engine/engineering) "bTO" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" - }, /obj/structure/window/reinforced, +/obj/structure/transit_tube/curved{ + dir = 8 + }, /turf/open/floor/plating, /area/engine/engineering) "bTP" = ( @@ -49668,19 +49668,14 @@ /turf/open/floor/plasteel/bar, /area/maintenance/starboard) "bUR" = ( -/obj/structure/transit_tube{ - icon_state = "S-NE" - }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/lattice, +/obj/structure/transit_tube/curved, /turf/open/space, /area/space) "bUS" = ( -/obj/structure/transit_tube{ - icon_state = "D-NW" - }, /obj/structure/window/reinforced{ dir = 1 }, @@ -51826,9 +51821,7 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bZc" = ( -/obj/structure/transit_tube{ - icon_state = "N-S-Pass" - }, +/obj/structure/transit_tube/crossing, /turf/open/space, /area/space) "bZd" = ( @@ -53734,16 +53727,13 @@ name = "Arrivals" }) "cdv" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" - }, /obj/structure/window/reinforced, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, /turf/open/space, /area/space) "cdw" = ( -/obj/structure/transit_tube{ - icon_state = "D-SW" - }, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -53766,10 +53756,10 @@ /turf/open/space, /area/space) "cdz" = ( -/obj/structure/transit_tube{ - icon_state = "N-SW" - }, /obj/structure/window/reinforced, +/obj/structure/transit_tube/curved{ + dir = 1 + }, /turf/open/space, /area/space) "cdA" = ( @@ -53917,9 +53907,6 @@ name = "\improper Telecoms Control Room" }) "cdS" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" - }, /obj/structure/window/reinforced{ dir = 1 }, @@ -53929,26 +53916,29 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/floor/plating, /area/tcommsat/computer{ name = "\improper Telecoms Control Room" }) "cdT" = ( -/obj/structure/transit_tube/station, /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/transit_tube/station, /turf/open/floor/plating, /area/tcommsat/computer{ name = "\improper Telecoms Control Room" }) "cdU" = ( -/obj/structure/transit_tube{ - icon_state = "W-NE" - }, /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, /turf/open/floor/plating, /area/tcommsat/computer{ name = "\improper Telecoms Control Room" @@ -55900,16 +55890,20 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "ciD" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_f12" +/obj/structure/window/reinforced{ + dir = 1 }, -/area/shuttle/escape) +/obj/structure/lattice, +/turf/open/space, +/area/space) "ciE" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 +/obj/structure/window/reinforced{ + dir = 1 }, -/area/shuttle/escape) +/obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped, +/turf/open/space, +/area/space) "ciF" = ( /obj/structure/shuttle/engine/propulsion, /turf/closed/wall/mineral/titanium, @@ -102645,20 +102639,20 @@ bOQ bnG bxg bxg -bTL +bxg bUR -bVY -bVY -bVY +aik +aik +aik bZc -bVY -bVY +aik +aik bZc -bVY -bVY -bVY +aik +aik +aik cdv -cdR +cen cen cen ceY @@ -103417,7 +103411,7 @@ bnG bRv bDA bTO -ahQ +ciD aab aab aab @@ -103428,7 +103422,7 @@ aab aab aab aab -cdy +ajH cdU ceq ceM @@ -103673,20 +103667,20 @@ bOU bnG bxg bxg -bTP -ahR -bVY -bVY -bVY +bxg +ciE +aik +aik +aik bZc -bVY -bVY +aik +aik bZc -bVY -bVY -bVY +aik +aik +aik cdz -cdV +cen cen ceN cfb diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c2885b4335d..a1d27ff3731 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -37682,22 +37682,20 @@ /turf/open/space, /area/space) "bnj" = ( -/obj/structure/transit_tube{ - icon_state = "E-SW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, /turf/open/space, /area/space) "bnk" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "bnl" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" +/obj/structure/transit_tube/curved{ + dir = 8 }, /turf/open/space, /area/space) @@ -38825,9 +38823,7 @@ /turf/open/space, /area/space) "bph" = ( -/obj/structure/transit_tube{ - icon_state = "NE-SW" - }, +/obj/structure/transit_tube/diagonal, /turf/open/space, /area/space) "bpi" = ( @@ -38853,9 +38849,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "S-NW" - }, +/obj/structure/transit_tube/curved/flipped, /turf/open/floor/plasteel/darkblue/corner{ dir = 1 }, @@ -40072,18 +40066,20 @@ /turf/closed/wall/r_wall, /area/space) "brs" = ( -/obj/structure/transit_tube/station{ - reverse_launch = 1 - }, /obj/structure/sign/securearea{ pixel_y = 32 }, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 + }, +/obj/structure/transit_tube_pod{ + dir = 4 + }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, /area/engine/break_room) "brt" = ( -/obj/structure/transit_tube, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40094,12 +40090,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "bru" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40110,10 +40104,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "brv" = ( -/obj/structure/transit_tube, /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -40124,12 +40118,10 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "brw" = ( -/obj/structure/transit_tube{ - icon_state = "W-NE-SE" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40140,6 +40132,9 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/junction/flipped{ + dir = 8 + }, /turf/open/space, /area/space) "brx" = ( @@ -40191,10 +40186,6 @@ /turf/open/space, /area/space) "brA" = ( -/obj/structure/transit_tube/station{ - icon_state = "closed"; - dir = 4 - }, /obj/structure/window/reinforced{ dir = 8 }, @@ -40207,6 +40198,9 @@ icon_state = "4-8"; pixel_y = 0 }, +/obj/structure/transit_tube/station{ + dir = 4 + }, /turf/open/floor/plasteel/black, /area/construction/hallway{ name = "\improper MiniSat Exterior" @@ -40941,10 +40935,6 @@ /turf/open/floor/wood, /area/crew_quarters/heads) "bsD" = ( -/obj/structure/transit_tube{ - dir = 4; - icon_state = "Block" - }, /obj/machinery/status_display{ density = 0; layer = 4; @@ -41621,12 +41611,12 @@ dir = 4; pixel_x = 0 }, -/obj/structure/transit_tube{ - icon_state = "W-SE" - }, /obj/machinery/ai_status_display{ pixel_y = 32 }, +/obj/structure/transit_tube/curved{ + dir = 8 + }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 }, @@ -41672,8 +41662,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "E-NW" +/obj/structure/transit_tube/curved{ + dir = 4 }, /turf/open/space, /area/space) @@ -41682,9 +41672,6 @@ dir = 4; pixel_x = 0 }, -/obj/structure/transit_tube{ - icon_state = "D-NE" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -41729,9 +41716,7 @@ /turf/open/space, /area/space) "btP" = ( -/obj/structure/transit_tube{ - icon_state = "NW-SE" - }, +/obj/structure/transit_tube/diagonal/topleft, /turf/open/space, /area/space) "btQ" = ( @@ -41748,8 +41733,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/transit_tube{ - icon_state = "N-SW" +/obj/structure/transit_tube/curved{ + dir = 1 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 8 @@ -42938,17 +42923,17 @@ /turf/open/space, /area/space) "bvL" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "bvM" = ( -/obj/structure/transit_tube{ - icon_state = "W-NE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, /turf/open/space, /area/space) "bvN" = ( @@ -42956,9 +42941,6 @@ dir = 1; pixel_y = 1 }, -/obj/structure/transit_tube{ - icon_state = "D-NW" - }, /obj/structure/lattice, /turf/open/space, /area/space) @@ -137700,7 +137682,7 @@ bhK cWO bhK brr -bsE +aOx btL aOx bjF @@ -141042,7 +141024,7 @@ aaa aaa aaf aaa -btN +brt aaa aaf aaa @@ -144125,9 +144107,9 @@ aaf aaa aaa aaf -bpg +aaa brw -btO +aaa aaf aaa aaa @@ -144381,11 +144363,11 @@ aaa aaf aaf aaf -bni +aaf bph -brx +bry btP -bvK +aaf aaa aaa aaa @@ -144639,9 +144621,9 @@ aaf aaa aaa bnj -bpi +aaa bry -bpf +aaa bvL aaa aaa @@ -145153,9 +145135,9 @@ bhM bhM aPX bnl -bpj +aOr brz -btQ +aOr bvM aaa aaa @@ -145409,7 +145391,7 @@ aNi bhN bhN aPX -bnm +aNi bpk brA btR diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index d23543cb8b4..d8c96381a3d 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -9028,10 +9028,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "tP" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/engine/engineering) "tQ" = ( @@ -9288,10 +9286,8 @@ }, /area/hallway/primary/central) "uw" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/tcommsat/computer) "ux" = ( @@ -12330,10 +12326,10 @@ }, /area/engine/engineering) "BH" = ( -/obj/structure/transit_tube/station/reverse{ - dir = 8; - icon_state = "closed" +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 }, +/obj/structure/transit_tube_pod, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -12446,10 +12442,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BW" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, -/obj/structure/transit_tube_pod, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -12535,8 +12528,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Ci" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" +/obj/structure/transit_tube/curved/flipped{ + dir = 1 }, /turf/open/space, /area/space) @@ -12576,10 +12569,10 @@ /turf/open/space, /area/space) "Cp" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, /turf/open/space, /area/space) "Cq" = ( @@ -12587,15 +12580,13 @@ /turf/open/space, /area/space) "Cr" = ( -/obj/structure/transit_tube{ - icon_state = "E-W-Pass" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "Cs" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" +/obj/structure/transit_tube/curved{ + dir = 8 }, /turf/open/space, /area/space) @@ -12658,10 +12649,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "CA" = ( -/obj/structure/transit_tube{ - icon_state = "S-NW" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped, /turf/open/space, /area/space) "CB" = ( @@ -13234,10 +13223,8 @@ /turf/open/floor/engine/vacuum, /area/engine/engineering) "DX" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/lattice, +/obj/structure/transit_tube/crossing, /turf/open/space, /area/space) "DY" = ( @@ -13287,10 +13274,10 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "Ee" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, /turf/open/space, /area/space) "Ef" = ( @@ -13367,8 +13354,8 @@ /turf/open/space, /area/space) "Eq" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" +/obj/structure/transit_tube/curved{ + dir = 4 }, /turf/open/space, /area/space) @@ -13380,15 +13367,15 @@ /turf/open/space, /area/space) "Es" = ( -/obj/structure/transit_tube, /obj/structure/lattice, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "Et" = ( -/obj/structure/transit_tube{ - icon_state = "W-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 8 + }, /turf/open/space, /area/space) "Eu" = ( @@ -13435,10 +13422,8 @@ }, /area/tcommsat/computer) "EB" = ( -/obj/structure/transit_tube{ - icon_state = "NW-SE" - }, /obj/structure/lattice, +/obj/structure/transit_tube/diagonal/topleft, /turf/open/space, /area/space) "EC" = ( @@ -13625,9 +13610,7 @@ /turf/open/floor/plasteel/black, /area/engine/gravity_generator) "Fh" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -13747,9 +13730,8 @@ /turf/open/floor/plating, /area/space) "Fw" = ( -/obj/structure/transit_tube/station/reverse{ - icon_state = "closed"; - dir = 4 +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 8 }, /turf/open/floor/plating/warnplate{ dir = 4 @@ -13852,10 +13834,6 @@ /turf/closed/wall/mineral/plastitanium, /area/space) "FK" = ( -/obj/structure/transit_tube{ - icon_state = "Block"; - dir = 1 - }, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -14521,8 +14499,9 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "Hk" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/supply) +/obj/structure/transit_tube/horizontal, +/turf/open/space, +/area/space) "Hl" = ( /obj/structure/shuttle/engine/heater{ icon_state = "heater"; @@ -50249,7 +50228,7 @@ BH BW tP Ci -Co +am am yB CY @@ -50505,7 +50484,7 @@ qI qI qI yB -Cj +aa Cp am yB @@ -50763,7 +50742,7 @@ aa aa aa aa -Cq +Hk am yB CX @@ -51020,7 +50999,7 @@ aa aa aa aa -Cq +Hk am yB Da @@ -51277,7 +51256,7 @@ aa aa aa aa -Cq +Hk am yB yB @@ -51791,7 +51770,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52048,7 +52027,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52305,7 +52284,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52562,7 +52541,7 @@ aa aa aa aa -Cq +Hk am aa aa @@ -52820,7 +52799,7 @@ aa aa aa Cs -Co +am am aa aa @@ -53076,21 +53055,21 @@ aa aa aa aa -Cj +aa CA -CK -Db -Db -Db -Db +Cq +Cq +Cq +Cq +Cq DX -DZ DX -Db -Db -Db +DX +Cq +Cq +Cq Ee -Ep +aa aa aa aa @@ -53346,7 +53325,7 @@ am am am am -Ef +am Eq aa aa @@ -53604,7 +53583,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -53861,7 +53840,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -54118,7 +54097,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54375,7 +54354,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54632,7 +54611,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -54889,7 +54868,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55146,7 +55125,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55403,7 +55382,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -55660,7 +55639,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -55917,7 +55896,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56174,7 +56153,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56431,7 +56410,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56688,7 +56667,7 @@ aa aa aa am -Cq +Hk aa aa aa @@ -56945,7 +56924,7 @@ aa aa aa am -Er +Cr aa aa aa @@ -57460,7 +57439,7 @@ aa aa am Et -Co +am am am am @@ -57716,9 +57695,9 @@ aa aa aa am -Ef +am EB -Co +am Ea uR uR @@ -57974,7 +57953,7 @@ aa aa am am -Ef +am CA uw Fh diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index fc536d95b46..79b7ff1fe2c 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2349,9 +2349,6 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) "afs" = ( -/obj/structure/transit_tube{ - icon_state = "Block" - }, /turf/open/floor/plating/warnplate{ dir = 9 }, @@ -2466,10 +2463,8 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "afL" = ( -/obj/structure/transit_tube/station{ - dir = 8; - icon_state = "closed"; - reverse_launch = 1 +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 }, /turf/open/floor/plating/warnplate{ dir = 8 @@ -2582,9 +2577,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "aga" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -2677,9 +2670,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "agk" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "agl" = ( @@ -2837,9 +2828,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "agz" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/airless, /area/space) "agA" = ( @@ -3063,9 +3052,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "agY" = ( -/obj/structure/transit_tube{ - icon_state = "N-S-Pass" - }, +/obj/structure/transit_tube/crossing, /turf/open/floor/plating/airless, /area/space) "agZ" = ( @@ -9822,9 +9809,7 @@ /area/bridge) "aud" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/bridge) "aue" = ( @@ -10362,9 +10347,7 @@ /turf/open/floor/plasteel, /area/bridge) "auZ" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -10777,10 +10760,8 @@ /area/bridge) "avY" = ( /obj/structure/transit_tube_pod, -/obj/structure/transit_tube/station{ - dir = 8; - icon_state = "closed"; - reverse_launch = 1 +/obj/structure/transit_tube/station/reverse{ + dir = 8 }, /turf/open/floor/plating/warnplate{ dir = 8 @@ -11452,11 +11433,6 @@ /turf/open/floor/plasteel, /area/bridge) "axn" = ( -/obj/structure/transit_tube{ - tag = "icon-Block (NORTH)"; - icon_state = "Block"; - dir = 1 - }, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -47085,9 +47061,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "bRV" = ( -/obj/structure/transit_tube{ - icon_state = "Block" - }, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating/warnplate{ dir = 4 @@ -47236,10 +47209,8 @@ /area/maintenance/aft) "bSm" = ( /obj/structure/transit_tube_pod, -/obj/structure/transit_tube/station{ - dir = 4; - icon_state = "closed"; - reverse_launch = 1 +/obj/structure/transit_tube/station/reverse{ + dir = 4 }, /turf/open/floor/plating/warnplate{ dir = 4 @@ -47351,9 +47322,7 @@ /turf/open/space, /area/space) "bSx" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -47446,9 +47415,7 @@ /area/engine/engineering) "bSJ" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/engine/engineering) "bSK" = ( @@ -47512,9 +47479,7 @@ /turf/open/floor/plating/airless, /area/engine/engineering) "bSQ" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/space) "bSR" = ( @@ -47729,9 +47694,7 @@ name = "Bomb Testing Asteroid" }) "bTo" = ( -/obj/structure/transit_tube{ - icon_state = "N-S-Pass" - }, +/obj/structure/transit_tube/crossing, /turf/open/floor/plating, /area/space) "bTp" = ( @@ -48007,10 +47970,8 @@ /turf/open/floor/plating, /area/tcommsat/computer) "bTZ" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/tcommsat/computer) "bUa" = ( @@ -48045,9 +48006,7 @@ /turf/open/floor/plating, /area/tcommsat/computer) "bUe" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -48092,10 +48051,8 @@ /turf/open/space, /area/space) "bUm" = ( -/obj/structure/transit_tube/station{ - dir = 4; - icon_state = "closed"; - reverse_launch = 1 +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 8 }, /turf/open/floor/plating/warnplate{ dir = 4 @@ -48153,11 +48110,6 @@ /turf/open/floor/plating, /area/tcommsat/computer) "bUt" = ( -/obj/structure/transit_tube{ - tag = "icon-Block (NORTH)"; - icon_state = "Block"; - dir = 1 - }, /turf/open/floor/plating/warnplate{ dir = 4 }, @@ -48811,579 +48763,143 @@ /obj/item/weapon/stock_parts/scanning_module, /turf/open/floor/plasteel/black, /area/tcommsat/server) -"bXN" = ( -/obj/item/weapon/wrench, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bXM" = ( -/turf/open/floor/plasteel/warning{ - dir = 4 - }, -/area/assembly/chargebay) -"bXL" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -29 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"bXK" = ( -/obj/structure/chair, -/obj/structure/sign/poster{ - pixel_x = 32 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/apmaint) -"bXJ" = ( -/obj/item/chair, -/obj/item/trash/popcorn, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg3" - }, -/area/maintenance/apmaint) -"bXI" = ( -/obj/structure/closet/radiation, -/obj/structure/sign/poster{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bXH" = ( -/obj/item/trash/tray, -/obj/item/weapon/reagent_containers/food/snacks/badrecipe, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bXG" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark{ - name = "JoinLate" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"bXF" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Arrivals Shuttle Airlock" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"bXE" = ( -/turf/open/floor/plasteel/warning{ - dir = 5 - }, -/area/assembly/chargebay) -"bXD" = ( -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bXC" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = 27 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bXB" = ( -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bXA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bXz" = ( -/turf/closed/wall/r_wall, -/area/library{ - name = "Lounge" - }) -"bXy" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"bXx" = ( -/obj/machinery/airalarm{ - pixel_y = 22 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"bXw" = ( -/obj/structure/frame/machine, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bXv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/bar) -"bXu" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/green/side, -/area/hydroponics) -"bXt" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXs" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXr" = ( -/obj/structure/disposalpipe/segment{ +"bVS" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat External Port"; dir = 8; - icon_state = "pipe-c" + network = list("MiniSat") }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/turf/open/space, +/area/space) +"bVT" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_command{ + name = "AI Core"; + req_access_txt = "65" }, -/obj/machinery/firealarm{ +/turf/open/floor/plasteel/white, +/area/wreck/ai) +"bVU" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat External Starboard"; dir = 4; - pixel_x = -28 + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"bVV" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/bluegrid, +/area/wreck/ai) +"bVW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 }, /turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bXo" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bXn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bXm" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/bar) -"bXl" = ( -/obj/machinery/door/airlock/glass{ - name = "Kitchen"; - req_access_txt = "25;28" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/kitchen) -"bXk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hydroponics) -"bXj" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hydroponics) -"bXi" = ( -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg3" - }, -/area/maintenance/apmaint) -"bXh" = ( -/turf/open/floor/plating{ - burnt = 1; - icon_state = "panelscorched" - }, -/area/maintenance/apmaint) -"bXg" = ( -/obj/structure/chair/stool, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/bar) -"bXf" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXe" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/bar) -"bXd" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bXc" = ( -/obj/machinery/newscaster{ - pixel_y = 1 - }, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"bXb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/poster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bXa" = ( -/obj/structure/table/wood/fancy, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/bar) -"bWZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bWY" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/hydroponics) -"bWX" = ( -/obj/effect/landmark/start{ - name = "Botanist" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hydroponics) -"bWW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/wood/normal, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bWV" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/barman_recipes, -/obj/item/weapon/reagent_containers/glass/rag, -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/crew_quarters/bar) -"bWU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bWT" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hydroponics) -"bWS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/hallway/secondary/entry) -"bWR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bWQ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/hydroponics) -"bWP" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/hydroponics) -"bWO" = ( -/obj/structure/grille/broken, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWN" = ( -/obj/item/device/flashlight/lantern, -/obj/structure/window/reinforced, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bWM" = ( -/obj/structure/window/reinforced, -/obj/item/device/flashlight/lantern, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bWL" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"bWK" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint2{ - name = "Customs" - }) -"bWJ" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/exit{ - name = "\improper Departure Lounge" - }) -"bWI" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar) -"bWG" = ( -/obj/structure/closet, -/obj/item/weapon/canvas/twentythreeXnineteen, -/obj/item/weapon/canvas/nineteenXnineteen, -/obj/item/weapon/canvas/twentythreeXtwentythree, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWF" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWE" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bWD" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Cargo Hold"; - req_access_txt = "0" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"bWC" = ( +/area/wreck/ai) +"bVX" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/teleporter) -"bWB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bWA" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"bWz" = ( -/obj/machinery/camera{ - c_tag = "Dormitory Toilets"; - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet{ - name = "\improper Restrooms" - }) -"bWy" = ( -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, /turf/open/floor/plating, -/area/maintenance/apmaint) -"bWx" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; +/area/wreck/ai) +"bVY" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/AIsatextAP) +"bVZ" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Entrance"; + dir = 2; + network = list("MiniSat") + }, +/turf/open/space, +/area/space) +"bWa" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bWb" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bWc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/barsign, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bWd" = ( +/turf/closed/wall/r_wall, +/area/security/hos) +"bWe" = ( +/obj/machinery/button/door{ + id = "supplybridge"; + name = "Space Bridge Control"; + pixel_x = 0; + pixel_y = -27; req_access_txt = "13" }, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWw" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - req_access_txt = "13" +/turf/open/space, +/area/space) +"bWf" = ( +/obj/effect/landmark/start{ + name = "Security Officer" }, -/turf/open/floor/plating, -/area/maintenance/apmaint) -"bWv" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet{ - name = "\improper Restrooms" - }) -"bWu" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg3" - }, -/area/maintenance/fpmaint2{ - name = "Brig Maintenance" - }) -"bWt" = ( -/obj/machinery/porta_turret/ai{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue, -/area/ai_monitored/turret_protected/ai_upload) -"bWs" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fpmaint2{ - name = "Brig Maintenance" - }) -"bWr" = ( -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg3" - }, -/area/maintenance/fpmaint2{ - name = "Brig Maintenance" - }) -"bWq" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bWp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 +/area/security/main) +"bWg" = ( +/obj/effect/landmark/start{ + name = "Security Officer" }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fpmaint2{ - name = "Brig Maintenance" - }) -"bWo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating{ - broken = 1; - icon_state = "platingdmg1" - }, -/area/maintenance/fpmaint2{ - name = "Brig Maintenance" - }) -"bWn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bWh" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -24 }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bWi" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = -22; + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"bWj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bWk" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"bWl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/crew_quarters/sleep) "bWm" = ( @@ -49400,145 +48916,581 @@ dir = 4 }, /area/bridge) -"bWl" = ( +"bWn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bWo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWq" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWr" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWs" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWt" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue, +/area/ai_monitored/turret_protected/ai_upload) +"bWu" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2{ + name = "Brig Maintenance" + }) +"bWv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bWw" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWx" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWy" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWz" = ( +/obj/machinery/camera{ + c_tag = "Dormitory Toilets"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bWA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bWB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bWC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/teleporter) +"bWD" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cargo Hold"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bWE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bWF" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWG" = ( +/obj/structure/closet, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bWI" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWJ" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bWK" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"bWL" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hydroponics) +"bWM" = ( +/obj/structure/window/reinforced, +/obj/item/device/flashlight/lantern, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bWN" = ( +/obj/item/device/flashlight/lantern, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bWO" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bWP" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/hydroponics) +"bWQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hydroponics) +"bWR" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bWS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bWT" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bWU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bWV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/crew_quarters/bar) +"bWW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bWX" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hydroponics) +"bWY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bWZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXa" = ( +/obj/structure/table/wood/fancy, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bXb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"bXc" = ( +/obj/machinery/newscaster{ + pixel_y = 1 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bXd" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXe" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bXf" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXg" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"bXh" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"bXi" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bXj" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hydroponics) +"bXk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hydroponics) +"bXl" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen"; + req_access_txt = "25;28" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bXm" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"bXn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bXp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/machinery/holopad, /turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"bWk" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fore) -"bWj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"bWi" = ( -/obj/item/weapon/storage/secure/safe{ - pixel_x = -22; - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkred/side, -/area/security/hos) -"bWh" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"bWg" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/area/hallway/primary/central) +"bXq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/main) -"bWf" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ +/obj/machinery/firealarm{ dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/main) -"bWe" = ( -/obj/machinery/button/door{ - id = "supplybridge"; - name = "Space Bridge Control"; - pixel_x = 0; - pixel_y = -27; - req_access_txt = "13" - }, -/turf/open/space, -/area/space) -"bWd" = ( -/turf/closed/wall/r_wall, -/area/security/hos) -"bWc" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/barsign, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"bWb" = ( -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"bWa" = ( -/obj/structure/closet/l3closet, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"bVZ" = ( -/obj/structure/lattice, -/obj/machinery/camera/motion{ - c_tag = "MiniSat Entrance"; - dir = 2; - network = list("MiniSat") - }, -/turf/open/space, -/area/space) -"bVY" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAP) -"bVX" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/wreck/ai) -"bVW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/black, -/area/wreck/ai) -"bVV" = ( -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/bluegrid, -/area/wreck/ai) -"bVU" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat External Starboard"; - dir = 4; - network = list("MiniSat") - }, -/turf/open/space, -/area/space) -"bVT" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/glass_command{ - name = "AI Core"; - req_access_txt = "65" - }, -/turf/open/floor/plasteel/white, -/area/wreck/ai) -"bVS" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat External Port"; +/area/crew_quarters/bar) +"bXr" = ( +/obj/structure/disposalpipe/segment{ dir = 8; - network = list("MiniSat") + icon_state = "pipe-c" }, -/turf/open/space, -/area/space) +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXs" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXt" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar) +"bXu" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"bXv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"bXw" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXx" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bXy" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bXz" = ( +/turf/closed/wall/r_wall, +/area/library{ + name = "Lounge" + }) +"bXA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXB" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bXC" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = 27 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bXD" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bXE" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/assembly/chargebay) +"bXF" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bXG" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bXH" = ( +/obj/item/trash/tray, +/obj/item/weapon/reagent_containers/food/snacks/badrecipe, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXI" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"bXJ" = ( +/obj/item/chair, +/obj/item/trash/popcorn, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"bXK" = ( +/obj/structure/chair, +/obj/structure/sign/poster{ + pixel_x = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"bXL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"bXM" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/assembly/chargebay) +"bXN" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/apmaint) (1,1,1) = {" aaa diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 44ae17c2bb2..903cc198fdc 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -55526,9 +55526,6 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "crh" = ( -/obj/structure/transit_tube{ - icon_state = "Block" - }, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -55671,12 +55668,10 @@ /turf/open/floor/plasteel/warning, /area/hallway/secondary/entry) "crA" = ( -/obj/structure/transit_tube/station{ - dir = 8; - icon_state = "closed"; - reverse_launch = 1 - }, /obj/structure/transit_tube_pod, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 + }, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -55835,9 +55830,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "crR" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, +/obj/structure/transit_tube, /turf/open/floor/plating/warnplate{ dir = 8 }, @@ -55884,10 +55877,8 @@ /turf/open/floor/plating, /area/engine/engineering) "crY" = ( -/obj/structure/transit_tube{ - icon_state = "N-S" - }, /obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, /turf/open/floor/plating, /area/engine/engineering) "crZ" = ( @@ -55973,8 +55964,8 @@ /turf/open/space, /area/space) "csi" = ( -/obj/structure/transit_tube{ - icon_state = "N-SE" +/obj/structure/transit_tube/curved/flipped{ + dir = 1 }, /turf/open/space, /area/space) @@ -55987,8 +55978,8 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "csl" = ( -/obj/structure/transit_tube{ - icon_state = "E-NW" +/obj/structure/transit_tube/curved{ + dir = 4 }, /turf/open/space, /area/space) @@ -55999,12 +55990,12 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "csn" = ( -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/space, /area/space) "cso" = ( -/obj/structure/transit_tube, /obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "csp" = ( @@ -56200,18 +56191,18 @@ /turf/open/space, /area/space) "csM" = ( -/obj/structure/transit_tube, /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space) "csN" = ( -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csO" = ( /obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csP" = ( @@ -56240,9 +56231,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csU" = ( -/obj/structure/transit_tube/station{ - reverse_launch = 1 - }, +/obj/structure/transit_tube/station/reverse, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csV" = ( @@ -94052,7 +94041,7 @@ crA crR crY csi -csL +aaa aaa aaf aag @@ -94308,7 +94297,7 @@ cqY cqY cqY cig -csh +aaa csl aaa aaf @@ -95080,7 +95069,7 @@ aaa aaa aaf aaa -csp +csn aaa aaf aag @@ -96108,7 +96097,7 @@ aaa aaa aaf aaa -csp +csn aaa aaf aag @@ -97136,7 +97125,7 @@ aaa aaa aaf aaa -csp +csn aaa aaf aag @@ -99449,7 +99438,7 @@ aaa aaa aaf csD -csT +ctb csV ctb ctj diff --git a/code/__DEFINES/pipe_construction.dm b/code/__DEFINES/pipe_construction.dm index f19c19824ab..84c4563bf2f 100644 --- a/code/__DEFINES/pipe_construction.dm +++ b/code/__DEFINES/pipe_construction.dm @@ -38,4 +38,21 @@ Construction breaks otherwise #define DISP_END_OUTLET 7 #define DISP_END_CHUTE 8 #define DISP_SORTJUNCTION 9 -#define DISP_SORTJUNCTION_FLIP 10 \ No newline at end of file +#define DISP_SORTJUNCTION_FLIP 10 + +//Transit tubes +#define TRANSIT_TUBE_STRAIGHT 0 +#define TRANSIT_TUBE_STRAIGHT_CROSSING 1 +#define TRANSIT_TUBE_CURVED 2 +#define TRANSIT_TUBE_DIAGONAL 3 +#define TRANSIT_TUBE_DIAGONAL_CROSSING 4 +#define TRANSIT_TUBE_JUNCTION 5 +#define TRANSIT_TUBE_STATION 6 +#define TRANSIT_TUBE_TERMINUS 7 +#define TRANSIT_TUBE_POD 8 + +//the open status of the transit tube station +#define STATION_TUBE_OPEN 0 +#define STATION_TUBE_OPENING 1 +#define STATION_TUBE_CLOSED 2 +#define STATION_TUBE_CLOSING 3 \ No newline at end of file diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index a0219d21cb3..fbc398239d9 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -347,53 +347,6 @@ for(var/t in test_times) /proc/isLeap(y) return ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) -// A copy of text2dir, extended to accept one and two letter -// directions, and to clearly return 0 otherwise. -/proc/text2dir_extended(direction) - switch(uppertext(direction)) - if("NORTH", "N") - return 1 - if("SOUTH", "S") - return 2 - if("EAST", "E") - return 4 - if("WEST", "W") - return 8 - if("NORTHEAST", "NE") - return 5 - if("NORTHWEST", "NW") - return 9 - if("SOUTHEAST", "SE") - return 6 - if("SOUTHWEST", "SW") - return 10 - else - return 0 - - - -// A copy of dir2text, which returns the short one or two letter -// directions used in tube icon states. -/proc/dir2text_short(direction) - switch(direction) - if(1) - return "N" - if(2) - return "S" - if(4) - return "E" - if(8) - return "W" - if(5) - return "NE" - if(6) - return "SE" - if(9) - return "NW" - if(10) - return "SW" - else - return //Turns a Body_parts_covered bitfield into a list of organ/limb names. diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index f0d948b3948..1e280750ff9 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -60,13 +60,13 @@ if(state_open) icon_state += "-open" -/obj/machinery/sleeper/container_resist() +/obj/machinery/sleeper/container_resist(mob/living/user) visible_message("[occupant] emerges from [src]!", "You climb out of [src]!") open_machine() /obj/machinery/sleeper/relaymove(mob/user) - container_resist() + container_resist(user) /obj/machinery/sleeper/open_machine() if(!state_open && !panel_open) diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 327ded8f465..ffde197e872 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -78,8 +78,7 @@ open_machine() -/obj/machinery/dna_scannernew/container_resist() - var/mob/living/user = usr +/obj/machinery/dna_scannernew/container_resist(mob/living/user) var/breakout_time = 2 if(state_open || !locked) //Open and unlocked, no need to escape state_open = 1 diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 713e8580cff..2f24b031074 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -195,16 +195,16 @@ Nah return 1 var/dat = {"Transit Tubes:
-Straight Tube
-Straight Tube with Crossing
-Curved Tube
-Diagonal Tube
-Junction
+Straight Tube
+Straight Tube with Crossing
+Curved Tube
+Diagonal Tube
+Diagonal Tube with Crossing
+Junction
Station Equipment:
-Through Tube Station
-Terminus Tube Station
-Tube Blocker
-Transit Tube Pod
+Through Tube Station
+Terminus Tube Station
+Transit Tube Pod
"} user << browse("[src][dat]", "window=pipedispenser") @@ -219,34 +219,28 @@ Nah if(!wait) if(href_list["tube"]) var/tube_type = text2num(href_list["tube"]) - if(tube_type <= 4) - var/obj/structure/c_transit_tube/C = new/obj/structure/c_transit_tube(src.loc) - switch(tube_type) - if(0) - C.icon_state = "E-W" - if(1) - C.icon_state = "E-W-Pass" - if(2) - C.icon_state = "S-NE" - if(3) - C.icon_state = "NE-SW" - if(4) - C.icon_state = "W-NE-SE" + var/obj/structure/C + switch(tube_type) + if(TRANSIT_TUBE_STRAIGHT) + C = new /obj/structure/c_transit_tube(loc) + if(TRANSIT_TUBE_STRAIGHT_CROSSING) + C = new /obj/structure/c_transit_tube/crossing(loc) + if(TRANSIT_TUBE_CURVED) + C = new /obj/structure/c_transit_tube/curved(loc) + if(TRANSIT_TUBE_DIAGONAL) + C = new /obj/structure/c_transit_tube/diagonal(loc) + if(TRANSIT_TUBE_DIAGONAL_CROSSING) + C = new /obj/structure/c_transit_tube/diagonal/crossing(loc) + if(TRANSIT_TUBE_JUNCTION) + C = new /obj/structure/c_transit_tube/junction(loc) + if(TRANSIT_TUBE_STATION) + C = new /obj/structure/c_transit_tube/station(loc) + if(TRANSIT_TUBE_TERMINUS) + C = new /obj/structure/c_transit_tube/station/reverse(loc) + if(TRANSIT_TUBE_POD) + C = new /obj/structure/c_transit_tube_pod(loc) + if(C) C.add_fingerprint(usr) - else - switch(tube_type) - if(5) - var/obj/structure/c_transit_tube/station/C = new/obj/structure/c_transit_tube/station(src.loc) - C.add_fingerprint(usr) - if(6) - var/obj/structure/c_transit_tube/station/reverse/C = new/obj/structure/c_transit_tube/station/reverse(src.loc) - C.add_fingerprint(usr) - if(7) - var/obj/structure/c_transit_tube/station/block/C = new/obj/structure/c_transit_tube/station/block(src.loc) - C.add_fingerprint(usr) - if(8) - var/obj/structure/c_transit_tube_pod/C = new/obj/structure/c_transit_tube_pod(src.loc) - C.add_fingerprint(usr) wait = 1 spawn(15) wait = 0 diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e6e918aeebf..f489ba77993 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -257,10 +257,9 @@ return 1 /obj/machinery/suit_storage_unit/relaymove(mob/user) - container_resist() + container_resist(user) -/obj/machinery/suit_storage_unit/container_resist() - var/mob/living/user = usr +/obj/machinery/suit_storage_unit/container_resist(mob/living/user) add_fingerprint(user) if(locked) visible_message("You see [user] kicking against the doors of [src]!", "You start kicking against the doors...") diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 2347ed99fb5..d5c7528ff3e 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -169,7 +169,7 @@ /obj/machinery/washing_machine/relaymove(mob/user) container_resist(user) -/obj/machinery/washing_machine/container_resist(mob/user) +/obj/machinery/washing_machine/container_resist(mob/living/user) if(!busy) add_fingerprint(user) open_machine() diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index af916014ca2..0f3e88fcfb6 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -212,7 +212,7 @@ return 1 return -/obj/item/mecha_parts/mecha_equipment/medical/sleeper/container_resist() +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/container_resist(mob/living/user) go_out() /obj/item/mecha_parts/mecha_equipment/medical/sleeper/process() diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index fef5921b1ea..a4f7cd62457 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -886,7 +886,7 @@ else return 0 -/obj/mecha/container_resist() +/obj/mecha/container_resist(mob/living/user) go_out() diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index ec70faca2da..7b208c7fca6 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -190,8 +190,7 @@ /obj/structure/spider/cocoon/New() icon_state = pick("cocoon1","cocoon2","cocoon3") -/obj/structure/spider/cocoon/container_resist() - var/mob/living/user = usr +/obj/structure/spider/cocoon/container_resist(mob/living/user) var/breakout_time = 1 user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 60bd02fc777..f1952affa8e 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -51,7 +51,7 @@ data["ready_implants"] = ready_implants data["ready"] = ready data["replenishing"] = replenishing - + return data /obj/machinery/implantchair/ui_act(action, params) @@ -114,8 +114,7 @@ ready = TRUE update_icon() -/obj/machinery/implantchair/container_resist() - var/mob/living/user = usr +/obj/machinery/implantchair/container_resist(mob/living/user) if(state_open) return user.changeNext_move(CLICK_CD_BREAKOUT) @@ -131,7 +130,7 @@ open_machine() /obj/machinery/implantchair/relaymove(mob/user) - container_resist() + container_resist(user) /obj/machinery/implantchair/MouseDrop_T(mob/target, mob/user) if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) @@ -189,4 +188,3 @@ log_game("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") return 1 - \ No newline at end of file diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 5dc5e6c1722..626c5bb1917 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -126,7 +126,7 @@ return ..() -/obj/proc/container_resist() +/obj/proc/container_resist(mob/living/user) return /obj/proc/update_icon() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index cc76039228d..fcc933460e6 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -80,12 +80,12 @@ new /obj/item/stack/sheet/metal (loc, 5) qdel(src) -/obj/structure/bodycontainer/container_resist() +/obj/structure/bodycontainer/container_resist(mob/living/user) open() /obj/structure/bodycontainer/relay_container_resist(mob/living/user, obj/O) user << "You slam yourself into the side of [O]." - container_resist() + container_resist(user) /obj/structure/bodycontainer/proc/open() playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 3155c49b9be..a9f758cf01d 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -2,17 +2,21 @@ // A place where tube pods stop, and people can get in or out. // Mappers: use "Generate Instances from Directions" for this // one. + + /obj/structure/transit_tube/station name = "station tube station" - icon = 'icons/obj/atmospherics/pipes/transit_tube_station.dmi' - icon_state = "closed" + icon_state = "closed_station0" exit_delay = 1 enter_delay = 2 tube_construction = /obj/structure/c_transit_tube/station + var/open_status = STATION_TUBE_CLOSED var/pod_moving = 0 var/cooldown_delay = 50 var/launch_cooldown = 0 var/reverse_launch = 0 + var/base_icon = "station0" + var/boarding_dir //from which direction you can board the tube var/const/OPEN_DURATION = 6 var/const/CLOSE_DURATION = 6 @@ -25,19 +29,15 @@ STOP_PROCESSING(SSobj, src) return ..() -// Stations which will send the tube in the opposite direction after their stop. -/obj/structure/transit_tube/station/reverse - tube_construction = /obj/structure/c_transit_tube/station/reverse - reverse_launch = 1 - /obj/structure/transit_tube/station/should_stop_pod(pod, from_dir) return 1 -/obj/structure/transit_tube/station/Bumped(mob/AM as mob|obj) - if(!pod_moving && icon_state == "open" && istype(AM, /mob)) +/obj/structure/transit_tube/station/Bumped(atom/movable/AM) + if(!pod_moving && open_status == STATION_TUBE_OPEN && ismob(AM) && AM.dir == boarding_dir) for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && pod.dir in directions()) - AM.loc = pod + if(!pod.moving) + AM.forceMove(pod) + pod.update_icon() return @@ -49,19 +49,18 @@ return for(var/obj/structure/transit_tube_pod/pod in loc) return //no fun allowed - var/obj/structure/transit_tube_pod/T = new/obj/structure/transit_tube_pod(src) - R.transfer_fingerprints_to(T) - T.add_fingerprint(user) - T.loc = src.loc - T.setDir(turn(src.dir, -90)) - user.visible_message("[user] inserts the [R].", "You insert the [R].") + var/obj/structure/transit_tube_pod/TP = new(loc) + R.transfer_fingerprints_to(TP) + TP.add_fingerprint(user) + TP.setDir(turn(src.dir, -90)) + user.visible_message("[user] inserts [R].", "You insert [R].") qdel(R) /obj/structure/transit_tube/station/attack_hand(mob/user) if(!pod_moving) if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) - if(icon_state == "open") + if(open_status == STATION_TUBE_OPEN) var/mob/living/GM = user.pulling if(user.grab_state >= GRAB_AGGRESSIVE) if(GM.buckled || GM.has_buckled_mobs()) @@ -70,26 +69,23 @@ for(var/obj/structure/transit_tube_pod/pod in loc) pod.visible_message("[user] starts putting [GM] into the [pod]!") if(do_after(user, 15, target = src)) - if(GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs()) + if(open_status == STATION_TUBE_OPEN && GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs()) GM.Weaken(5) src.Bumped(GM) break else for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && pod.dir in directions()) - if(icon_state == "closed") + if(!pod.moving && (pod.dir in tube_dirs)) + if(open_status == STATION_TUBE_CLOSED) open_animation() - else if(icon_state == "open") + else if(open_status == STATION_TUBE_OPEN) if(pod.contents.len && user.loc != pod) user.visible_message("[user] starts emptying [pod]'s contents onto the floor.", "You start emptying [pod]'s contents onto the floor...") if(do_after(user, 10, target = src)) //So it doesn't default to close_animation() on fail - if(pod.loc == loc) + if(pod && pod.loc == loc) for(var/atom/movable/AM in pod) - AM.loc = get_turf(user) - if(ismob(AM)) - var/mob/M = AM - M.Weaken(5) + AM.forceMove(get_turf(user)) else close_animation() @@ -98,46 +94,41 @@ /obj/structure/transit_tube/station/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weapon/crowbar)) - for(var/obj/structure/transit_tube_pod/pod in loc) - if(pod.contents) - user << "Empty the pod first!" - return - user.visible_message("[user] removes the [pod].", "You remove the [pod].") - var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc) - pod.transfer_fingerprints_to(R) - R.add_fingerprint(user) - qdel(pod) + for(var/obj/structure/transit_tube_pod/P in loc) + P.deconstruct(FALSE, user) else return ..() /obj/structure/transit_tube/station/proc/open_animation() - if(icon_state == "closed") - icon_state = "opening" + if(open_status == STATION_TUBE_CLOSED) + icon_state = "opening_[base_icon]" + open_status = STATION_TUBE_OPENING spawn(OPEN_DURATION) - if(icon_state == "opening") - icon_state = "open" - + if(open_status == STATION_TUBE_OPENING) + icon_state = "open_[base_icon]" + open_status = STATION_TUBE_OPEN /obj/structure/transit_tube/station/proc/close_animation() - if(icon_state == "open") - icon_state = "closing" + if(open_status == STATION_TUBE_OPEN) + icon_state = "closing_[base_icon]" + open_status = STATION_TUBE_CLOSING spawn(CLOSE_DURATION) - if(icon_state == "closing") - icon_state = "closed" - + if(open_status == STATION_TUBE_CLOSING) + icon_state = "closed_[base_icon]" + open_status = STATION_TUBE_CLOSED /obj/structure/transit_tube/station/proc/launch_pod() if(launch_cooldown >= world.time) return for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && turn(pod.dir, (reverse_launch ? 180 : 0)) in directions()) + if(!pod.moving) pod_moving = 1 close_animation() sleep(CLOSE_DURATION + 2) - if(icon_state == "closed" && pod) - pod.follow_tube(reverse_launch) + if(open_status == STATION_TUBE_CLOSED && pod && pod.loc == loc) + pod.follow_tube() pod_moving = 0 return 1 return 0 @@ -149,13 +140,63 @@ /obj/structure/transit_tube/station/pod_stopped(obj/structure/transit_tube_pod/pod, from_dir) pod_moving = 1 spawn(5) + if(reverse_launch) + pod.setDir(tube_dirs[1]) //turning the pod around for next launch. launch_cooldown = world.time + cooldown_delay open_animation() sleep(OPEN_DURATION + 2) pod_moving = 0 - pod.mix_air() + if(!qdeleted(pod)) + pod.mix_air() + +/obj/structure/transit_tube/station/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(EAST, WEST) + if(SOUTH) + tube_dirs = list(EAST, WEST) + if(EAST) + tube_dirs = list(NORTH, SOUTH) + if(WEST) + tube_dirs = list(NORTH, SOUTH) + boarding_dir = turn(dir, 180) + + +/obj/structure/transit_tube/station/flipped + icon_state = "closed_station1" + base_icon = "station1" + tube_construction = /obj/structure/c_transit_tube/station/flipped + +/obj/structure/transit_tube/station/flipped/init_tube_dirs() + ..() + boarding_dir = dir + + +// Stations which will send the tube in the opposite direction after their stop. +/obj/structure/transit_tube/station/reverse + tube_construction = /obj/structure/c_transit_tube/station/reverse + reverse_launch = 1 + icon_state = "closed_terminus0" + base_icon = "terminus0" + +/obj/structure/transit_tube/station/reverse/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(EAST) + if(SOUTH) + tube_dirs = list(WEST) + if(EAST) + tube_dirs = list(SOUTH) + if(WEST) + tube_dirs = list(NORTH) + boarding_dir = turn(dir, 180) + +/obj/structure/transit_tube/station/reverse/flipped + icon_state = "closed_terminus1" + base_icon = "terminus1" + tube_construction = /obj/structure/c_transit_tube/station/reverse/flipped + +/obj/structure/transit_tube/station/reverse/flipped/init_tube_dirs() + ..() + boarding_dir = dir -// Tube station directions are simply 90 to either side of -// the exit. -/obj/structure/transit_tube/station/init_dirs() - tube_dirs = list(turn(dir, 90), turn(dir, -90)) \ No newline at end of file diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm index 78cdd062fc4..8391f1b6819 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube.dm @@ -1,66 +1,52 @@ -// Basic transit tubes. Straight pieces, curved sections, -// and basic splits/joins (no routing logic). -// Mappers: you can use "Generate Instances from Icon-states" -// to get the different pieces. + /obj/structure/transit_tube + name = "transit tube" icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' - icon_state = "E-W" + icon_state = "straight" density = 1 - layer = ABOVE_OBJ_LAYER + layer = LOW_ITEM_LAYER anchored = 1 + climbable = 1 var/tube_construction = /obj/structure/c_transit_tube - var/list/tube_dirs = null + var/list/tube_dirs //list of directions this tube section can connect to. var/exit_delay = 1 var/enter_delay = 0 - // alldirs in global.dm is the same list of directions, but since - // the specific order matters to get a usable icon_state, it is - // copied here so that, in the unlikely case that alldirs is changed, - // this continues to work. - var/global/list/tube_dir_list = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) - /obj/structure/transit_tube/CanPass(atom/movable/mover, turf/target) if(istype(mover) && mover.checkpass(PASSGLASS)) return 1 return !density -// When destroyed by explosions, properly handle contents. -/obj/structure/transit_tube/ex_act(severity, target) - ..() - if(!qdeleted(src)) - for(var/atom/movable/AM in contents) - AM.forceMove(loc) - -/obj/structure/transit_tube/contents_explosion(severity, target) - for(var/atom/movable/AM in contents) - AM.ex_act(severity, target) - -/obj/structure/transit_tube/New(loc) +/obj/structure/transit_tube/New(loc, newdirection) ..(loc) - - if(tube_dirs == null) - init_dirs() + if(newdirection) + setDir(newdirection) + init_tube_dirs() + generate_tube_overlays() /obj/structure/transit_tube/Destroy() - for(var/atom/movable/AM in contents) - AM.forceMove(loc) + for(var/obj/structure/transit_tube_pod/P in loc) + P.deconstruct(FALSE) return ..() +/obj/structure/transit_tube/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct(FALSE) + /obj/structure/transit_tube/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench)) - if(copytext(icon_state, 1, 3) != "D-") //decorative diagonals cannot be unwrenched directly + if(tube_construction) for(var/obj/structure/transit_tube_pod/pod in src.loc) user << "Remove the pod first!" return user.visible_message("[user] starts to deattach \the [src].", "You start to deattach the [name]...") - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) if(do_after(user, 35/W.toolspeed, target = src)) user << "You deattach the [name]." - var/obj/structure/R = new tube_construction(src.loc) - R.icon_state = src.icon_state - src.transfer_fingerprints_to(R) + var/obj/structure/c_transit_tube/R = new tube_construction(loc) + R.setDir(dir) + transfer_fingerprints_to(R) R.add_fingerprint(user) - src.destroy_diagonals() qdel(src) else if(istype(W, /obj/item/weapon/crowbar)) for(var/obj/structure/transit_tube_pod/pod in src.loc) @@ -68,21 +54,6 @@ else return ..() -//destroys disconnected decorative diagonals -/obj/structure/transit_tube/proc/destroy_diagonals() - for(var/obj/structure/transit_tube/D in orange(1, src)) - if(copytext(D.icon_state, 1, 3) == "D-") //is diagonal - var/my_dir = text2dir_extended(copytext(D.icon_state, 3, 5)) - var/is_connecting = 0 - for(var/obj/structure/transit_tube/N in orange(1,D)) - if( (( get_dir(D,N) == turn(my_dir, -45) && D.has_exit(turn(my_dir, 90)) ) || \ - ( get_dir(D,N) == turn(my_dir, 45) && D.has_exit(turn(my_dir, -90))) ) && \ - D != src ) - is_connecting = 1 - break - if(!is_connecting) - qdel(D) - // Called to check if a pod should stop upon entering this tube. /obj/structure/transit_tube/proc/should_stop_pod(pod, from_dir) return 0 @@ -91,18 +62,11 @@ /obj/structure/transit_tube/proc/pod_stopped(pod, from_dir) return -// Returns a /list of directions this tube section can connect to. -// Tubes that have some sort of logic or changing direction might -// override it with additional logic. -/obj/structure/transit_tube/proc/directions() - return tube_dirs - - /obj/structure/transit_tube/proc/has_entrance(from_dir) from_dir = turn(from_dir, 180) - for(var/direction in directions()) + for(var/direction in tube_dirs) if(direction == from_dir) return 1 @@ -111,7 +75,7 @@ /obj/structure/transit_tube/proc/has_exit(in_dir) - for(var/direction in directions()) + for(var/direction in tube_dirs) if(direction == in_dir) return 1 @@ -126,7 +90,7 @@ var/in_dir_cw = turn(in_dir, -45) var/in_dir_ccw = turn(in_dir, 45) - for(var/direction in directions()) + for(var/direction in tube_dirs) if(direction == in_dir) return direction @@ -151,143 +115,154 @@ return enter_delay -// Parse the icon_state into a list of directions. -// This means that mappers can use Dream Maker's built in -// "Generate Instances from Icon-states" option to get all -// variations. Additionally, as a separate proc, sub-types -// can handle it more intelligently. -/obj/structure/transit_tube/proc/init_dirs() - if(icon_state == "auto") - // Additional delay, for map loading. - spawn(1) - init_dirs_automatic() - - else - tube_dirs = parse_dirs(icon_state) - - if(copytext(icon_state, 1, 3) == "D-" || findtextEx(icon_state, "Pass")) - density = 0 +/obj/structure/transit_tube/proc/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTH, SOUTH) + if(SOUTH) + tube_dirs = list(NORTH, SOUTH) + if(EAST) + tube_dirs = list(EAST, WEST) + if(WEST) + tube_dirs = list(EAST, WEST) - - -// Initialize dirs by searching for tubes that do/might connect -// on nearby turfs. Create corner pieces if nessecary. -// Pick two directions, preferring tubes that already connect -// to loc, or other auto tubes if there aren't enough connections. -/obj/structure/transit_tube/proc/init_dirs_automatic() - var/list/connected = list() - var/list/connected_auto = list() - - for(var/direction in tube_dir_list) - var/location = get_step(loc, direction) - for(var/obj/structure/transit_tube/tube in location) - if(tube.directions() == null && tube.icon_state == "auto") - connected_auto += direction - break - - else if(turn(direction, 180) in tube.directions()) - connected += direction - break - - connected += connected_auto - - tube_dirs = select_automatic_dirs(connected) - - if(length(tube_dirs) == 2 && tube_dir_list.Find(tube_dirs[1]) > tube_dir_list.Find(tube_dirs[2])) - tube_dirs.Swap(1, 2) - - generate_automatic_corners(tube_dirs) - select_automatic_icon_state(tube_dirs) - - - -// Given a list of directions, look a pair that forms a 180 or -// 135 degree angle, and return a list containing the pair. -// If none exist, return list(connected[1], turn(connected[1], 180) -/obj/structure/transit_tube/proc/select_automatic_dirs(connected) - if(length(connected) < 1) - return list() - - for(var/i = 1, i <= length(connected), i++) - for(var/j = i + 1, j <= length(connected), j++) - var/d1 = connected[i] - var/d2 = connected[j] - - if(d1 == turn(d2, 135) || d1 == turn(d2, 180) || d1 == turn(d2, 225)) - return list(d1, d2) - - return list(connected[1], turn(connected[1], 180)) - - - -/obj/structure/transit_tube/proc/select_automatic_icon_state(directions) - if(length(directions) == 2) - icon_state = "[dir2text_short(directions[1])]-[dir2text_short(directions[2])]" - - - -// Look for diagonal directions, generate the decorative corners in each. -/obj/structure/transit_tube/proc/generate_automatic_corners(directions) - for(var/direction in directions) - if(direction == 5 || direction == 6 || direction == 9 || direction == 10) +/obj/structure/transit_tube/proc/generate_tube_overlays() + for(var/direction in tube_dirs) + if(direction in diagonals) if(direction & NORTH) - create_automatic_decorative_corner(get_step(loc, NORTH), direction ^ 3) + create_tube_overlay(direction ^ 3, NORTH) - else - create_automatic_decorative_corner(get_step(loc, SOUTH), direction ^ 3) + if(direction & EAST) + create_tube_overlay(direction ^ 12, EAST) - if(direction & EAST) - create_automatic_decorative_corner(get_step(loc, EAST), direction ^ 12) + else + create_tube_overlay(direction ^ 12, WEST) + else + create_tube_overlay(direction) - else - create_automatic_decorative_corner(get_step(loc, WEST), direction ^ 12) + +/obj/structure/transit_tube/proc/create_tube_overlay(direction, shift_dir) + var/image/I + if(shift_dir) + I = image(loc = src, icon_state = "decorative_diag", dir = direction) + switch(shift_dir) + if(NORTH) + I.pixel_y = 32 + if(SOUTH) + I.pixel_y = -32 + if(EAST) + I.pixel_x = 32 + if(WEST) + I.pixel_x = -32 + else + I = image(loc = src, icon_state = "decorative", dir = direction) + add_overlay(I) -// Generate a corner, if one doesn't exist for the direction on the turf. -/obj/structure/transit_tube/proc/create_automatic_decorative_corner(location, direction) - var/state = "D-[dir2text_short(direction)]" - for(var/obj/structure/transit_tube/tube in location) - if(tube.icon_state == state) - return - - var/obj/structure/transit_tube/tube = new(location) - tube.icon_state = state - tube.init_dirs() +//Some of these are mostly for mapping use +/obj/structure/transit_tube/horizontal + dir = WEST +/obj/structure/transit_tube/diagonal + icon_state = "diagonal" + tube_construction = /obj/structure/c_transit_tube/diagonal -// Uses a list() to cache return values. Since they should -// never be edited directly, all tubes with a certain -// icon_state can just reference the same list. In theory, -// reduces memory usage, and improves CPU cache usage. -// In reality, I don't know if that is quite how BYOND works, -// but it is probably safer to assume the existence of, and -// rely on, a sufficiently smart compiler/optimizer. -/obj/structure/transit_tube/proc/parse_dirs(text) - var/global/list/direction_table = list() +/obj/structure/transit_tube/diagonal/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTHEAST, SOUTHWEST) + if(SOUTH) + tube_dirs = list(NORTHEAST, SOUTHWEST) + if(EAST) + tube_dirs = list(NORTHWEST, SOUTHEAST) + if(WEST) + tube_dirs = list(NORTHWEST, SOUTHEAST) - if(text in direction_table) - return direction_table[text] +//mostly for mapping use +/obj/structure/transit_tube/diagonal/topleft + dir = WEST - var/list/split_text = splittext(text, "-") +/obj/structure/transit_tube/diagonal/crossing + density = 0 + icon_state = "diagonal_crossing" + tube_construction = /obj/structure/c_transit_tube/diagonal/crossing - // If the first token is D, the icon_state represents - // a purely decorative tube, and doesn't actually - // connect to anything. - if(split_text[1] == "D") - direction_table[text] = list() - return null +//mostly for mapping use +/obj/structure/transit_tube/diagonal/crossing/topleft + dir = WEST - var/list/directions = list() - for(var/text_part in split_text) - var/direction = text2dir_extended(text_part) +/obj/structure/transit_tube/curved + icon_state = "curved0" + tube_construction = /obj/structure/c_transit_tube/curved - if(direction > 0) - directions += direction +/obj/structure/transit_tube/curved/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTH, SOUTHWEST) + if(SOUTH) + tube_dirs = list(SOUTH, NORTHEAST) + if(EAST) + tube_dirs = list(EAST, NORTHWEST) + if(WEST) + tube_dirs = list(SOUTHEAST, WEST) - direction_table[text] = directions - return directions +/obj/structure/transit_tube/curved/flipped + icon_state = "curved1" + tube_construction = /obj/structure/c_transit_tube/curved/flipped + +/obj/structure/transit_tube/curved/flipped/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTH, SOUTHEAST) + if(SOUTH) + tube_dirs = list(SOUTH, NORTHWEST) + if(EAST) + tube_dirs = list(EAST, SOUTHWEST) + if(WEST) + tube_dirs = list(NORTHEAST, WEST) + + +/obj/structure/transit_tube/junction + icon_state = "junction0" + tube_construction = /obj/structure/c_transit_tube/junction + +/obj/structure/transit_tube/junction/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTH, SOUTHEAST, SOUTHWEST)//ending with the prefered direction + if(SOUTH) + tube_dirs = list(SOUTH, NORTHWEST, NORTHEAST) + if(EAST) + tube_dirs = list(EAST, SOUTHWEST, NORTHWEST) + if(WEST) + tube_dirs = list(WEST, NORTHEAST, SOUTHEAST) + +/obj/structure/transit_tube/junction/flipped + icon_state = "junction1" + tube_construction = /obj/structure/c_transit_tube/junction/flipped + +/obj/structure/transit_tube/junction/flipped/init_tube_dirs() + switch(dir) + if(NORTH) + tube_dirs = list(NORTH, SOUTHWEST, SOUTHEAST)//ending with the prefered direction + if(SOUTH) + tube_dirs = list(SOUTH, NORTHEAST, NORTHWEST) + if(EAST) + tube_dirs = list(EAST, NORTHWEST, SOUTHWEST) + if(WEST) + tube_dirs = list(WEST, SOUTHEAST, NORTHEAST) + + +/obj/structure/transit_tube/crossing + icon_state = "crossing" + tube_construction = /obj/structure/c_transit_tube/crossing + density = 0 + +//mostly for mapping use +/obj/structure/transit_tube/crossing/horizontal + dir = WEST diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm index 83f8ee855d5..f2b0a3135de 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm @@ -4,58 +4,44 @@ /obj/structure/c_transit_tube name = "unattached transit tube" icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' - icon_state = "E-W" //icon_state decides which tube will be built + icon_state = "straight" density = 0 - layer = ABOVE_OBJ_LAYER //same as the built tube + layer = LOW_ITEM_LAYER //same as the built tube anchored = 0 + var/flipped = 0 + var/build_type = /obj/structure/transit_tube + var/flipped_build_type + var/base_icon /obj/structure/c_transit_tube/examine(mob/user) ..() user << "Alt-click to rotate it clockwise." -//wrapper for turn that changes the transit tube formatted icon_state instead of the dir -/obj/structure/c_transit_tube/proc/tube_turn(angle) - var/list/badtubes = list("W-E", "W-E-Pass", "S-N", "S-N-Pass", "SW-NE", "SE-NW") - var/list/split_text = splittext(icon_state, "-") - for(var/i=1; i<=split_text.len; i++) - var/curdir = text2dir_extended(split_text[i]) //0 if not a valid direction (e.g. Pass, Block) - if(curdir) - split_text[i] = dir2text_short(turn(curdir, angle)) - var/newdir = jointext(split_text, "-") - if(badtubes.Find(newdir)) - split_text.Swap(1,2) - newdir = jointext(split_text, "-") - icon_state = newdir +/obj/structure/c_transit_tube/proc/tube_rotate() + setDir(turn(dir, -90)) /obj/structure/c_transit_tube/proc/tube_flip() - var/list/split_text = splittext(icon_state, "-") - //skip straight pipes - if(length(split_text[2]) < 2) - return - //for junctions, just swap the diagonals with each other - if(split_text.len == 3 && split_text[3] != "Pass") - split_text.Swap(2,3) - else if(length(split_text[1]) == 2 && length(split_text[2]) == 2) //diagonals - split_text[1] = copytext(split_text[1],1,2) + copytext(split_text[2],2,3) - split_text[2] = copytext(split_text[2],1,2) + ((copytext(split_text[2],2,3) == "E") ? "W" : "E") - //for curves, swap the diagonal direction that is not in the same axis as the cardinal direction - else - if(split_text[1] == "N" || split_text[1] == "S") - split_text[2] = copytext(split_text[2],1,2) + ((copytext(split_text[2],2,3) == "E") ? "W" : "E") + if(flipped_build_type) + flipped = !flipped + var/cur_flip = initial(flipped) ? !flipped : flipped + if(cur_flip) + build_type = flipped_build_type else - split_text[2] = ((copytext(split_text[2],1,2) == "N") ? "S" : "N") + copytext(split_text[2],2,3) - icon_state = jointext(split_text, "-") + build_type = initial(build_type) + icon_state = "[base_icon][flipped]" + else + setDir(turn(dir, 180)) // disposals-style flip and rotate verbs /obj/structure/c_transit_tube/verb/rotate() - set name = "Rotate Tube CW" + set name = "Rotate Tube" set category = "Object" set src in view(1) if(usr.incapacitated()) return - tube_turn(-90) + tube_rotate() /obj/structure/c_transit_tube/AltClick(mob/user) ..() @@ -64,18 +50,7 @@ return if(!in_range(src, user)) return - else - rotate() - -/obj/structure/c_transit_tube/verb/rotate_ccw() - set name = "Rotate Tube CCW" - set category = "Object" - set src in view(1) - - if(usr.incapacitated()) - return - - tube_turn(90) + tube_rotate() /obj/structure/c_transit_tube/verb/flip() set name = "Flip" @@ -84,25 +59,20 @@ if(usr.incapacitated()) return - tube_flip() -/obj/structure/c_transit_tube/proc/buildtube() - var/obj/structure/transit_tube/R = new/obj/structure/transit_tube(src.loc) - R.icon_state = src.icon_state - R.init_dirs() - R.generate_automatic_corners(R.tube_dirs) - return R /obj/structure/c_transit_tube/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) user << "You start attaching the [name]..." - src.add_fingerprint(user) + add_fingerprint(user) + playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 40/I.toolspeed, target = src)) - if(!src) return + if(qdeleted(src)) + return user << "You attach the [name]." - var/obj/structure/transit_tube/R = src.buildtube() - src.transfer_fingerprints_to(R) + var/obj/structure/transit_tube/R = new build_type(loc, dir) + transfer_fingerprints_to(R) qdel(src) else return ..() @@ -110,51 +80,79 @@ // transit tube station /obj/structure/c_transit_tube/station name = "unattached through station" - icon = 'icons/obj/atmospherics/pipes/transit_tube_station.dmi' - icon_state = "closed" + icon_state = "closed_station0" + build_type = /obj/structure/transit_tube/station + flipped_build_type = /obj/structure/transit_tube/station/flipped + base_icon = "closed_station" -/obj/structure/c_transit_tube/station/tube_turn(var/angle) - src.setDir(turn(src.dir, angle)) +/obj/structure/c_transit_tube/station/flipped + icon_state = "closed_station1" + flipped = 1 + build_type = /obj/structure/transit_tube/station/flipped + flipped_build_type = /obj/structure/transit_tube/station -/obj/structure/c_transit_tube/station/tube_flip() - src.tube_turn(180) - -/obj/structure/c_transit_tube/station/buildtube() - var/obj/structure/transit_tube/station/R = new/obj/structure/transit_tube/station(src.loc) - R.setDir(src.dir) - R.init_dirs() - return R // reverser station, used for the terminus /obj/structure/c_transit_tube/station/reverse name = "unattached terminus station" + icon_state = "closed_terminus0" + build_type = /obj/structure/transit_tube/station/reverse + flipped_build_type = /obj/structure/transit_tube/station/reverse/flipped + base_icon = "closed_terminus" -/obj/structure/c_transit_tube/station/reverse/buildtube() - var/obj/structure/transit_tube/station/reverse/R = new/obj/structure/transit_tube/station/reverse(src.loc) - R.setDir(src.dir) - R.init_dirs() - return R +/obj/structure/c_transit_tube/station/reverse/flipped + icon_state = "closed_terminus1" + flipped = 1 + build_type = /obj/structure/transit_tube/station/reverse/flipped + flipped_build_type = /obj/structure/transit_tube/station/reverse -// block, used after the terminus of a transit tube station, decorative only -// code-wise they're normal tubes but they're ~speshul~ because they care about the dir instead of the icon_state -// in that sense they're the same as stations and can reuse their flip and rotate verbs -/obj/structure/c_transit_tube/station/block - name = "unattached tube blocker" - icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' - icon_state = "Block" -/obj/structure/c_transit_tube/station/block/buildtube() - var/obj/structure/transit_tube/R = new/obj/structure/transit_tube(src.loc) - R.icon_state = src.icon_state - R.setDir(src.dir) - R.init_dirs() - return R +/obj/structure/c_transit_tube/crossing + icon_state = "crossing" + build_type = /obj/structure/transit_tube/crossing + + +/obj/structure/c_transit_tube/diagonal + icon_state = "diagonal" + build_type = /obj/structure/transit_tube/diagonal + +/obj/structure/c_transit_tube/diagonal/crossing + icon_state = "diagonal_crossing" + build_type = /obj/structure/transit_tube/diagonal/crossing + + +/obj/structure/c_transit_tube/curved + icon_state = "curved0" + build_type = /obj/structure/transit_tube/curved + flipped_build_type = /obj/structure/transit_tube/curved/flipped + base_icon = "curved" + +/obj/structure/c_transit_tube/curved/flipped + icon_state = "curved1" + build_type = /obj/structure/transit_tube/curved/flipped + flipped_build_type = /obj/structure/transit_tube/curved + flipped = 1 + + +/obj/structure/c_transit_tube/junction + icon_state = "junction0" + build_type = /obj/structure/transit_tube/junction + flipped_build_type = /obj/structure/transit_tube/junction/flipped + base_icon = "junction" + + +/obj/structure/c_transit_tube/junction/flipped + icon_state = "junction1" + flipped = 1 + build_type = /obj/structure/transit_tube/junction/flipped + flipped_build_type = /obj/structure/transit_tube/junction + //transit tube pod //see station.dm for the logic /obj/structure/c_transit_tube_pod name = "unattached transit tube pod" - icon = 'icons/obj/atmospherics/pipes/transit_tube_pod.dmi' + icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' icon_state = "pod" anchored = 0 density = 0 diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index 8bbe93ec1c2..d34cd74aad2 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -1,93 +1,104 @@ /obj/structure/transit_tube_pod - icon = 'icons/obj/atmospherics/pipes/transit_tube_pod.dmi' + icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' icon_state = "pod" animate_movement = FORWARD_STEPS anchored = 1 density = 1 + layer = BELOW_OBJ_LAYER var/moving = 0 var/datum/gas_mixture/air_contents = new() /obj/structure/transit_tube_pod/New(loc) - ..(loc) - + ..() air_contents.assert_gases("o2", "n2") air_contents.gases["o2"][MOLES] = MOLES_O2STANDARD * 2 air_contents.gases["n2"][MOLES] = MOLES_N2STANDARD air_contents.temperature = T20C - // Give auto tubes time to align before trying to start moving - spawn(5) - follow_tube() /obj/structure/transit_tube_pod/Destroy() - empty() + empty_pod() return ..() +/obj/structure/transit_tube_pod/update_icon() + if(contents.len) + icon_state = "pod_occupied" + else + icon_state = "pod" + /obj/structure/transit_tube_pod/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar)) if(!moving) - for(var/obj/structure/transit_tube/station/T in loc) - return + playsound(src.loc, I.usesound, 50, 1) if(contents.len) user.visible_message("[user] empties \the [src].", "You empty \the [src].") - empty() - return + empty_pod() else - user << "You free \the [src]." - var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc) - src.transfer_fingerprints_to(R) - R.add_fingerprint(user) - qdel(src) + deconstruct(TRUE, user) else return ..() +/obj/structure/transit_tube_pod/deconstruct(disassembled = TRUE, mob/user) + if(!(flags & NODECONSTRUCT)) + var/atom/location = get_turf(src) + if(user) + location = user.loc + add_fingerprint(user) + user.visible_message("[user] removes [src].", "You remove [src].") + var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(location) + transfer_fingerprints_to(R) + R.setDir(dir) + empty_pod(location) + qdel(src) + /obj/structure/transit_tube_pod/ex_act(severity, target) ..() if(!qdeleted(src)) - for(var/atom/movable/AM in contents) - AM.forceMove(loc) + empty_pod() /obj/structure/transit_tube_pod/contents_explosion(severity, target) for(var/atom/movable/AM in contents) AM.ex_act(severity, target) -/obj/structure/transit_tube_pod/container_resist() - var/mob/living/user = usr +/obj/structure/transit_tube_pod/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct(FALSE) + +/obj/structure/transit_tube_pod/container_resist(mob/living/user) if(!moving) user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT user << "You start trying to escape from the pod..." if(do_after(user, 600, target = src)) user << "You manage to open the pod." - src.empty() + empty_pod() -/obj/structure/transit_tube_pod/proc/empty() - for(var/atom/movable/M in src.contents) - M.forceMove(loc) +/obj/structure/transit_tube_pod/proc/empty_pod(atom/location) + if(!location) + location = get_turf(src) + for(var/atom/movable/M in contents) + M.forceMove(location) + update_icon() /obj/structure/transit_tube_pod/Process_Spacemove() if(moving) //No drifting while moving in the tubes return 1 else return ..() -/obj/structure/transit_tube_pod/proc/follow_tube(reverse_launch) +/obj/structure/transit_tube_pod/proc/follow_tube() set waitfor = 0 if(moving) return moving = 1 - var/obj/structure/transit_tube/current_tube = null var/next_dir var/next_loc var/last_delay = 0 var/exit_delay - if(reverse_launch) - setDir(turn(dir, 180) )// Back it up - for(var/obj/structure/transit_tube/tube in loc) if(tube.has_exit(dir)) current_tube = tube @@ -130,6 +141,9 @@ density = 1 moving = 0 + var/obj/structure/transit_tube/TT = locate(/obj/structure/transit_tube) in loc + if(!TT || (!(dir in TT.tube_dirs) && !(turn(dir,180) in TT.tube_dirs))) //landed on a turf without transit tube or not in our direction + deconstruct(FALSE) //we automatically deconstruct the pod // Should I return a copy here? If the caller edits or del()s the returned // datum, there might be problems if I don't... @@ -165,7 +179,7 @@ // Goal is to balance towards equal pressure, but ensure some gas // transfer in both directions regardless. // Feel free to rip this out and replace it with something better, - // I don't really know muhch about how gas transfer rates work in + // I don't really know much about how gas transfer rates work in // SS13. var/transfer_in = max(0.1, 0.5 * (env_pressure - int_pressure) / total_pressure) var/transfer_out = max(0.1, 0.3 * (int_pressure - env_pressure) / total_pressure) @@ -178,42 +192,25 @@ -// When the player moves, check if the pos is currently stopped at a station. -// if it is, check the direction. If the direction matches the direction of -// the station, try to exit. If the direction matches one of the station's -// tube directions, launch the pod in that direction. /obj/structure/transit_tube_pod/relaymove(mob/mob, direction) - if(istype(mob, /mob) && mob.client) - // If the pod is not in a tube at all, you can get out at any time. - if(!(locate(/obj/structure/transit_tube) in loc)) - mob.loc = loc - mob.client.Move(get_step(loc, direction), direction) - mob.reset_perspective(null) - - //if(moving && isspaceturf(loc)) - // Todo: If you get out of a moving pod in space, you should move as well. - // Same direction as pod? Direcion you moved? Halfway between? - + if(istype(mob) && mob.client) if(!moving) for(var/obj/structure/transit_tube/station/station in loc) - if(dir in station.directions()) - if(!station.pod_moving) - if(direction == station.dir) - if(station.icon_state == "open") - mob.loc = loc - mob.client.Move(get_step(loc, direction), direction) - mob.reset_perspective(null) + if(!station.pod_moving) + if(direction == turn(station.boarding_dir,180)) + if(station.open_status == STATION_TUBE_OPEN) + mob.forceMove(loc) + update_icon() + else + station.open_animation() - else - station.open_animation() - - else if(direction in station.directions()) - setDir(direction) - station.launch_pod() - return - - for(var/obj/structure/transit_tube/tube in loc) - if(dir in tube.directions()) - if(tube.has_exit(direction)) + else if(direction in station.tube_dirs) setDir(direction) - return \ No newline at end of file + station.launch_pod() + return + + for(var/obj/structure/transit_tube/TT in loc) + if(dir in TT.tube_dirs) + if(TT.has_exit(direction)) + setDir(direction) + return diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 2dff383d41c..8fdea6dbee9 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -165,7 +165,7 @@ ..(user) return occupant -/obj/machinery/atmospherics/components/unary/cryo_cell/container_resist(mob/user) +/obj/machinery/atmospherics/components/unary/cryo_cell/container_resist(mob/living/user) user << "You struggle inside the cryotube, kicking the release with your foot... (This will take around 30 seconds.)" audible_message("You hear a thump from [src].") if(do_after(user, 300)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 62532557e49..041a05a9f6e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -85,9 +85,8 @@ /obj/machinery/gibber/attack_paw(mob/user) return src.attack_hand(user) -/obj/machinery/gibber/container_resist() - src.go_out() - return +/obj/machinery/gibber/container_resist(mob/living/user) + go_out() /obj/machinery/gibber/attack_hand(mob/user) if(stat & (NOPOWER|BROKEN)) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 077265552de..b58d8ff259e 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -74,7 +74,7 @@ /obj/item/clothing/head/drone_holder/relaymove() uncurl() -/obj/item/clothing/head/drone_holder/container_resist() +/obj/item/clothing/head/drone_holder/container_resist(mob/living/user) uncurl() diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index b8dc88cede9..86c24dd9316 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -154,8 +154,8 @@ attempt_escape(user) // resist to escape the bin -/obj/machinery/disposal/container_resist() - attempt_escape(usr) +/obj/machinery/disposal/container_resist(mob/living/user) + attempt_escape(user) /obj/machinery/disposal/proc/attempt_escape(mob/user) if(src.flushing) diff --git a/icons/obj/atmospherics/pipes/transit_tube.dmi b/icons/obj/atmospherics/pipes/transit_tube.dmi index 517a3b238cd..c3c7bdc07fe 100644 Binary files a/icons/obj/atmospherics/pipes/transit_tube.dmi and b/icons/obj/atmospherics/pipes/transit_tube.dmi differ diff --git a/icons/obj/atmospherics/pipes/transit_tube_pod.dmi b/icons/obj/atmospherics/pipes/transit_tube_pod.dmi deleted file mode 100644 index a52b80f8206..00000000000 Binary files a/icons/obj/atmospherics/pipes/transit_tube_pod.dmi and /dev/null differ diff --git a/icons/obj/atmospherics/pipes/transit_tube_station.dmi b/icons/obj/atmospherics/pipes/transit_tube_station.dmi deleted file mode 100644 index ca8515fded7..00000000000 Binary files a/icons/obj/atmospherics/pipes/transit_tube_station.dmi and /dev/null differ