kukeiko/squirtle-cc-tweaked

revise io system

Closed this issue · 1 comments

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.

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)