* Fix the adv blocking mode setting shown w/o upgrade
* Use else ifs instead of ifs when looking for button
* Register dual p2p interface to interface term
* Fix moving inventory region when space is held
* Fix scrollbars not initialized when terminal is empty
* Fix fluid handling for the 3rd time
Rearranges the steps to insertion and validates whether the tank can be
drained.
* Fix fluid extraction for the 3rd time
ThaumicTinkerer returns null for sides. Normally this is handled when
it is directly adjacent to the dual interface via a null check, but for
p2ps it is not checked, leading to a NPE. Adds a check for it
* Render drops as fluids in GuiCraftConfirm
The crafting tree feature changed where the itemstacks were being drawn
from `drawFG` to `drawListFG`. This changes the ASM to include that in
its visit.
* Render drops as fluid in GuiCraftingTree
Now look for fluid drops in crafting tree.
Temporarily permanent ASM.
* Add the dual P2P interface
- Can be disabled in the config
- Updated dependencies
- We now require a hard inheritance dependency on beta-238+.
- CANNOT BE ATTUNED.
* Dependency cleanup (don't use pre)
* Fix dual interface background
* Fix null icon for p2p dual interface
BetterP2P needs this to properly display the icon.
* spotlessApply
---------
Co-authored-by: GitHub GTNH Actions <unknown>
* Untangle Baubles hard dependency and skip on unmapped items/blocks
Have forge issue the standard "Missing items" screen when updating, so
players are warned before joining the world. Previously we consumed all
missing mapping by mistake.
Remove the hard dependency on baubles by adding Optional.Interface
* spotlessApply (#138)
Co-authored-by: GitHub GTNH Actions <>
* Update dependencies and fix wrong gui channel
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Actionable.SIMULATE gives faulty results. Using Actionable.MODULATE will
force the AE system to extract the correct amount, which fixes a dupe bug
with the previous implementation.
* gradle updateBuildScript
* fix comments and commented-out code
Code deletion, converting comments into javadocs, and refactoring code to not
need comments.
* remove redundant suppressions
* replace C-style array declaration with Java-style
* make private field final
* remove unnecessary semicolon
* extract a common part from an if
* simplify boolean expression
* simplify ternary if
* remove unused imports
* convert escaped characters for clarity
* replace while with for
* replace explicit types with diamond operators
* replace anonymous type with lambda
* enable modern Java syntax
* migrate to enhanced switch
* migrate to pattern variables for instanceof
* remove empty javadoc
* add Nonnull annotation to overrides of Nonnull methods
* replace wailaStack with null
When wailaStack is not null, the flow breaks out of the loop,
so there's no need to confuse the reader with putting wailaStack
both as the result and the parameter of the call - there's no
recursion.
* int cannot be bigger than its max value
* suppress dataflow warning
* remove redundant initializer
The default value of int is 0.
* null check is covered by instanceof
* simplify some calls of addVertexWithUV
* fix typos and add TODOs
* make flipState more understandable
* Add an API to allow other mods to blacklist fluids from this mod.
* Removed Thaumic Energistics config setting. This will be handled by
Thaumic Energistic's side (which also happens to have a config setting).
* Added an API that allows for blacklisting fluids from either the storage
or the display individually.
* Prevent blacklisted fluids from being discretized
* Update API usage
- use AE2's new API
- use ThE's config setting for aspect -> gas
* spotlessApply
---------
Co-authored-by: GitHub GTNH Actions <unknown>
* Replace ore dictionary bus
Extra Cells ore dict bus -> export bus w/ ore dict card
(retains ore filter setting, not verified they are 1:1)
* Add OpenComputer migration
Moves migration to postInit, and migrates OC upgrades.
* Remap wireless w/ correct encryption key + power
Basically now works without needing to relink in security term
* Update buildscript
* spotless apply
* spotlessApply (#125)
Co-authored-by: GitHub GTNH Actions <>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update ae2 to latest (beta-203)
* Add support for the Advanced Blocking Card to Dual Interfaces
Behavior: The Dual Interface acts in the same way as the regular ME
interface when the advanced blocking card is used, but has an additional
check for fluids on top of items contained in the ME system.
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>