Capacitor Bank

The Capacitor Bank (BlockCapBank / TileCapBank) is Ender IO’s primary RF power storage multiblock. It stores large amounts of energy and can be expanded by connecting multiple banks together.

Core Blocks

  • Block: crazypants.enderio.machine.capbank.BlockCapBank
  • Tile: crazypants.enderio.machine.capbank.TileCapBank
  • ModObject: blockCapBank

Cap Bank Types

Type Max I/O (RF/t) Max Storage (RF) Multiblock Creative
Simple Config.tierOneMaxIoRF Config.tierOneMaxStorageRF Yes No
Activated Config.tierTwoMaxIoRF Config.tierTwoMaxStorageRF Yes No
Vibrant Config.tierThreeMaxIoRF Config.tierThreeMaxStorageRF Yes No
Creative 500,000 tierTwoMaxStorageRF No Yes

Config values (from Config.java):

  • capacitorBankTierOneMaxStorageRF: 1,000,000 RF
  • capacitorBankTierTwoMaxStorageRF: 5,000,000 RF
  • capacitorBankTierThreeMaxStorageRF: 25,000,000 RF

Multiblock Formation

  • Automatic formation: Any two capacitor banks of the same type (same UID) that are adjacent will form a network.
  • The network is managed by ICapBankNetwork (server-side: CapBankNetwork, client-side: CapBankClientNetwork).
  • No fixed shape: Any adjacent arrangement of same-type banks is valid — networks grow organically.
  • Scale: Minimum 1 block (solo), no hard maximum. All members share total storage and I/O.
  • Network discovery: NetworkUtil.ensureValidNetwork() is called each tick if no network is assigned.
  • Breaking any member destroys that member’s participation; the remaining banks remain connected.

Formation Rules

  • Same type required: canConnectTo() checks getType().getUid().equals(cap.getType().getUid()).
  • Formation is triggered automatically on block update.
  • Inventory sharing: The network has a shared inventory of 4 slots, held by one designated member (getInventory().getCapBank()).

Energy / Data Flow

  • Per-tick I/O: Each bank’s maxInput / maxOutput is set from its CapBankType. All members share the network’s aggregate power.
  • Energy distribution: CapBankNetwork.distributePower() / CapBankNetwork.receiveEnergy() routes power across all members.
  • Receptors: EnergyReceptor tracks adjacent power interfaces (machines, conduits). IO mode per face: PULL (input), PUSH (output), DISABLED, NONE.
  • Redstone control: RedstoneControlMode (IGNORE / SIGNAL_OFF / SIGNAL_ON) controls whether the bank accepts/provides power.
  • Display types: Per-face InfoDisplayType (NONE, INPUT, OUTPUT, STORED, CAPACITY) controls the icon overlay.
  • Comparator output: IComparatorOutput returns signal strength proportional to fill ratio.

GUI

  • Right-click opens the capacitor bank GUI (GuiCapBank).
  • Displays: current storage, max storage, I/O rates, network members, inventory.
  • IO mode cycling per face via the GUI.

Rendering

  • CapBankRenderer (in render/) renders the multiblock as a unified structure.
  • Per-tier textures: simple (blue border), activated (orange), vibrant (green), creative (rainbow).
  • Icon overlays for input/output/locked states.

See Also