mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
#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
|
||||
@@ -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.
|
||||
|
||||
@@ -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("<span class='notice'>[occupant] emerges from [src]!</span>",
|
||||
"<span class='notice'>You climb out of [src]!</span>")
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/sleeper/relaymove(mob/user)
|
||||
container_resist()
|
||||
container_resist(user)
|
||||
|
||||
/obj/machinery/sleeper/open_machine()
|
||||
if(!state_open && !panel_open)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -195,16 +195,16 @@ Nah
|
||||
return 1
|
||||
|
||||
var/dat = {"<B>Transit Tubes:</B><BR>
|
||||
<A href='?src=\ref[src];tube=0'>Straight Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=1'>Straight Tube with Crossing</A><BR>
|
||||
<A href='?src=\ref[src];tube=2'>Curved Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=3'>Diagonal Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=4'>Junction</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STRAIGHT]'>Straight Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STRAIGHT_CROSSING]'>Straight Tube with Crossing</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_CURVED]'>Curved Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_DIAGONAL]'>Diagonal Tube</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_DIAGONAL_CROSSING]'>Diagonal Tube with Crossing</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_JUNCTION]'>Junction</A><BR>
|
||||
<b>Station Equipment:</b><BR>
|
||||
<A href='?src=\ref[src];tube=5'>Through Tube Station</A><BR>
|
||||
<A href='?src=\ref[src];tube=6'>Terminus Tube Station</A><BR>
|
||||
<A href='?src=\ref[src];tube=7'>Tube Blocker</A><BR>
|
||||
<A href='?src=\ref[src];tube=8'>Transit Tube Pod</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STATION]'>Through Tube Station</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_TERMINUS]'>Terminus Tube Station</A><BR>
|
||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_POD]'>Transit Tube Pod</A><BR>
|
||||
"}
|
||||
|
||||
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "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
|
||||
|
||||
@@ -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("<span class='notice'>You see [user] kicking against the doors of [src]!</span>", "<span class='notice'>You start kicking against the doors...</span>")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -886,7 +886,7 @@
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/mecha/container_resist()
|
||||
/obj/mecha/container_resist(mob/living/user)
|
||||
go_out()
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/proc/container_resist()
|
||||
/obj/proc/container_resist(mob/living/user)
|
||||
return
|
||||
|
||||
/obj/proc/update_icon()
|
||||
|
||||
@@ -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 << "<span class='notice'>You slam yourself into the side of [O].</span>"
|
||||
container_resist()
|
||||
container_resist(user)
|
||||
|
||||
/obj/structure/bodycontainer/proc/open()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
|
||||
@@ -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].", "<span class='notice'>You insert the [R].</span>")
|
||||
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].", "<span class='notice'>You insert [R].</span>")
|
||||
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("<span class='warning'>[user] starts putting [GM] into the [pod]!</span>")
|
||||
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.", "<span class='notice'>You start emptying [pod]'s contents onto the floor...</span>")
|
||||
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 << "<span class='warning'>Empty the pod first!</span>"
|
||||
return
|
||||
user.visible_message("[user] removes the [pod].", "<span class='notice'>You remove the [pod].</span>")
|
||||
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))
|
||||
@@ -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 << "<span class='warning'>Remove the pod first!</span>"
|
||||
return
|
||||
user.visible_message("[user] starts to deattach \the [src].", "<span class='notice'>You start to deattach the [name]...</span>")
|
||||
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 << "<span class='notice'>You deattach the [name].</span>"
|
||||
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
|
||||
|
||||
@@ -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 << "<span class='notice'>Alt-click to rotate it clockwise.</span>"
|
||||
|
||||
//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 << "<span class='notice'>You start attaching the [name]...</span>"
|
||||
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 << "<span class='notice'>You attach the [name].</span>"
|
||||
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
|
||||
|
||||
@@ -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].", "<span class='notice'>You empty \the [src].</span>")
|
||||
empty()
|
||||
return
|
||||
empty_pod()
|
||||
else
|
||||
user << "<span class='notice'>You free \the [src].</span>"
|
||||
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].", "<span class='notice'>You remove [src].</span>")
|
||||
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 << "<span class='notice'>You start trying to escape from the pod...</span>"
|
||||
if(do_after(user, 600, target = src))
|
||||
user << "<span class='notice'>You manage to open the pod.</span>"
|
||||
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
|
||||
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
|
||||
|
||||
@@ -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 << "<span class='notice'>You struggle inside the cryotube, kicking the release with your foot... (This will take around 30 seconds.)</span>"
|
||||
audible_message("<span class='notice'>You hear a thump from [src].</span>")
|
||||
if(do_after(user, 300))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.0 KiB |
Reference in New Issue
Block a user