102 lines
2.6 KiB
Plaintext
102 lines
2.6 KiB
Plaintext
# Automated Filtration Control
|
|
# Based on code by CowsAreEvil
|
|
# Designed for use in filtration IC slot only
|
|
# Designed for parallel filtration setups only
|
|
# Will fill storage tank to MAXPRESSUE (set below)
|
|
# Will detect filter cartridge and activate when
|
|
# INPUTAMOUNT moles of gas is detected (set below)
|
|
|
|
alias filtration db
|
|
alias diode d0 # Optional
|
|
|
|
alias filterLeft r0
|
|
alias filterRight r1
|
|
alias filterMin r2
|
|
alias filterMax r3
|
|
alias filterRemain r4
|
|
alias filterLight r5
|
|
alias filterHash r6
|
|
alias filterMols r7
|
|
alias filterActive r8
|
|
alias inMolsCheck r9
|
|
alias inMolsCompare r10
|
|
alias totalMols r11
|
|
alias outPressure r12
|
|
|
|
define MAXPRESSURE 58000 #Storage pressure kPa
|
|
define INPUTAMOUNT 2 #Moles to activate
|
|
|
|
start:
|
|
yield
|
|
|
|
#Check filters and set diodes
|
|
ls filterLeft filtration 0 Quantity
|
|
ls filterRight filtration 1 Quantity
|
|
or filterActive filterLeft filterRight
|
|
min filterMin filterLeft filterRight
|
|
seqz filterLight filterMin
|
|
bdseal diode slideActivate
|
|
max filterMax filterLeft filterRight
|
|
select filterRemain filterMin filterMin filterMax
|
|
div filterRemain filterRemain 100
|
|
bdseal diode slideSetting
|
|
|
|
#Check storage pressure
|
|
l outPressure filtration PressureOutput
|
|
slt outPressure outPressure MAXPRESSURE
|
|
and filterActive filterActive outPressure
|
|
|
|
#Check filters and available gas
|
|
l totalMols filtration TotalMolesInput
|
|
ls filterHash filtration 0 PrefabHash
|
|
jal checkfilter
|
|
move inMolsCompare inMolsCheck
|
|
ls filterHash filtration 1 PrefabHash
|
|
jal checkfilter
|
|
max filterMols inMolsCheck inMolsCompare
|
|
mul totalMols totalMols filterMols
|
|
sgt totalMols totalMols INPUTAMOUNT
|
|
and filterActive filterActive totalMols
|
|
#Activate filtration if required
|
|
s filtration Mode filterActive
|
|
j start
|
|
|
|
slideActivate:
|
|
s diode On filterLight
|
|
j ra
|
|
|
|
slideSetting:
|
|
s diode Setting filterRemain
|
|
j ra
|
|
|
|
checkfilter:
|
|
l inMolsCheck filtration RatioOxygenInput
|
|
beq filterHash -1067319543 ra
|
|
beq filterHash -1217998945 ra
|
|
beq filterHash -721824748 ra
|
|
l inMolsCheck filtration RatioNitrogenInput
|
|
beq filterHash -632657357 ra
|
|
beq filterHash -1387439451 ra
|
|
beq filterHash 632853248 ra
|
|
l inMolsCheck filtration RatioCarbonDioxideInput
|
|
beq filterHash 416897318 ra
|
|
beq filterHash 1876847024 ra
|
|
beq filterHash 1635000764 ra
|
|
l inMolsCheck filtration RatioVolatilesInput
|
|
beq filterHash 1037507240 ra
|
|
beq filterHash 1255156286 ra
|
|
beq filterHash 15011598 ra
|
|
l inMolsCheck filtration RatioPollutantInput
|
|
beq filterHash 63677771 ra
|
|
beq filterHash 1959564765 ra
|
|
beq filterHash 1915566057 ra
|
|
l inMolsCheck filtration RatioNitrousOxideInput
|
|
beq filterHash 1824284061 ra
|
|
beq filterHash 465267979 ra
|
|
beq filterHash -1247674305 ra
|
|
move inMolsCheck 0
|
|
beqz filterHash ra
|
|
|
|
#if you are still here then it is an error so end
|
|
s filtration On 0
|
|
j start |