stationeers_ic10/auto_adv_furnace_library.ic10

127 lines
3.4 KiB
Plaintext
Raw Normal View History

# Based on Elmotrix' FurnaceLibraryV4
# Removed Prev/Next buttons, added on/off switch
alias Furnace d0
alias FurnaceOn d1
alias LBDial d2
alias ICFurnaceController d3
alias ResNr r3
alias hashValue r4
alias TempMM r5
alias TempMin r6
alias PresMM r7
alias PresMin r8
alias hashMem r9
alias SetTemp r13
alias SetPres r14
define ResMax 17
define Delay 6 #Ticks (before changes are made)
BWait:
l r15 FurnaceOn Setting
s Furnace On r15
s db Setting hashValue
l r0 Furnace RecipeHash
seq r0 r0 hashValue
s Furnace Open r0
move hashMem hashValue
yield
l hashValue db Setting
or r0 r1 r2
add ResNr ResNr r1
sub ResNr ResNr r2
Dial:
bdns LBDial SelectRecipe
s LBDial Mode ResMax
move r0 ResNr
l ResNr LBDial Setting
sne r0 r0 ResNr
max ResNr ResNr 1
SelectRecipe:
select hashValue r0 0 hashValue
sle r0 ResNr ResMax
select ResNr r0 ResNr 1
select ResNr ResNr ResNr ResMax
jr ResNr #
select hashValue hashValue hashValue -1301215609
select hashValue hashValue hashValue -404336834
select hashValue hashValue hashValue -290196476
select hashValue hashValue hashValue -929742000
select hashValue hashValue hashValue 226410516
select hashValue hashValue hashValue 2134647745
select hashValue hashValue hashValue -1406385572
select hashValue hashValue hashValue -654790771
select hashValue hashValue hashValue 502280180
select hashValue hashValue hashValue -82508479
select hashValue hashValue hashValue -297990285
select hashValue hashValue hashValue 1058547521
select hashValue hashValue hashValue 412924554
select hashValue hashValue hashValue 1579842814
select hashValue hashValue hashValue -787796599
select hashValue hashValue hashValue -1897868623
select hashValue hashValue hashValue 156348098
seq r0 hashValue hashMem
add r12 r12 1
select r12 r0 r12 0
blt r12 Delay BWait
move PresMM 1100.1
move TempMM 500.2
beq hashValue 2134647745 SetValue ##Lead
move TempMM 700.2
beq hashValue -404336834 SetValue ##Copper
beq hashValue 226410516 SetValue ##Gold
beq hashValue -929742000 SetValue ##Silver
move TempMM 900.2
beq hashValue -1301215609 SetValue ##Iron
beq hashValue -1406385572 SetValue ##Nickel
move TempMM 1000.2
beq hashValue -290196476 SetValue ##Silicon
beq hashValue -654790771 SetValue ## Steel
move TempMM 400.05
beq hashValue -82508479 SetValue ## Solder
move PresMM 31000.39
move TempMM 1100.2
beq hashValue 412924554 SetValue ##Astroloy
move PresMM 21000.3
beq hashValue 1058547521 SetValue ## Constantan
move PresMM 23750.2375
move TempMM 700.2
beq hashValue -787796599 SetValue ## Inconell
move PresMM 1000.02
beq hashValue 502280180 SetValue ## Electrum
move PresMM 11000.19
move TempMM 1900.21
beq hashValue -1897868623 SetValue ## Stellite
move PresMM 26000.29
move TempMM 975.0975
beq hashValue 1579842814 SetValue ## Hastaloy
move PresMM 51000.51
move TempMM 500.07
beq hashValue 156348098 SetValue ## Waspaloy
move PresMM 19000.19000
move TempMM 1300.14 ## invar
SetValue:
floor TempMin TempMM
sub TempMM TempMM TempMin
mul TempMM TempMM 10000
round TempMM TempMM
floor PresMin PresMM
sub PresMM PresMM PresMin
mul PresMM PresMM 100000
l SetTemp Furnace Temperature
div SetTemp SetTemp 100
round SetTemp SetTemp
mul SetTemp SetTemp 100
l SetPres Furnace Pressure
div SetPres SetPres 500
round SetPres SetPres
mul SetPres SetPres 500
round PresMM PresMM
max SetPres SetPres PresMin
brlez PresMM 2
min SetPres SetPres PresMM
max SetTemp SetTemp TempMin
brlez TempMM 2
min SetTemp SetTemp TempMM
div r0 SetTemp 10000
add r0 r0 SetPres
s ICFurnaceController Setting r0
j BWait