Skip to content

Releases: MineExplorer/IC_Libraries

EnergyNet lib v13

23 Apr 00:17

Choose a tag to compare

Fixed bug that skipped conductor tiles for energy packets with split transfer mode

EnergyNet lib v12

18 Apr 13:14
6428c92

Choose a tag to compare

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

  • canExtractEnergy in the EnergyTile interface is deprecated and replaced with canEmitEnergy.
  • Added getFreeEnergyAmount() and isGenerator() methods to the EnergyTile interface.
  • EnergyTileRegistry.machineIDs and isMachine() have been removed.
  • EnergyGridBuilder.onWireDestroyed and rebuildForWire have been removed; wire destruction is now handled internally by the grid via removeCoords.

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) — queries getFreeCapacity() 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.
  • BlockNode and EnergyTileNode are now exported from the library.

EnergyNet lib v11

15 Mar 11:02
d71e847

Choose a tag to compare

Introduce BlockCoordsData to hold cable net block coords

LangLoader

12 Mar 16:15

Choose a tag to compare

Small library for loading translations from .lang files

vanilla-recipe-v6

07 Sep 15:49

Choose a tag to compare

Added integration with Recipe Viewer to view stonecutter recipes added via library

StorageInterface v14

09 Jul 11:53

Choose a tag to compare

fixed errors

StorageInterface v13

08 Jul 14:25

Choose a tag to compare

  • allow to define custom StorageInterface classes
  • cache tile entity interface

SoundLib v3

07 Jul 17:10
f2faabe

Choose a tag to compare

First public release of SoundLib

EnergyNet v10

05 Jul 15:14

Choose a tag to compare

Fixed rounding of float energy amounts

VanillaRecipe v5

06 Feb 17:40

Choose a tag to compare

Fixed bug on adding recipe ingredients with data 0 to modded workbench