Repository navigation
NeroTech 0.4.0-beta.1
Pre-release
Pre-release
·
11 commits
to main
since this release
The add-on seam for NeroPower, and four safety fixes. Requires Neroland Core 1.13.0 (was
1.13.0).
Added
- Public API package
za.co.neroland.nerotech.api— stable within a 0.x minor; NeroPower depends
on it. Everything outside it stays internal.PowerMachine: the read/steer surface everyNeroTechMachineBlockEntitynow implements
(energy buffer, heat / capacity / add / extract / ambient / overheated, preset get + set,
shedable(),owner(),reportStatus).addHeat,extractHeatandreportStatusare public on
the base now;heatCapacity(),ambient(),owner()andclearOwner()are new.MachineTypeRegistry: register a block-entity type on the energy / item / gas / fluid surface
once and it is wired on every loader like NeroTech's own machines. NeroTech seeds it first from
NeroTechCommon.init();ModBlockEntities.*MachineTypes()now return registry snapshots.
NeoForge reads the registry inRegisterCapabilitiesEvent(add-ons register from their mod
constructor); Fabric subscribes withonRegisteredlisteners so a registration from a later
initializer is still wired; Forge already attaches byinstanceof.MachineFailureEvents: failure stages (1 warning/throttled, 2 unstable, 3 failure/meltdown,
4 containment breach) published on Core'sThresholdEventsbus, channel
nerotech:machine_failure, scopemachineId@dimension:pos— never a player. The Fusion Reactor
fires stage 1 once per overheat episode (rising and falling), stage 3 on meltdown and stage 4
on a breach.PlanetApi:solarMultiplier(Level),windMultiplier(Level)andambientAt(Level, BlockPos)—
the same Nerospace-aware per-planet model NeroTech's generators and thermal model use.
- Maven publishing of the nine loader cells as
za.co.neroland.nerotech:nerotech-<loader>-<mc>:<version>to Maven Local and GitHub Packages
(mirrors Core's setup; seeMANUAL-PUBLISH-YML.mdfor the workflow step). - Config:
fusionMeltdownTerrainDamage(auto|on|off, defaultauto) and
fusionMeltdownRadiusCap(1..16, default 8).
Fixed
- Wireless Power Node pairing is authorised. Pairing or unlinking with the Configurator now
requires that the acting player may interact with the block at both endpoints (spawn protection,
world border, adventure rules) and, when both nodes have an owner, that they own both or hold
gamemaster permission. Refusals showitem.nerotech.configurator.link_denied. The actor is
always the item holder, never a nearest-player lookup. - Wireless pairing auth hardened. The rule now covers every node an action touches — the
clicked node, the pending node, and any node whose current link would be broken (the clicked
node's partner on unlink, either end's old partner on pair). Each must be in a loaded chunk
(an unloaded endpoint can't be verified and is refused), interactable by the player, and — when
it has an owner — owned by the player unless they are a gamemaster; one owned endpoint is enough
to require ownership (previously only when both were owned, and an unloaded partner skipped the
owner check entirely). The decision lives in the Minecraft-freeitem.LinkAuth. - Tests:
WirelessPairingAuthTest(pairing/unlink authorisation matrix) and
MeltdownTerrainModeTest(fusionMeltdownTerrainDamageon / off / auto × dedicated /
singleplayer, plus unrecognised values reading asauto); the resolver moved to the pure
MeltdownMath.terrainDamage. - Fusion meltdown terrain damage is off on dedicated servers by default.
autoresolves to no
block damage on a dedicated server (the blast still hurts and knocks back, and the reactor is
still lost) and full damage in singleplayer / LAN; the radius ismin(shellSize + 1, fusionMeltdownRadiusCap). - Saved-data stores recover instead of crashing. The pollution, attribution-preference and
Tech Guide "seen" stores load through Core'sSavedDataRecovery(last-known-good backup, then a
fresh store), and each erasure refreshes that backup at once. - Data erasure reaches machine ownership. An erase request through Core's
PlayerDataErasure
hook now also drops the placing-player UUID from every machine the player owns: loaded machines
react on their next tick, unloaded ones on their next load, from a pending-erasure set kept in the
attribution-preference store for 30 days.