
Interfacing fluids/items with different systems accounts for each other's priority
jchung01 opened this issue · 1 comments
Describe the bug
This might be a bit difficult to explain, but here goes. I'm not sure if this is a bug, or intended behavior.
Context: Having a large ME system with rapidly changing fluids can cause lag with the terminal open, so a separate system with just the fluids may be desirable.
Suppose then you have two ME systems -
System 1: stores whatever fluids you want (whether with fluids storage cells, fluid storage buses, etc.), marked by pink cables.
System 2: your "main" system, marked by lime cables
System 1 exposes its fluids to System 2 with a fluid interface interface A
(System 1's side) + fluid storage bus (System 2's side). On System 2's side, it reports the fluid from interface A
correctly in a fluid terminal. Taking fluid directly from the terminal, such as with a bucket, works as expected. However, suppose you want to access the fluid from a fluid interface interface B
on System 2's side for automation purposes. Asking for the exposed fluid through interface B
will NOT provide the interface with the fluid, UNLESS priority is set to greater than 0. (The priority of the fluid storage bus does not matter)
This issue does not occur if you leave interface A
unconfigured so all fluids from System 1 are exposed, but that defeats the purpose of having two separate systems with only select fluids exposed in fixed amounts.
The same issue occurs when using a dual interface from Glodblock's AE2FC rework.
To Reproduce
- Setup two separate ME systems, denoted as System 1 and System 2 as above.
- Fill System 1 with a fluid and place a fluid interface
interface A
configured for that fluid. - Place a fluid storage bus (on System 2's side) against the fluid interface so System 2 can access the fluid.
- Configure a fluid interface
interface B
on System 2 for that same fluid. - Observe that
interface B
does not retrieve any fluid. - Change the priority on
interface B
to 1 or higher. - Observe that now
interface B
retrieves the fluid as expected.
Expected behavior
interface B
should be able to correctly retrieve the fluid from its network (System 2) without needing to change the priority on interface B
. After all, interface A
should just be seen as any other external tank connected by a fluid storage bus,
Additional context
No relevant errors/logging, but can provide if desired.
The setup, System 1 on the left (pink) and System 2 on the right (lime):
Interface A:
Interface B, 0 priority:
Interface B, 1 priority:
Environment
- Minecraft Version: 1.12.2
- AE2 Version: v0.55.13
- Forge Version: 14.23.5.2860
- You can see EnderIO (initially used to input fluids), TOP, and JEI in the screenshots, but I have tried with just AE2 and the behavior is still the same.
Figured it out and apparently, this behavior applies to items as well.
According to this, the action will respect priorities across different networks. And according to this, priority must be strictly greater to extract the stack. That is, interface B
checks its priority against interface A
(which belongs to a different system) and only grabs the stack if B's priority is strictly greater than A's.
I was not aware of the special handling of other ME networks with the storage bus, so I suppose this can be fixed on the user end by setting interface A
's priority as very low. Therefore, this is not really a bug, so I will close this. Something that can be considered in the future though is factoring in the priority of the storage bus itself as it seems that currently it does not matter at all for this interaction.