GTNewHorizons / GT-New-Horizons-Modpack

A big progressive questing modpack for Minecraft 1.7.10 balanced around the mod GregTech.
https://www.gtnewhorizons.com/
Other
1.01k stars 307 forks source link

Dual ME Interface in blocking mode does not distribute items in parallel, but a normal ME Interface does #17288

Open stage-owl opened 2 months ago

stage-owl commented 2 months ago

Your GTNH Discord Username

soldrifter

Your Pack Version

2.6.1

Your Server

SP

Java Version

Java 21

Type of Server

Single Player

Your Expectation

When a recipe is sent to a dual ME interface with blocking mode enabled, it should attempt to push the recipe items to any attached inventory. If that inventory is empty, one set of items should be distributed to that inventory.

image This setup is an ME Interface with blocking mode enabled, with a chest on either side. To reproduce the expected behavior:

  1. Place a pattern in the interface
  2. Request multiple of said pattern
  3. Observe that both chests receive 1 set of crafting items
  4. Observe that, upon emptying either chest, more items will be distributed (as long there are still items to distribute from the interface)

The Reality

When a recipe is actually sent to a dual interface, only a single chest will receive items, leaving other inventories empty unless the "prioritized" chest is destroyed. It's almost as if blocking mode views all attached inventories as one, and it stops pushing items if even a single inventory is not empty.

image This setup is an ME Dual Interface with blocking mode enabled, with a chest on either side. To reproduce the issue:

  1. Place pattern in the interface
  2. Request multiple of said pattern
  3. Observe that items will only be pushed to a single chest (in this case, the left one)
  4. Destroy the left chest
  5. Items will begin being pushed to the right chest
  6. Replace the left chest and empty the right chest, observe items filling the left chest again

To emphasize another situation: if the right chest has any items in it, it will block the left chest from receiving items as well. Again, it seems like the dual interface checks all attached inventories, and if it finds any of them to be non-empty, it won't push to any of them, contrary to the normal ME interface.

Your Proposal

It seems the normal ME interface is working as it usually does. In that case, the dual interface (with blocking mode enabled) should work the same way; by treating separate inventories as separate, sending items to any empty inventory.

Final Checklist

hiroscho commented 1 month ago

Blocking mode can be treated individually for each inventory with the normal ME Interface since it only handles items. The Dual Interface however has to handle fluids too. One could argue that for item-only patterns the Dual Interface could behave like the normal Interface however that would create two different behaviors for the Dual Interface which is even worse.

On another note the normal Interface in this setup will spill items to the other inventories (irrespective of them being empty or not) if there isn't enough space in the initially empty inventory. While this isn't likely to happen with chests other inventories could have more issues with that.