Releases: MineExplorer/IC_Libraries
EnergyNet lib v13
Fixed bug that skipped conductor tiles for energy packets with split transfer mode
EnergyNet lib v12
Overview
The library got a major architectural overhaul, introducing a proper wire connections graph structure, smarter energy distribution, a generator output buffer and in-game debug mode, while maintaining backwards compatibility.
Breaking Changes
canExtractEnergyin theEnergyTileinterface is deprecated and replaced withcanEmitEnergy.- Added
getFreeEnergyAmount()andisGenerator()methods to theEnergyTileinterface. EnergyTileRegistry.machineIDsandisMachine()have been removed.EnergyGridBuilder.onWireDestroyedandrebuildForWirehave been removed; wire destruction is now handled internally by the grid viaremoveCoords.
Bug Fixes
- Fixed packet transfer in mixed-type grid connections.
EnergyGrid.receiveEnergy()now automatically converts incoming packets of a different energy type. - Deferred node removal to prevent modification of the node list during its iteration.
- Removed excessive recursion branching during energy packet transfer, each node connection is iterated only one time.
New Features
Block Graph Architecture
The flat wires coordinate list BlockCoordsData has been replaced with a proper adjacency graph. Each wire block is now represented by a BlockNode that tracks directed links to neighboring wire blocks and tile entity nodes. This enables accurate grid integrity checks and correct splitting without full grid rebuild.
Generator Output Buffer
Tile entities that return true from isGenerator() get an energy buffer that stores one packet of energy for each connected grid. It allows to accumulate energy from multiple generators in the grid and send it via one packet, significantly reducing algorithm time complexity.
TransferMode Enum
Energy packets now carry a TransferMode:
Split(default) — queriesgetFreeCapacity()on all receivers, filters to active ones, and distributes energy evenly sorted by available capacity.Full— dumps all energy into the first available receiver in order.
TrasnferMode can be set in addPacket() or defaultTransferMode property in EnergyNode.
Idle Grid Cleanup
Wire grids with no active entries or receivers auto-destroy after 200 idle ticks (~10 seconds), freeing memory from disconnected wire segments.
In-Game Debug Mode
A new debug system can be toggled with the chat command /enet debug on|off. When enabled:
- Wire grid creation and removal is logged to chat.
- A HUD tip shows average TPS, mean energy tick duration, and peak tick duration over a rolling 20-tick window.
New API
EnergyTypeRegistry.createWireGrid(blockID, blockSource)— factory method for creating a grid instance from a registered wire ID.EnergyNet.debugEnabled— readable flag.BlockNodeandEnergyTileNodeare now exported from the library.
EnergyNet lib v11
Introduce BlockCoordsData to hold cable net block coords
LangLoader
Small library for loading translations from .lang files
vanilla-recipe-v6
Added integration with Recipe Viewer to view stonecutter recipes added via library
StorageInterface v14
fixed errors
StorageInterface v13
- allow to define custom StorageInterface classes
- cache tile entity interface
SoundLib v3
First public release of SoundLib
EnergyNet v10
Fixed rounding of float energy amounts
VanillaRecipe v5
Fixed bug on adding recipe ingredients with data 0 to modded workbench