stationeers_ic10/filtration.ic10
Snorre Selmer 0eaec70c48 Rewrote variables to not use snake-case
Added automatic light-switch
2022-09-13 20:22:22 +02:00

73 lines
1.6 KiB
Plaintext

# Complete filtration circuit that controls filter-
# unit, checks filters, maintains safe temperature
# and pressure.
#
# "Mud pipe" is the shared input-pipe for all
# filtration units, where all gasses are mixed into
# a "mud" before being filtered.
alias MudSensor d0 # Pipe Analyzer
alias Tank d1 # Tank
alias PurgeButton d2 # Logic (Switch)
alias PurgePump d3 # Volume (Turbo) Pump
alias FilterUnit d4 # Kit (Atmospherics)
alias FilterDisplay d5 # Kit (Console)
alias MudTemp r0
alias Filter1 r1
alias Filter2 r2
alias TankPress r3
alias FilterRun r4
alias FilterTest r5
alias PurgeRun r6
alias HasGas r7
define MAX_PRESS 58000 # 58MPa
define MAX_TEMP 313.15 # 40C
l r9 PurgePump Maximum
s PurgePump Setting r9
s FilterDisplay Color 4 # red
start:
yield
s PurgePump On 0
ls Filter1 FilterUnit 0 Quantity
ls Filter2 FilterUnit 1 Quantity
beqz Filter1 swap_filter_1
beqz Filter2 swap_filter_2
s FilterDisplay On 0
l PurgeRun PurgeButton Setting
bgtz PurgeRun purge
j filter
swap_filter_1: # if right filter needs swapping
s FilterDisplay Setting 1
s FilterDisplay On 1
j filter # then continue filtering
swap_filter_2: # if left filter needs swapping
s FilterDisplay Setting 2
s FilterDisplay On 1
j filter # then continue filtering
filter:
l MudTemp MudSensor Temperature
l TankPress Tank Pressure
l HasGas MudSensor RatioCarbonDioxide
sgtz HasGas HasGas
slt FilterRun MudTemp MAX_TEMP
slt FilterTest TankPress MAX_PRESS
and FilterRun FilterRun FilterTest
and FilterRun FilterRun HasGas
s FilterUnit On FilterRun
j start
purge:
yield
s FilterUnit On 0
l TankPress Tank Pressure
s PurgePump On 1
bgtz TankPress purge
j start