-
Notifications
You must be signed in to change notification settings - Fork 0
Machines Power and Upgrades
Neroland Core provides a machine framework that other Neroland mods build on. Core itself ships no machines, generators, or upgrade items — it defines the power unit, the energy contracts, the upgrade resolver, and the cross-loader energy interop so every Nero machine speaks the same language. It does, however, ship a few passive storage blocks (see below) that ride these contracts.
The shared power unit is Nero energy (NE).
| Piece | Role |
|---|---|
NeroEnergyStorage |
The loader-neutral energy contract |
EnergyBuffer |
Ready bounded implementation: generate, consume, insert/extract, bounded by maxIO
|
EnergyConversions |
Converts to/from Forge Energy via the neroEnergyToForgeEnergyRatio config ratio |
AbstractMachineBlockEntity bundles an EnergyBuffer plus an
UpgradeContainer and persists both. Downstream machines extend it.
Machines accept upgrade modules that change how they run. The module types are fixed by Core; the items are supplied by downstream mods.
| Upgrade type | Effect |
|---|---|
| SPEED | Faster operation (speedMultiplier) |
| EFFICIENCY | Lower energy use (energyMultiplier) |
| RANGE | Larger working area (rangeBonus) |
| CAPACITY | Larger energy buffer (capacityMultiplier) |
How it fits together:
- a machine has an
UpgradeContainerof slots - a Classifier maps an item stack to a type, usually via a tag check
-
UpgradeModifiersturns module counts into multipliers
Because every machine across every Nero mod uses the one resolver, modules are interchangeable and balance is tuned in a single place — the config:
-
upgradeStackingDiminishsets the diminishing-returns curve for stacked modules -
upgradeModuleSlotCapclamps the slot count - hard caps bound the resulting multipliers
Core does not ship module items; a downstream mod defines the items and the stack-to-type mapping.
Core mirrors the energy seam for two more resource types so mods can pipe fluids and gases the same way they pipe NE. Both are generic — Core ships no specific fluids or gases, only the contracts and their cross-loader capabilities.
| Piece | Role |
|---|---|
NeroFluidStorage |
The loader-neutral fluid contract |
FluidBuffer |
Ready bounded single-fluid implementation (mB-measured) |
NeroGasStorage |
The loader-neutral gas contract |
GasBuffer |
Ready bounded single-gas implementation |
NeroGases |
Helper for naming/resolving gases (each identified by an id) |
Core owns the shared nerolandcore:fluid and nerolandcore:gas capabilities on
each loader, exactly like nerolandcore:energy.
Core ships five passive storage endpoints (its first block-entities); the first four also have a Creative variant. They hold (or void) a resource and offer it to pipes and hoppers, but do no work — they are not machines:
| Block | Holds | Page |
|---|---|---|
| Battery | Nero energy (NE) | Battery |
| Fluid Tank | one fluid | Fluid Tank |
| Gas Tank | one gas | Gas Tank |
| Item Store | items (vanilla container) | Item Store |
| Trash Can | nothing — voids items, fluid, and gas | Trash Can |
The Battery exposes nerolandcore:energy, the Fluid Tank nerolandcore:fluid, the
Gas Tank nerolandcore:gas, and the Item Store the standard vanilla item handler
(it opens the vanilla chest GUI). The Trash Can accepts all three of nerolandcore:fluid,
nerolandcore:gas, and the item handler on every side and discards whatever is inserted; it
opens a vanilla chest-style GUI with a single drop slot (Core's first menu type + client
screen). All five are pickaxe / iron-tier mineable and ship crafting recipes (see
Recipes). The Creative Source Blocks are endless
source/sink variants of the first four for testing.
Core owns the shared nerolandcore:energy capability/lookup on each loader
through the EnergyLookup seam. Downstream machines register their block-entity
against Core's capability, so any Nero machine (from any mod) can find any
other. The same pattern applies to nerolandcore:fluid and nerolandcore:gas.
Bridging to external Forge Energy or Fabric energy libraries is deferred until
those libraries port to MC 26.x.
The full machine, power, and upgrade API is documented in ../docs/MACHINES-POWER-UPGRADES.md.