2023-04-01 14:57:11 +00:00
|
|
|
# Runs up to six sorters that filter
|
|
|
|
# throughput by ItemClass.
|
|
|
|
# When looking at the outputs,
|
|
|
|
# left = ITEMCLASS, right = everything else
|
2022-01-17 14:47:25 +00:00
|
|
|
|
2022-09-13 18:22:22 +00:00
|
|
|
alias SlotOccupied r0
|
|
|
|
alias InputClass r1
|
|
|
|
alias IsClass r2
|
|
|
|
alias SorterCounter r3
|
2022-01-17 14:47:25 +00:00
|
|
|
|
2022-09-13 18:22:22 +00:00
|
|
|
move SorterCounter 0
|
2022-01-17 14:47:25 +00:00
|
|
|
|
2023-04-01 14:57:11 +00:00
|
|
|
define ITEMCLASS 19 # 10=ores,19=ingots,33=wrekage
|
2022-01-17 14:47:25 +00:00
|
|
|
define INPUTSLOT 0 # sorter input-slot
|
|
|
|
|
|
|
|
start:
|
2022-10-24 14:19:36 +00:00
|
|
|
bdseal dr3 sort
|
2022-09-13 18:22:22 +00:00
|
|
|
add SorterCounter SorterCounter 1
|
|
|
|
bgt SorterCounter 5 reset
|
2022-01-17 14:47:25 +00:00
|
|
|
j start
|
|
|
|
|
|
|
|
sort:
|
|
|
|
s dr3 Mode 2 # set sorter to IC mode
|
2023-04-01 14:57:11 +00:00
|
|
|
# check if anything to sort
|
|
|
|
ls SlotOccupied dr3 INPUTSLOT Occupied
|
2022-09-13 18:22:22 +00:00
|
|
|
beqz SlotOccupied ra
|
|
|
|
ls InputClass dr3 INPUTSLOT Class
|
2023-04-01 14:57:11 +00:00
|
|
|
# change seq to sne to swap output ports
|
|
|
|
seq IsClass InputClass ITEMCLASS
|
2022-09-13 18:22:22 +00:00
|
|
|
s dr3 Output IsClass
|
2022-01-17 14:47:25 +00:00
|
|
|
j ra
|
|
|
|
|
|
|
|
reset:
|
|
|
|
yield
|
2022-09-13 18:22:22 +00:00
|
|
|
move SorterCounter 0
|
2022-12-18 14:52:18 +00:00
|
|
|
j start
|