The Fluid Export Bus was voiding fluids on craft only mode because it
tried to craft it, and decided to continue with the normal export logic:
Extract fluid from ME system and fill the tank.
Unfortunately, there was a condition that prevented the extracted fluid
from going anywhere depending on craft only mode, so it got voided.
Commit fixes this by skipping the normal extract logic if set to craft
only.
The amount must be simulated before extracting from the ME system. This
helps prevent a scenario where we cannot insert the fluid back (such as
when we have a fluid storage bus on Extract Only).
Signed-off-by: Firenoo <49818773+firenoo@users.noreply.github.com>
* EC2 deprecation: Part 1 - Items
Laying the groundwork for absorbing EC2 mappings.
* EC2 deprecation: Part 2 - Blocks
* EC2 Deprecation: Part 3 - Parts
Parts are deprecated.
* set config "replaceEC2" to default true
* API changes to make room for Extra Cells fluid placeholder
* Finish basic item replacement code
- parts work
- items are remapped properly, and converted when they enter the player inventory
* Fixed some storage cell conversion issues
The placeholders did not transfer NBT data properly
* Add handlers for deprecated item cells
Now the placeholder should work automatically in a drive.
The void cell is still a WIP.
* Add more tooltip help and cell handler for void cell
* apply spotless
too lazy to rebase
Previously, only one partition item was allowed. This fix will have
the cell consider all 63 slots. If you configure more than 1 or 5
cell slots, it works as expected - up to 1 or 5 of the whitelisted
fluids can be stored at a time.
This will degrade performance slightly.
Signed-off-by: Firenoo <49818773+firenoo@users.noreply.github.com>
The Certus Quartz Tank previously did not consider the
FluidContainerRegistry API for fluid containers, so fluid containers
that implemented that (like ic2 cells) were voided when filling the
tank.
Signed-off-by: Firenoo <49818773+firenoo@users.noreply.github.com>
* Network throttle: Force ME update packets to be sent once every 50ms.
1. Item and fluid packets are separated to their own classes, as they are
not even allowed to be mixed together in the first place. This will enforce a strict
separation of the two.
2. New network worker thread for handling ME inventory updates. Instead of
creating packets directly, classes should schedule packet(s) to be sent at the
next 50ms boundary. The packet has a limit of 256 items to prevent killing the
client, but this can be changed in the config. In fact, the packet send rate is
also configurable.
3. Upon opening a terminal GUI, ME update packets are split. Only the last received
packet will trigger a terminal sorting, so if the ME system is large, it may take
several seconds (!) to load all the items.
* Update SPacketMEFluidInvUpdate.java
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>