[SI] SingularityIteration-0.1.10.13-beta.jar
Curse Maven Snippet
What's new
## 0.1.10.13
Based on 0.1.10.12 (`pr-0.1.10.12-20261019`). 2 items in total. See `docs/releases/0.1.10.13/UPDATE.md` for details.
- GitHub issue #18: When other mods' recipes' `getResultItem` returns null, machines broken without a wrench (e.g., the blast-breaking mode scanner from Explosion Overhaul) threw a NullPointerException during drop calculation, crashing the server. Added `RecipeResults` (treats null and exceptions as empty results); machine recovery drops now skip invalid recipes and materials, and drop the machine itself upon total failure; electric furnace and induction furnace smelting results are similarly protected.
- Hand jitter when wingmen hold nano swords, quantum swords, firearms, tools, etc. (other than Slashblades): During a swing, the entire pose switches to the vanilla pose (snapping at the start and end of each attack), walking arm swing in mid-air, and firearms waving their hands and restarting mid-way. New class `WingmanPose`: calculates item-holding poses from a smoothed state (melee defensive stance, ranged two-handed aiming), fail-safe smoothing (1.6 ticks, max 0.45 rad/tick), swing/recoil/slash stacking with zero at both ends; waving no longer restarts mid-way, shooting is changed to recoil. In offline tests, snapping and jitter above 1 Hz in all scenarios are 0 (0.1.10.12: up to 70 snaps).
- Full static audit `tools/wingman_hold_audit_1113.py` (item types, model third-person transforms and left-hand flips, client hooks, wingman code rules).
- Tools: New check `check_1113.py` and offline test `Harness1113`; GameTests `Round1113GameTests`.
## 0.1.10.12
Based on 0.1.10.11 (`pr-0.1.10.11-20261019`). 2 items in total. See `docs/releases/0.1.10.12/UPDATE.md` for details.
- Reactor accident investigation: Each nuclear reactor records the last 40 cycles in memory (casing heat, heat generation and dissipation, coolant, liquid cooling, column count and chunk, component heat, melted and depleted components, automation). Upon an accident (nuclear explosion, partial explosion, meltdown with explosions disabled, high-temperature dismantling), it saves an accident record (Overworld save, latest 64 cases) and analyzes primary and secondary factors (thermal runaway due to insufficient cooling, cooling component meltdown, hot coolant tank full, coolant depletion, liquid cooling stopped, external overvoltage, reactor chamber lost, unloaded chunks, heat spikes, etc.).
- New command `/mio_icif reactor audit` (list, `<id>`, `clear`); explosion sites drop a "Reactor Black Box" (non-flammable, blast-resistant, glowing, does not despawn), using it opens the report.
- Investigation report UI: time, coordinates, dimension, owner and nearby players; primary cause and description; core layout of the last cycle (melted components crossed out in red, depleted reflectors, exhausted fuel, component heat and remaining fuel); casing heat curve and per-cycle heat generation/dissipation for the last 40 seconds; metrics. Added a "Reactor Accident Investigation" page to the guide.
- Power grid starvation: In fair mode, large loads with no upper limit on rated input (Molecular Reassembler) take almost all output proportionally, and energy storage devices wait until the load is satisfied before charging, cutting off normal machines behind them. Changed to max-min fair (water-filling) allocation; energy storage devices supplying downstream machines receive one tick's worth of output in the first phase, and the receiver window rotates every tick. In the reported grid model, 7 machines recovered from 0 to 224 EU/t (all running).
- API: `FairShareDistributor.Receiver` added `relay`; new class `OverloadBlastLog` (API Guide Section 18).
- Tools: `lang_1112.py`, `art/blackbox_1112.py`; new check `check_1112.py` and offline test `Harness1112`; GameTests `Round1112GameTests`.
## 0.1.10.11
Based on 0.1.10.10 (`pr-0.1.10.10-20261019`). 10 items in total. See `docs/releases/0.1.10.11/UPDATE.md` for details.
- Purple-black missing texture squares when holding nano and quantum swords: The 3D models contained element rotations not accepted by 1.21.1, causing the entire model to fail to load; changed to legal single-axis rotations. Added GUI transforms for both forms of the quantum sword.
- Moved 29 JSONs from `models/item/3d` to `models/item`, replacing the `separate_transforms` wrapper models (the wrapper models now use png in the GUI, overriding the models' own GUI settings), retaining `overrides`; armor models also display 3D parts in the inventory.
- Lapis/Redstone coolant injector: The block count row overlapped with the centered title, moved to the empty row between the slots and the player inventory.
- Added a debug "Creative Generator": Creative mode only (placement, UI; unbreakable in survival, no drops), freely configurable output from 0 to 1 trillion EU/t (k/M/G/T, presets, x10, /10, toggle), ignores voltage and current limits and does not overload (new API `IOverloadFreeEnergySource`).
- Canner: When a fluid ejection upgrade ejects into an adjacent canner, it entered the other's right tank (wrong port selected), changed to enter the left (input) tank; insertion takes from the output tank.
- Chunk Loader: In steady state, it only consumes power (no longer `setChanged()`, copies collections, or scans upgrades every tick); new config `ChunkLoaders` (global toggle, chunks per loader/per player, loaders per player, owner offline minutes, EU per chunk, random ticks, owner-only editing), owner, admin disable, auto-resume after stopping due to rules, command `/mio_icif chunkloaders`; UI shows the stop reason.
- Wingman: When idle (no target for 2 seconds and owner is on the ground), lands next to the owner and turns off thrusters; takes off immediately when there is a target, a command, or the owner moves.
- Wingman holding a Slashblade: Flight multiplier and landing transition smoothly interpolated, sword-holding arm is static, eliminating hand jitter; each slash is synced and plays a swinging animation (diagonal slash, horizontal sweep, two-handed downward chop), combo input changed to once every 8 ticks.
- Mining Laser ultra-high energy blast mode: Dedicated plasma blast visual effects (core, light pillar, shock ring and shell, sparks and arcs, afterglow, ion mist, flash and screen shake) and new sound effects, replacing vanilla explosion appearance and sounds.
- Tools: `models_1111.py`, `lang_1111.py`, `sfx_1111.py`; new check `check_1111.py` and offline test `Harness1111`; GameTests `Round1111GameTests`.
## 0.1.10.10
Based on 0.1.10.9 (`pr-0.1.10.9-20261019`). Server TPS Improvement Phase D (D1-D7), results unchanged. Detailed descriptions and verification records in `docs/releases/0.1.10.10/UPDATE.md`.
- D1: 30 blocks (solar, wind, hydro, geothermal, semi-fluid, diesel, RTG, kinetic, Stirling kinetic, steam, heat source generators, etc., and their base classes) no longer call `setChanged()` every tick (which notifies 6 neighboring blocks, including other mods), changed to only mark the chunk as needing saving (`TickMarks.saved`). Fermenters and refineries with comparator outputs remain unchanged.
- D2: Status light tracking now only reads chunks observed by players, and is spread across 10 ticks per chunk; unobserved chunks re-read when first observed by a player. Running flag properties are cached per block.
- D3: Neighbor capability queries for thermal and kinetic machines use the `NeighbourCaps` cache (reused when neighbor block states and block entities are unchanged, up to 100 ticks; does not load chunks). Thermal views for both Stirling machines are no longer recreated each time.
- D4: Client updates for voltage detectors, item and fluid distributors, storage crates, liquid heat sources, semi-fluid and diesel generators now use `ClientSyncThrottle` (at most once every 5 ticks per block entity, final state is always delivered).
- D5: In E11 fair allocation mode, windows where no consumer has space end early (verified across 100,000 randomized cases that no energy is moved). E12 port tables preserve parts that only change with block state or endpoint edits (block type, wire face, emission location) and endpoint lists between ticks.
- D6: Radiation checks are no longer hooked to every entity's every-tick event: players are checked from the player tick, other mobs only when wearing nuclear items; distributed by entity ID.
- D7: `/mio_icif perf` added a load line (setChanged, save marks, client syncs, status light checks, neighbor capability queries and cache hits, sleeping machine ticks, and saturated window counts per tick over the last 100 ticks).
- Tools: `lang_1110.py`; new check `check_1110.py` and offline test `Harness1110`; GameTests `Round1110GameTests`.
## 0.1.10.9
Based on 0.1.10.8 (`pr-0.1.10.8-20261019`). Adjusted the heat-receiving faces of the Stirling Generator according to confirmed specs. See `docs/releases/0.1.10.9/UPDATE.md` for details.
- Stirling Generator: The front face (the copper plate side, facing the player when placed) is added as a heat-receiving face, while the back continues to receive heat (double-sided heating, existing back-face setups are unaffected). When both faces have heat sources, on-demand heat extraction takes from the back first, then the front; heat-pushing devices like heat exchangers can push into both faces. The front still outputs EU, and the back still does not output.
- The front copper plate of the heat exchanger is a heat-transfer face: maintains the 0.1.10.5 spec, unchanged (confirmed).
- Guide: Stirling Generator and Liquid Heat Source pages (three languages). GameTests `Round1109GameTests`.
## 0.1.10.8
Based on 0.1.10.7 (`pr-0.1.10.7-20261019`). Server TPS Improvement Phase C: Allocation reduction and route plan reuse, machine sleeping, fluid upgrade throttling, batching for suits and wingmen. Power grid results unchanged. Detailed descriptions and verification records in `docs/releases/0.1.10.8/UPDATE.md`.
- Route plan cache: Multi-window power grids (more than 32 sources, etc.) reuse plans for each window when the snapshot, route view, endpoint edits, and first receiver are unchanged (previously rebuilt every tick). Up to 64 plans per grid, with a memory limit.
- Window balance changes accumulate with `EnergyAmount` (previously one `BigInteger` per port), results and exceptions are the same; the explosion limit per consumer is queried only once per window.
- Machine idle sleeping: Macerator, electric furnace, extractor, compressor, recycler, and metal former no longer check recipes after 1 second of idling, waking up immediately upon inventory, setting, or energy changes, with a recheck at most after 1 second (config `Performance.machineSleep`; addon mods `idleSleepAllowed()`). The recycler no longer calls `setChanged()` every tick when idle.
- Fluid ejection/insertion upgrades and item upgrades are throttled similarly (runs immediately on tank or inventory change); machines with rewritten fluid transfer are unaffected. Full standard tanks no longer check container slots every tick.
- Suit sync hash avoids boxing; phase shift charge limit is calculated only once per tick; HUD reserve/heat/coherence bars display smoothly.
- Wingman: Target selection and firing position query squads and hostile mobs only once each time, line-of-sight rays only calculate the best candidate (same selection result); separation thrust and ballistic scans every 2 ticks.
- `/mio_icif perf` added a line: plan cache reuse count, machine ticks skipped by sleeping.
- Tools: `lang_1108.py`; new check `check_1108.py` and offline test `Harness1108`; GameTests `Round1108GameTests`.
## 0.1.10.7
Based on 0.1.10.6 (`pr-0.1.10.6-20261018`). Server TPS Improvement: Implemented optimization plans Phase A and Phase B based on JFR summary (SI power grid accounted for 35.3% of the main thread), calculation results unchanged. Detailed descriptions and verification records in `docs/releases/0.1.10.7/UPDATE.md`.
- Power grid switch cache: Overload/explosion/fuse/electric shock switches cached by config revision number (previously config was read every tick per wire, accounting for 7% alone).
- Power delivery path profiles: Each path records the minimum fuse, insulation breakdown, and insulation absorption values; power delivery below all limits is no longer traversed cell-by-cell (matches cell-by-cell determination in 200,000 randomized cases).
- Energy meter sampling delay: Samples are queued in original order and merged when the meter is read.
- Cables controlled by independent power grids no longer tick (powered state changed to time comparison).
- Admin command `/mio_icif perf`: Server tick, grid time per dimension (median, p95, max), route plans and optimization counts.
- Chunk states from port scanning are cached per settlement; idle settlement when there is no quota is reused; commit validation reused when there are no writes.
- Geomagnetic Generator: Structure checked when antenna/base changes and every 40 ticks, magnetic field and biome cached, no longer `setChanged()` every tick when idle. Item/XP Generators: Search again after 10 ticks following an empty search.
- Item ejection/insertion upgrades: Waits 4, 8, 16, 20 ticks after no movement, wakes immediately on inventory change (config `Performance.automationPacing`); fluid upgrades unchanged. Neighbor classification cached per face; fluid pipes use capability cache.
- Threat awareness lists are only sent upon change, refreshed every 20 ticks when not empty.
- Tools: `lang_1107.py`; new check `check_1107.py`; GameTests `Round1107GameTests`.
## 0.1.10.6
Based on 0.1.10.5 (`pr-0.1.10.5-20261018`). Bug fixes and improvements patch: 11 items from in-game testing and player reports. Detailed descriptions and verification records in `docs/releases/0.1.10.6/UPDATE.md`.
- Ejection/insertion upgrade infinite loop: When no direction is set, sorted by "storage → other blocks → machines" (block tags `mio_icif:automation/storage`, `automation/processor`); does not eject back into machines it inserted from within 10 seconds, does not insert from machines it ejected to, does not eject to machines whose ejection port faces itself; storage neighbors are unrestricted.
- Progress not displaying after overclocking: Fast processing completed and reset within the same tick. New `getDisplayProgress()`, machine menus synchronously display the progress used; 8 menus where index 0 is not progress use `progressDataIndex()` to differentiate.
- New feature: Overclock adjustment slider (left panel, drag/click/scroll wheel), tooltip displays speed and energy consumption; C2S packet `mio_icif:machine_overclock` (server validates menu), NBT `scex_oc_throttle`; energy storage bonus retains all installed overclock upgrades.
- Quantum compute cores can be stacked: 4 links, 36 QB when one is in the chestplate and one in the leggings (`QuantumLinks.activeComputeCores`).
- The holographic figure on the armament display stand now has `BladeHandLayer`, displaying held Slashblades; blades in flight in the armory are more stable, and the blade-drawing pose smoothly transitions to 75°.
- Fluid reactor UI: Hot coolant fluid position 192 → 190 (back inside the slot frame); bottom info panel added a dark semi-transparent background and bright text with shadow (heat changes color proportionally); removed the misaligned old heat bar.
- Milk Wart: Edible, same effect as milk (clears status effects, 2 hunger points); added to `c:buckets/milk`, `c:drinks/milk`, `c:milks`, `forge:milk`; new cake recipe (using the tag for milk), coffee recipe changed to use tags.
- Herbicide fluid name: Added `fluid_type.mio_icif.weed_ex` (Weed-EX/除草剂/除草剤); Japanese completed 15 fluid names.
- Crop regulator: Containers can be input from any face; water tank accepts all water containers, herbicide slot accepts herbicide buckets and cells; empty containers entering the output slot are no longer deleted; fluid insertion upgrade requests water and herbicide separately. New generic class `FluidContainerSlots`; after a thorough check, the Heat Exchanger (including hot coolant buckets), Fluid Reactor, Fermenter, Canner, Replicator, 5 generators, Solar Still, Ore Washer, and Stirling Kinetic Generator all accept generic fluid containers; fixed the issue where 5 machines' tanks gained some fuel/water for free when almost full.
- Next-gen crop scanner: Catalyst slot accepts UU Matter cells/buckets/other UU containers, pours into the built-in UU tank (4,000 mB, 1 mB = 1 catalyst), empty containers return to inventory.
- Tools: `lang_1106.py`; new check `check_1106.py`; GameTests `Round1106GameTests`.
## 0.1.10.5
Based on 0.1.10.4 (`pr-0.1.10.4-20261015`). Bug fixes patch: 9 items from in-game testing and player reports, including save crash loops and equipment duplication. Detailed descriptions and verification records in `docs/releases/0.1.10.5/UPDATE.md`.
- Wingman holding a Slashblade crash: Wingmen lacked player attributes (`SWEEPING_DAMAGE_RATIO`, etc.), causing a crash every time the Slashblade struck an entity after loading. Wingmen now receive all player attributes (old saves can load directly); new mixin `LevelEntityTickGuardMixin` and `WingmanTickGuard`: when a wingman or its derived entity errors, it returns the suit/removes the entity instead of crashing; Slashblade hooks add exception catching.
- Capture tools duplicating equipment: Using the item on a wingman had no effect and the interaction event was canceled; wingmen added to various mods' capture blacklists and `c:capturing_not_supported`; sortie tokens (`mio_icif_wingman_sorties`) cause returned or duplicate wingman copies to disappear without items when entering the world.
- Energy-saving enchantment: Smart induction compared the actual deducted amount with the nominal cost and never took effect (predictive induction synergy likewise); wingman maintenance costs were paid twice by the armory. Added `EnergySaving.maxCost`, `SuitEnergyPool.canPay/payAll/payPart`; all "is there enough energy" checks changed to post-energy-saving costs (suit units, cores, synergies, API default methods and prefab classes).
- Universal blast warning detection: SI explosives, `PrimedTnt`/creeper subclasses, explosive projectiles flying toward the wearer, entities with explosion words in their names; entity type tags and data mapping `mio_icif:blast_warning`; displays "--" when there is no timer.
- Heat Exchanger: Heat transfer face (copper plate, `FACING`) matches the code; switched to SI's own unused liquid heat exchanger texture, displaying an active frame when working; guide explains the heat transfer face and wrench rotation.
- Replicator: Datapack replication list `uu_replication/*.json` (items/tags, mB, EU per item, forbidden); default list of 95 entries (new ores, rare materials, mob drops, plants, SI raw ores).
- New guide page "Crops and Crossbreeding" (three languages): Quality and requirements, humidity, nutrients, air quality, light, crossbreeding chance, all taken from the code.
- Lead block radiation shielding: `mio_icif:radiation_shielding` (10%) and `_weak` (50%) block tags, applied to the reactor 70% stage, radioactive blocks, and nuclear radiation zones; added a section to the reactor guide.
- Recipes: Radiation-proof containment box (becomes an 18-slot lead box), MOX nuclear fuel, lithium cell, short-decay isotope rod, re-enriched uranium → uranium nuclear fuel, reactor heating element; the iridium neutron reflector recipe (0.1.10.4) materials are all resolvable.
- Tools: `lang_1105.py`; new check `check_1105.py`; GameTests `Round1105GameTests`.
## 0.1.10.4
Based on 0.1.10.3 (`pr-0.1.10.3-upstream-20261014`). Bug fixes patch: 11 items from in-game testing and player feedback. Detailed descriptions and verification records in `docs/releases/0.1.10.4/UPDATE.md`.
- Sword resources: Imported the user's quantum sword and nano sword 3D models (held) and 16x16 inventory icons (`neoforge:separate_transforms`); quantum sword model and icon turn red when overclocked (new item property `mio_icif:quantum_sword_hyper`). `resources.zip` was imported in 0.1.8.3; the 24 unimported ones are all old versions.
- HUD key names follow keybindings: Nano HUD chips, consumption marks, and core bursts; quantum HUD chips and consumption scales; action keys in unit descriptions also display the current binding.
- Wingmen using electric weapons: Melee adds the item's damage bonus and calls `hurtEnemy` (nano sword, chainsaw, quantum sword overclock; nano sword activates automatically); Mining Laser and Plasma Launcher become ranged weapons (do not alter terrain).
- Recipes: Tin, lead, copper, titanium nuggets x9 → ingot; Iridium neutron reflector (6 reinforced reflectors + 2 dense copper plates + iridium plate); RTG pellet center changed to plutonium (SI has no polonium; consistent with centrifuge recovery), ore washing byproducts no longer produce iridium.
- Reactor: Guide added reactor temperature stages (40/50/70/85%, 5x5x5 / 7x7x7, three languages); 70% stage changed to radiation damage (hazmat suit, full quantum set can protect); new tag `mio_icif:reactor_heat_immune` protects pressure vessels, ports, reaction chambers, construction foam, etc.; water-containing blocks only evaporate the water; clarified that lava turns into obsidian when submerged in water.
- Plasma launcher: Projectiles fire along the line of sight, do not add the shooter's velocity; exact velocity syncs with spawn data (vanilla datapack limits each axis to 3.9 blocks/tick, 8 blocks/tick projectiles deviate up to 16°); new 3D model, inventory icon, spear-like beam, spiral constraint lines and constraint rings, muzzle and impact effects.
- Sonic boom cloud: Steam cone only appears for 0.65 seconds when breaking the sound barrier and fades out, condensed smoke only sprays at this time, no longer blocking vision during cruise; re-trigger margin near the sound barrier.
- Compute core: Judged per component (toggle, power), taking the best state; Entanglement Matrix and equipment console display status (running/off/missing power).
- Reactor coolant injector: The front face and faces touching reactor components are not powered (a reactor's maximum 8,192 EU power packet will cause the MV injector to overvoltage and explode on startup); the energy network respects the machine's `IEnergyBlock#canConnect(side)`.
- Tools: `intake_swords_1104.py`, `art/plasma_launcher_1104.py`, `art/item_model_preview.py`, `lang_1104.py`, `guide_1104.py`; new check `check_1104.py`; GameTests `Round1104GameTests`.
This mod has no additional files

