revise io system
Closed this issue · 1 comments
kukeiko commented
What
Revise the IO system to not use hardcoded ranges for input/output slots & and not be based on chest type
Why
Because that would generalize the logic much more and should allow for more flexibility for the player in terms of putting everything together.
- the io-bundler app would no longer require a "what is the main chest?" argument
- the io-chestcart apps would no longer require a "do i send or receive output?" argument, instead, the player can just flip the stacks on the other end
- io-chestcart would still need an argument "swap" or ("flip") so we can connect io-chestcarts directly to turtle powered farms
How
Current idea is to use an "I/O" named name tag in a chest to mark it as an IO chest - every slot left of the tag are input stacks, everything right of the tag are output stacks.
kukeiko commented
hardcoded ranges are gone, I/O tag is used instead.
if a chest does not have an I/O tag:
- if size == 27, it is an output chest
- otherwise it is an input chest
to work around this auto inference, programs can provide arguments to configure how a chest without a tag is to be interpreted (either input or output)