Separate Interface subnetworking to a separate block
Technici4n opened this issue ยท 10 comments
Part form allows for more compact setups, for example a pattern provider could push to a single block space containing a cable, gateway and 2 storage busses to split inputs to different blocks of a processing chain.
(We might be "forced" to have both if we want to keep the same functionality as what exists right now).
What's the purpose of this? The interface doesn't have conflicts with returned items like it used to because the pattern provider was split off; what's this split for?
Is it another item for the sake of having more items?
Is it to reduce confusion in new players? (but increase confusion in returning old players, like pattern providers)
The goal is to avoid the subtle behavior where having a configured item in the interface exposes the interface's own inventory to a storage bus, but not having any configured item exposes its entire network. Maybe this should just be a GUI setting toggle.
The goal is to avoid the subtle behavior where having a configured item in the interface exposes the interface's own inventory to a storage bus, but not having any configured item exposes its entire network. Maybe this should just be a GUI setting toggle.
Gimpansor linked this issue in Discord after a discussion about how I thought it was weird the interface behaved this way, and the quoted text is why I thought it was weird.
To me, everything in AE2 has an explicit purpose, and you modify the way it does that thing by clicking buttons in the GUI. That the Interface behaves differently not because you clicked a button but rather because you put something into it just doesn't mesh with the rest of how AE2 works, at least in my perspective.
I think changing the behavior based on a GUI button would be sufficient instead of adding a new block. "Expose items in Interface" vs "Expose items in ME Network". Bonus points maybe for graying out and disabling the "keep stocked" inventory slots when in the second mode?
The second thing that trips me up, and I don't know that this is feasible to fix, is that the behavior for what can be accessed is different depending on what you hook up to it. If you connect a Storage Bus to an empty Interface, the Storage Bus can see the entirety of the ME storage on the Interface's network. But if you hook up an item from another mod, like a Logistical Sorter from Mekanism, you can't pull arbitrary items out of the ME network. On the other hand, behavior is identical for Storage Bus on Interface as it is for any other mod's item extraction on Interface when you have stocked items in the interface -- both are able to see those items and only those items.
(edit to add) Gimpansor clarifies that it's because the Interface exposes an ME Storage Handler capability and an IItemHandler
capability, and that the Storage bus can pull the ME Storage Handler and the IItemHandler
but other mods only look for the IItemHandler
. That clarifies the difference on a technical level, which makes perfect sense. It still seems unintuitive from a gameplay perspective.
This is just my input as a long-time player of AE2. I've been using AE2 extensively over the years and never knew the empty Interface behaved this way. I wanted to give a non-AE2-dev viewpoint for why I agree with this change (or at least with the GUI button version of this change).
But if you hook up an item from another mod, like a Logistical Sorter from Mekanism, you can't pull arbitrary items out of the ME network.
This will never be allowed due to performance issues - IItemHandler
is just not suitable for large inventories. (And what mods might do with it could make things even worse).