Files
CHOMPStation2/code/game/shuttle_engines.dm
CHOMPStation2StaffMirrorBot ce2446922e [MIRROR] Initialize fixing (#10335)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-03-08 22:22:04 +01:00

82 lines
2.1 KiB
Plaintext

/obj/structure/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle_parts.dmi'
unacidable = TRUE
/obj/structure/shuttle/window
name = "shuttle window"
icon = 'icons/obj/podwindows.dmi'
icon_state = "0_0" //The states are a bitflag for connecting window directions, then connecting shuttle wall directions
density = TRUE
opacity = 0
anchored = TRUE
can_atmos_pass = ATMOS_PASS_NO
var/window_flags = 0 // Bitflags to indicate connected windows
var/wall_flags = 0 // Bitflags to indicate connected walls
/obj/structure/shuttle/window/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && mover.checkpass(PASSGLASS))
return TRUE
return ..()
/obj/structure/shuttle/window/Initialize(mapload)
. = ..()
auto_join()
/obj/structure/shuttle/window/proc/auto_join()
match_windows(NORTH, NORTH)
match_windows(EAST, EAST)
match_windows(SOUTH, SOUTH)
match_windows(WEST, WEST)
icon_state = "[window_flags]_[wall_flags]"
return icon_state
/obj/structure/shuttle/window/proc/match_windows(direction, flag, mask=0)
var/turf/adj = get_step(src, direction)
if(istype(adj,/turf/simulated/shuttle/wall))
wall_flags |= flag // turn on the bit flag
else
var/obj/structure/shuttle/window/window = locate(src.type) in adj
if(window)
window_flags |= flag // turn on the bit flag
else
window_flags &= ~flag // turn off the bit flag
wall_flags &= ~flag // turn off the bit flag
/obj/structure/shuttle/engine
name = "engine"
density = TRUE
anchored = TRUE
/obj/structure/shuttle/engine/heater
name = "heater"
icon_state = "heater"
/obj/structure/shuttle/engine/platform
name = "platform"
icon_state = "platform"
/obj/structure/shuttle/engine/propulsion
name = "propulsion"
icon_state = "propulsion"
opacity = 1
/obj/structure/shuttle/engine/propulsion/burst
name = "burst"
/obj/structure/shuttle/engine/propulsion/burst/left
name = "left"
icon_state = "burst_l"
/obj/structure/shuttle/engine/propulsion/burst/right
name = "right"
icon_state = "burst_r"
/obj/structure/shuttle/engine/router
name = "router"
icon_state = "router"