Stationeers

Stationeers

Not enough ratings
Fire Door Logic
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
124.921 KB
18 Dec, 2024 @ 8:17am
1 Change Note ( view )

Subscribe to download
Fire Door Logic

Description
A companion to Vent Logic:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3387304614

Made this to divide my concourse loop into "Quads" with named gas sensors, flashing lights, klaxons, blast doors, and gates.

start:
# Aliases
alias rNAlarmed r0
alias rNNotAlarmed r1
alias rEAlarmed r2
alias rENotAlarmed r3
alias rSEAlarmed r4
alias rSENotAlarmed r5
alias rSWAlarmed r6
alias rSWNotAlarmed r7
alias rNFireGate r8
alias rEFireGate r9
alias rSFireGate r10
alias rWFireGate r11

# Read Lever States
lbn rNAlarmed HASH("StructureLogicSwitch") HASH("Northwest Alarm") Open Maximum
seqz rNNotAlarmed rNAlarmed
lbn rEAlarmed HASH("StructureLogicSwitch") HASH("Northeast Alarm") Open Maximum
seqz rENotAlarmed rEAlarmed
lbn rSEAlarmed HASH("StructureLogicSwitch") HASH("Southeast Alarm") Open Maximum
seqz rSENotAlarmed rSEAlarmed
lbn rSWAlarmed HASH("StructureLogicSwitch") HASH("Southwest Alarm") Open Maximum
seqz rSWNotAlarmed rSWAlarmed

# Check gas sensors for lever overrides
beqal rNAlarmed 0 fNWgas
beqal rEAlarmed 0 fNEgas
beqal rSEAlarmed 0 fSEgas
beqal rSWAlarmed 0 fSWgas

# Check Shared Gate Status
max rNFireGate rEAlarmed rNAlarmed
seqz rNFireGate rNFireGate
max rEFireGate rEAlarmed rSEAlarmed
seqz rEFireGate rEFireGate
max rSFireGate rSEAlarmed rSWAlarmed
seqz rSFireGate rSFireGate
max rWFireGate rSWAlarmed rNAlarmed
seqz rWFireGate rWFireGate

# Set alarm states
jal fNWAlarmset
jal fNEAlarmset
jal fSEAlarmset
jal fSWAlarmset
j end

# Read Combustion States
fNWgas:
lbn rNAlarmed HASH("StructureGasSensor") HASH("Northwest Gas Sensor") Combustion Maximum
seqz rNNotAlarmed rNAlarmed
j ra
fNEgas:
lbn rEAlarmed HASH("StructureGasSensor") HASH("Northeast Gas Sensor") Combustion Maximum
seqz rENotAlarmed rEAlarmed
j ra
fSEgas:
lbn rSEAlarmed HASH("StructureGasSensor") HASH("Southeast Gas Sensor") Combustion Maximum
seqz rSENotAlarmed rSEAlarmed
j ra
fSWgas:
lbn rSWAlarmed HASH("StructureGasSensor") HASH("Southwest Gas Sensor") Combustion Maximum
seqz rSWNotAlarmed rSWAlarmed
j ra
# End Combustion States

# Northwest Alarmed
fNWAlarmset:
sbn HASH("StructureBlastDoor") HASH("North Fire Door") Open rNNotAlarmed
sbn HASH("StructureAirlockGate") HASH("North Fire Door") Open rNFireGate
sbn HASH("StructureAirlockGate") HASH("West Fire Door") Open rWFireGate
sbn HASH("StructureAirlockGate") HASH("Northwest Fire Door") Open rNNotAlarmed
sbn HASH("StructureKlaxon") HASH("Northwest Alarm") On rNAlarmed
sbn HASH("StructureFlashingLight") HASH("Northwest Alarm") On rNAlarmed
j ra

#Northeast Alarmed
fNEAlarmset:
sbn HASH("StructureBlastDoor") HASH("East Fire Door") Open rENotAlarmed
sbn HASH("StructureAirlockGate") HASH("North Fire Door") Open rNFireGate
sbn HASH("StructureAirlockGate") HASH("East Fire Door") Open rEFireGate
sbn HASH("StructureAirlockGate") HASH("Northeast Fire Door") Open rENotAlarmed
sbn HASH("StructureKlaxon") HASH("Northeast Alarm") On rEAlarmed
sbn HASH("StructureFlashingLight") HASH("Northeast Alarm") On rEAlarmed
j ra

#Southeast Alarmed
fSEAlarmset:
sbn HASH("StructureBlastDoor") HASH("Southeast Fire Door") Open rSENotAlarmed
sbn HASH("StructureAirlockGate") HASH("South Fire Door") Open rSFireGate
sbn HASH("StructureAirlockGate") HASH("East Fire Door") Open rEFireGate
sbn HASH("StructureAirlockGate") HASH("Southeast Fire Door") Open rSENotAlarmed
sbn HASH("StructureKlaxon") HASH("Southeast Alarm") On rSEAlarmed
sbn HASH("StructureFlashingLight") HASH("Southeast Alarm") On rSEAlarmed
j ra

#Southwest Alarmed
fSWAlarmset:
sbn HASH("StructureBlastDoor") HASH("Southwest Fire Door") Open rSWNotAlarmed
sbn HASH("StructureAirlockGate") HASH("South Fire Door") Open rSFireGate
sbn HASH("StructureAirlockGate") HASH("West Fire Door") Open rWFireGate
sbn HASH("StructureAirlockGate") HASH("Southwest Fire Door") Open rSWNotAlarmed
sbn HASH("StructureKlaxon") HASH("Southwest Alarm") On rSWAlarmed
sbn HASH("StructureFlashingLight") HASH("Southwest Alarm") On rSWAlarmed
j ra
# End of Alarms

end:
yield
yield
j start
3 Comments
Hermann 20 Sep @ 12:04pm 
that's amazing but i don't freaking know how to use that
flashdim  [author] 18 Dec, 2024 @ 11:40am 
I didn't really break this down, but making a lever named "Northwest Alarm" on the same network would trigger the alarms with this code. :)

(Gas sensors named "Northwest Gas Sensor") with Combustion triggered will override the lever always)
Cabbage! 18 Dec, 2024 @ 10:19am 
thank you, something i been wanting, going to see if i can combine it with a switch lever to act as a call point, then with a very long term goal of having a led display and show a compartment location I.e "Fire 1B" in a control room