torcherino_ae_mod-1.01.jar
Curse Maven Snippet
What's new
Changelog — Torcherino AE
The changes committed between the baseline and HEAD correspond to the version bump 1.0.0-1.21.1 → 1.01; the remaining working-tree changes are not yet versioned.
Added
- AE Acceleration Torch I & II — two new tiered torch variants with fixed speed caps (64x and 324x). Their limits are not governed by the
torcherino.maxSpeedconfig; placed torches default straight to their tier cap. - TPS-adaptive throttling (
AdaptiveThrottle) — a process-wide dynamic "cap lock" for the per-source tick-call budget. Server tick timing is sampled (EMA-smoothed, hysteresis thresholds), and under heavy load the budget is halved tier by tier until the tick time recovers. Both accelerators and torches share this throttling. - New server config group
adaptive.*—enabled,floorCallsPerSource,tightenMs,relaxMs(defaultstrue / 256 / 45 / 35). - New config
crafting.smartAccelerateScope(enumSmartAccelerateScope) —ALL_ACCELERATABLE(default) links every acceleratable device on the grid for smart acceleration with zero configuration (works with third-party AE machines);CRAFTING_MACHINESrestricts linkage to crafting machines. - Accelerator Config Card: Crafting CPU group binding — right-clicking any formed member of a Crafting CPU multiblock now binds/unbinds the whole group (single group identifier + stored bounding-box geometry). New localized messages
bind_cpu_success/unbind_cpu_success, updated card tooltip. - Accelerator Config Card: self-cleaning bindings — new
ConfigCardCleanupserver coordinator (listens toBlockEvent.BreakEvent,ExplosionEvent.Detonate,ServerTickEvent.Post):- Plain devices (block entities / cable parts) that are mined or exploded are removed from cards in online players' inventories and from accelerator slots on the same grid, one tick after the block is confirmed gone; the corresponding
CONFIG_CARDinjections are revoked precisely. - Crafting CPU multiblock demolition (AE2 vanilla + AdvancedAE big CPU, soft-compatible): after a member block is removed, the whole cluster snapshot is observed for 4 ticks until AE2 finishes its "disband + re-form" resolution. If one formed cluster survives → the card binding is re-pointed to the new cluster (new min-corner id + new geometry); if nothing survives or it splits into several groups → the binding is deleted.
- Deliberately conservative: cards inside un-enumerable containers (chests, ME storage) and offline-player inventories are left to self-heal on next use; unloaded chunks abort the verdict.
- Plain devices (block entities / cable parts) that are mined or exploded are removed from cards in online players' inventories and from accelerator slots on the same grid, one tick after the block is confirmed gone; the corresponding
- New pure-data lifecycle API on
ConfigCardData—removeCpuBinding,replaceCpuBinding,purgeRemovedBlockDevices,isDeviceBound, plus immutable helperswithoutCpu,withCpuReplaced,withoutBlockDevicesAt. CraftingSupport.CpuGroupmember snapshotting — newcpuGroupOf(BlockEntity, boolean includeMembers)and unified structural view across AE2 vanilla and AdvancedAE large CPUs (soft reflection, no hard dependency).
Changed
- AE Acceleration Torch rewritten and decoupled — it no longer implements
IAccelerationSourcenor goes throughAccelerationEngine. It now works Torcherino-style with three parallel acceleration paths: repeated AE-grid device ticks (IGridTickable), repeated vanilla block-entity tickers (EntityBlock.getTicker), and repeated random ticks (BlockState.randomTick). Target scans run every 20 ticks with immutable snapshots; block-entity type is re-verified before each invocation to avoid accelerating replaced blocks. Budget is enforced per call via the shared adaptive throttle. Torches can now accelerate any suitable block, not only AE machines. - Upgrade-card multiplier algorithm — diminishing returns — the old exponential stacking per tier is replaced by "first card of each tier applies its full nominal factor, each additional same-tier card converges via retention". New config
acceleratorCardDiminishing(default0.45); setting it to1.0fully restores the old exponential behavior. Overflow handling now clamps via double checks toInteger.MAX_VALUE. Reference point: 4× tier-III cards go from 16384x down to ≈526x. - Accelerator device compatibility widened — machines that are on the AE grid but process through vanilla tickers are now supported (
AccelerationTarget.vanillaTicker, engine/target rebuild adapted). The device list and menu now treat "grid-ticking or on-grid-but-vanilla-ticking" devices uniformly. - Smart-acceleration default scope widened to all acceleratable devices on the grid (
ALL_ACCELERATABLE), so third-party AE work machines are accelerated out of the box. - Config Card binding now covers Crafting CPUs when seated in an accelerator slot: bound CPU groups are treated like "selected for smart acceleration" (enumeration via the grid's crafting service).
- Config Card data invariants strengthened — stored CPU bounding-box geometry is kept consistent with the device list on every write (dedupe, stable sorting, stale-geometry trimming).
- Localization updated — en_us / zh_cn tooltips for the config card and upgrade cards reworded; new CPU binding keys added.
- Version bumped to
1.01(gradle.properties); README and AGENTS.md rewritten/synced.
Fixed
- Torches no longer target each other (prevents recursive acceleration loops), and replaced blocks are no longer accelerated after a rescan.
- Stale card bindings pointing to destroyed devices/CPU groups no longer linger in saves or cause re-injection when the card is re-inserted or a new block appears at the same coordinates.
- Partially dismantled CPU groups no longer keep outdated geometry: the card highlight and injections follow the cluster's real re-formed bounds.
- Old exponential formula's long-overflow paths hardened via double-based clamping.
Testing
MultiplierCalculatorTest: cases for full-value first cards, mixed-tier parity with the old formula, the ≈526x reference result, retention1.0restoring legacy behavior, parameterized overload, and int-overflow clamping.ConfigCardDataTest: coverage for coordinate-based device purging (dimension-aware, CPU entries untouched), whole-group CPU deletion, and re-form re-binding with moved anchors and geometry refresh.
This mod has no additional files

