Makes the lavaland shuttle not spawn space when destroyed. Makes shuttles not take space/lava/chasms with them on transit (#18194)

* Makes the lavaland shuttle not spawn space when destroyed
Makes shuttles not take space/lava/chasms with them on transit

* Ensures damaged shuttle turfs still can be repaired after launch
Makes sure flooring has proper icons set
This commit is contained in:
Farie82
2022-07-15 18:53:03 -05:00
committed by GitHub
parent 5e1ad2b560
commit b5c9a3bc79
3 changed files with 53 additions and 40 deletions
+5 -1
View File
@@ -4182,6 +4182,10 @@
icon_state = "wood-broken"
},
/area/mine/laborcamp)
"rM" = (
/obj/effect/baseturf_helper/lava_land/surface,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/mining)
"rS" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -18572,7 +18576,7 @@ ab
tb
NP
Wo
Cf
rM
Vu
IZ
xo
+26 -26
View File
@@ -109,7 +109,7 @@
},
/area/shuttle/escape)
"aB" = (
/turf/simulated/floor/chasm,
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aC" = (
/obj/machinery/status_display{
@@ -118,7 +118,7 @@
/obj/machinery/light/spot{
dir = 1
},
/turf/simulated/floor/chasm,
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aD" = (
/obj/structure/bed,
@@ -141,7 +141,7 @@
/obj/structure/closet/walllocker/emerglocker{
pixel_x = -28
},
/turf/simulated/floor/chasm,
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aH" = (
/obj/item/storage/bible{
@@ -153,11 +153,7 @@
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aI" = (
/obj/machinery/door/airlock/security/glass{
name = "Escape Shuttle Cell";
req_access_txt = "63"
},
/turf/simulated/floor/noslip,
/turf/simulated/wall/indestructible/fakedoor,
/area/shuttle/escape)
"aK" = (
/obj/structure/closet/walllocker/emerglocker{
@@ -172,7 +168,7 @@
dir = 4;
pixel_x = 28
},
/turf/simulated/floor/chasm,
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aP" = (
/obj/docking_port/mobile/emergency{
@@ -250,7 +246,6 @@
/obj/machinery/door/airlock/titanium{
aiControlDisabled = 1;
hackProof = 1;
id_tag = null;
name = "Shuttle Cargo Hatch"
},
/turf/simulated/floor/plasteel{
@@ -268,7 +263,6 @@
/area/shuttle/escape)
"bb" = (
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary"
},
/turf/simulated/floor/plasteel{
@@ -379,6 +373,12 @@
/obj/structure/shuttle/engine/propulsion,
/turf/simulated/floor/plating/airless,
/area/shuttle/escape)
"tH" = (
/turf/simulated/wall/indestructible/opsglass,
/area/shuttle/escape)
"Dr" = (
/turf/simulated/wall/indestructible/syndicate,
/area/shuttle/escape)
(1,1,1) = {"
aa
@@ -387,11 +387,11 @@ aa
aa
aa
aa
ab
ab
ab
ab
ab
Dr
Dr
Dr
Dr
Dr
aP
ab
ac
@@ -413,11 +413,11 @@ aa
aa
aa
aa
ab
Dr
aB
aG
aB
ab
tH
am
aQ
aR
@@ -439,11 +439,11 @@ aa
aa
ab
ab
ab
Dr
aC
aH
aB
ab
tH
am
am
am
@@ -465,11 +465,11 @@ ab
ac
ab
as
ab
Dr
aB
aB
aL
ab
tH
am
aD
aD
@@ -491,11 +491,11 @@ ab
ak
ao
at
ab
ac
Dr
tH
aI
ac
ac
tH
tH
am
ac
ac
+22 -13
View File
@@ -489,22 +489,25 @@
if(!T1)
continue
T0.copyTurf(T1)
areaInstance.contents += T1
//copy over air
if(istype(T1, /turf/simulated))
var/turf/simulated/Ts1 = T1
Ts1.copy_air_with_tile(T0)
var/should_transit = !is_turf_blacklisted_for_transit(T0)
if(should_transit) // Only move over stuff if the transfer actually happened
T0.copyTurf(T1)
areaInstance.moving = TRUE
//move mobile to new location
for(var/atom/movable/AM in T0)
AM.onShuttleMove(T0, T1, rotation, last_caller)
//copy over air
if(istype(T1, /turf/simulated))
var/turf/simulated/Ts1 = T1
Ts1.copy_air_with_tile(T0)
if(rotation)
T1.shuttleRotate(rotation)
//move mobile to new location
for(var/atom/movable/AM in T0)
AM.onShuttleMove(T0, T1, rotation, last_caller)
if(rotation)
T1.shuttleRotate(rotation)
// Always do this stuff as it ensures that the destination turfs still behave properly with the rest of the shuttle transit
//atmos and lighting stuff
SSair.remove_from_active(T1)
T1.CalculateAdjacentTurfs()
@@ -512,7 +515,9 @@
T1.lighting_build_overlay()
T0.ChangeTurf(turf_type)
if(!should_transit)
continue // Don't want to actually change the skipped turf
T0.ChangeTurf(turf_type, keep_icon = FALSE)
SSair.remove_from_active(T0)
T0.CalculateAdjacentTurfs()
@@ -538,6 +543,10 @@
unlockPortDoors(S1)
/obj/docking_port/mobile/proc/is_turf_blacklisted_for_transit(turf/T)
var/static/list/blacklisted_turf_types = typecacheof(list(/turf/space, /turf/simulated/floor/chasm, /turf/simulated/floor/plating/lava, /turf/simulated/floor/plating/asteroid))
return is_type_in_typecache(T, blacklisted_turf_types)
/obj/docking_port/mobile/proc/findTransitDock()
var/obj/docking_port/stationary/transit/T = SSshuttle.getDock("[id]_transit")
@@ -956,7 +965,7 @@
if(underlays.len) //we have underlays, which implies some sort of transparency, so we want to a snapshot of the previous turf as an underlay
O = new()
O.underlays.Add(T)
T.ChangeTurf(type)
T.ChangeTurf(type, keep_icon = FALSE)
if(underlays.len)
T.underlays = O.underlays
if(T.icon_state != icon_state)