stationeers_ic10/filtration.ic10

70 lines
2.0 KiB
Plaintext
Raw Normal View History

2021-09-04 22:15:58 +00:00
# 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 mud_sensor d0 # Pipe Analyzer
alias tank d1 # Tank
alias purge_button d2 # Logic (Switch)
alias purge_pump d3 # Volume (Turbo) Pump
alias filter_unit d4 # Kit (Atmospherics)
alias filter_display d5 # Kit (Console)
2021-09-04 21:53:19 +00:00
alias mud_temp r0
2021-09-05 15:21:23 +00:00
alias filter1 r1
alias filter2 r2
alias tank_press r3
alias button r4
alias temp_run r5
alias press_run r6
alias filter_run r7
alias purge_run r8
2021-09-04 21:53:19 +00:00
2021-11-15 13:32:10 +00:00
define MAX_PRESS 58000 # 58MPa
define MAX_TEMP 313 # 40C
2021-09-04 21:53:19 +00:00
2021-09-04 22:15:58 +00:00
l filter1 purge_pump Maximum # borrow filter1
s purge_pump Setting filter1 # set max throughput
s filter_display Color 4 # red
2021-09-04 21:53:19 +00:00
start:
yield
2021-09-04 22:15:58 +00:00
s purge_pump On 0 # ensure pump is off
ls filter1 filter_unit 0 Quantity # check r-filter
ls filter2 filter_unit 1 Quantity # check l-filter
beqz filter1 swap_filter_1 # right filter spent
beqz filter2 swap_filter_2 # left filter spent
s filter_display On 0 # turn off filter display
l purge_run purge_button Setting # check purge
bgtz purge_run purge # run purge if triggered
j filter # or start filtering
swap_filter_1: # if right filter needs swapping
2021-09-04 21:53:19 +00:00
s filter_display Setting 1
s filter_display On 1
2021-09-04 22:15:58 +00:00
j filter # then start filtering
2021-09-04 21:53:19 +00:00
2021-09-04 22:15:58 +00:00
swap_filter_2: # if left filter needs swapping
2021-09-04 21:53:19 +00:00
s filter_display Setting 2
s filter_display On 1
2021-09-04 22:15:58 +00:00
j filter # then start filtering
2021-09-04 21:53:19 +00:00
filter:
2021-09-04 22:15:58 +00:00
l mud_temp mud_sensor Temperature # get input temp
l tank_press tank Pressure # get output pressure
2021-11-15 13:32:10 +00:00
slt temp_run mud_temp MAX_TEMP # is temp safe
slt press_run tank_press MAX_PRESS # is press safe
2021-09-04 22:15:58 +00:00
and filter_run temp_run press_run # temp and press?
s filter_unit On filter_run # run filter
j start # loop
purge: # purge button pressed
2021-09-04 21:53:19 +00:00
yield
2021-09-04 22:15:58 +00:00
s filter_unit On 0 # stop filtering
l tank_press tank Pressure # check pressure
s purge_pump On 1 # run evac-pump
bgtz tank_press purge # keep sucking until tank dry
j start # begin filtering