promotional bannermobile promotional banner

Singularity Iteration

Singularity Iteration is a tech mod inspired by the Industrial Craft 2, bringing a relatively complete yet streamlined industrialization experience to Minecraft.
Back to Files

[SI] SingularityIteration-0.1.8.2-beta.jar

File name[SI] SingularityIteration-0.1.8.2-beta.jar
Uploader
MioPhaSideMioPhaSide
Uploaded
Oct 12, 2026
Downloads
35
Size
13.1 MB
Mod Loaders
NeoForge
File ID
9143532
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:singularity-iteration-1617642:9143532"

Learn more about Curse Maven

What's new

## 0.1.8.2

基于 0.1.8.1(`pr-0.1.8.1-20261012`)。作物架严重问题修复、次世代作物扫描仪、作物纹理全面更新、外部工业模组兼容与武器纹理。详细说明与验证记录见 `docs/releases/0.1.8.2/UPDATE.md`。

### 作物架与作物监护机

- 右键收获不再丢失物品:掉落次数至少为 1;无产出时不执行收获;掉落物直接放入玩家物品栏(放不下的掉在脚下)。新增 `IPlanter#doManualHarvest(Player)`。
- 交配架返还放上去的那根作物架(记录 `CrossStick`);种植植物时清除杂交标志,旧存档中“植物 + 杂交标志”的作物在加载时修复;交配架有独立模型。
- 钛/铀叶子改为 IC2 作物周期(`OreRootCrop`),修复产量被计算两次(一次最多 96 个)与逐 tick 生长;13 种配置作物补齐纹理,缺失纹理时使用备用纹理。
- 作物监护机照料的作物环境品质至少为需求 + 50(`CropGrowthMath.tendedQuality`),10/10/10 等高属性种子不再停止生长。新增 `IPlanter#markTended`/`isTended`。

### 次世代作物扫描仪(原作物分析仪,物品 ID 不变)

- 4,000,000 EU、等级 4、2,048 EU/t;完整分析每袋 500 EU,整堆一次分析。
- 手持 HUD:植物名与学名、阶段与成熟度、三项属性、环境四项、储存资源、环境品质与需求、照料状态与未满足的生长条件(每次读数 8 EU,无电时不显示数据)。
- 箱子式 27 槽界面,每槽独立扫描线;4 个超频升级槽(时间 ×0.7、功率 ×1.6,最多计入 8 张,最后一个 tick 只扣剩余能量)。
- 交配研究(强化铱板 ×10 + 生体电路 ×1 永久解锁):从自然杂交候选中选择目标,确定得到目标种子。
- 基因编辑(量子核心 ×1 + 中子板 ×4 + 超级电路 ×2 永久解锁,每提升 3 点消耗 1 个 UU 物质):滑条与 −/+ 设定目标属性,能量随目标值指数增长。新增 `ICropSeedItem#setCropTraits`。

### 纹理

- 作物架上的全部阶段纹理由 `tools/art/crops_182.py` 重新生成(233 张 + 作物架 4 张,16×16 现代原版风格)。
- 武器:青铜剑/纳米剑/量子剑的 3D 模型 UV 贴图按部件重绘,等离子发射器 10 帧图标与纳米弓 4 张图标重绘(`tools/art/weapons_182.py`)。工具类纹理不变。

### 外部模组兼容

- 新配方材料 `mio_icif:crop_seed`(植物 + 产量范围)与物品标签 `mio_icif:crop_seed_bags`(不加入 `c:seeds`,避免其他模组的配方消耗种子袋)。
- Immersive Engineering 园艺玻璃罩 188 个配方(产量档 ×1/×1.5/×2/×3);Thermal 光合作用仪:种子袋作为永不消耗的催化剂,另加 9 个普通物品配方;Ender IO 农场站:种植与收获作物架(反射集成)。均带模组加载条件。

### 其他

- 补齐甜菜根、地狱疣、大地疣、15 种配置作物、6 种树苗的名称;日语补齐全部植物名;扫描仪相关 78 个新键(三语)。

## 0.1.8.1

基于 0.1.8.0(`pr-0.1.8.0-20261012`)。农业系统审计、能源管理终端子网面板、三语代码注释、喷气背包音效与机器音效全面审计。详细说明与验证记录见 `docs/releases/0.1.8.1/UPDATE.md`。

### 农业系统(审计与修复)

- **土壤营养修复**:泥土加成从 `below(1)` 开始计数,而 `below(1)` 总是耕地,旧循环立即停止,加成始终为 0。现在按 IC2 统计耕地下方连续的泥土(`below(2)`~`below(4)`,最多 3)。
- **杂草方块**:侵占作物架前先重置(不再继承旧植物的属性、生长点、扫描等级与杂交标志);跳过未加载区块中的位置(区块边缘的随机刻不会加载区块);杂草植物未注册时不做任何事。
- **升级作物架**:杂交状态写入升级作物架自己的 `CROSSING` 属性(方块状态按实例查找属性,旧代码从未设置)。
- **作物收割机**:放不下的掉落物进入已保存的待存列表,绝不撒到世界;列表不为空时停止扫描、不耗电,有空位后自动存入;拆除机器时一并掉落;界面显示“存储已满:暂停”。WORKING 状态在最后一次收割后保持 40 tick。
- **作物监护机**:WORKING 状态保持 40 tick(原先最多每 tick 切换方块状态并重建区块网格);无电时状态正确关闭。
- **性能**:作物只在可见数值(植物、阶段、属性、扫描等级、杂交、资源档位、红石、光照)变化时向客户端发送更新,资源衰减的数据包降至原来的约 2.5%;资源衰减与施肥冷却不再触发比较器邻居更新;作物架不再注册客户端 ticker;作物渲染器不再忽略视锥剔除(原先每帧绘制 64 格内全部作物),纹理 ID 只解析一次。
- 食人花的 “eaten” 标志修改后标记方块实体已更改;树苗作物的数值改为共享常量。
- 作物公式提取为纯函数类 `CropGrowthMath`(无 Minecraft 依赖,独立测试 1,202,703 项与 0.1.8.0 公式一致)。

### 能源管理终端

- 子网明细(全网模式)重新布局:每行两行小字,右对齐部分(设备数、满足度条)先绘制,左侧标题与功率流按当前语言测量宽度并以“…”截断;满足度条移到第 2 行(原先压在第 1 行标题上);“+N”溢出标记改为“起-止/总数”,可用鼠标滚轮滚动,并显示滚动条。
- 悬停子网行显示完整数值(电压包、发电、耗电与满足率、储能流量、设备与线缆数);全网模式下不再弹出被隐藏的耗电排行提示。
- “dev” 改为翻译键;补齐日语终端的 18 个缺失键(原先显示英文)。

### 三语代码注释(EN / ZH / JA)

- 新增规范 `docs/dev/COMMENT_STYLE.md`(英文遵循 ASD-STE100,中日文翻译相同内容)与检查脚本 `tools/doc_lint_181.py`;`docs/dev/trilingual_manifest.txt` 列出 40 个文件(公共 API 入口、复杂算法与主要类),共 189 个 Javadoc 块,检查结果 0 错误、0 警告。

### 音效

- **喷气背包**:电力(轻型涡轮)、高级(重型轰鸣)、量子胸甲(低沉离子嗡鸣)三种推进器循环音,点火音与熄火音;音量与音高随油门平滑变化;悬停抖动保护。本地玩家用客户端预测(无延迟),其他玩家由服务器仅在状态变化时发送 `jetpack_thrust` 数据包。新增 API 默认方法 `IJetpackItem#getThrusterSound()`。
- **机器音效审计**(`tools/sound_audit_181.py`):0.1.8.0 中有运行状态却无音效的机器 35 台,现在为 0;100 台有循环音,12 台带理由静音(太阳能板、创造发电机、自带音效的军械库/激光塔/能源终端、检测线缆)。新增压缩机、伺服、放电、冒泡 4 种循环音;特斯拉线圈改用放电音。
- 运行检测增加同步的状态灯(RUNNING)与 `ClientRunState`(动能风车/水车、蓝图建造机);`working`/`running` 属性也被识别。风力/水力发电机发电时状态灯为绿色;大型物质生成机核心生产时为 RUNNING。
- 全部新音效为程序合成(`tools/sfx_181.py`,无采样),单声道 OGG。

## 0.1.8.0

基于 0.1.7.36 的大型更新。详细说明与验证记录见 `docs/releases/0.1.8.0/UPDATE.md`,附属开发见 `docs/api/API_GUIDE.en.md`/`API_GUIDE.zh_cn.md`。

### 电网与变压器

- 新增公平分配器 `FairShareDistributor`(默认):修复多台设备时出现的逐级衰减(第一台 100%、第二台 75%、第三台 50%);分四个阶段供电(用电器额定→用电器剩余→储能额定→储能剩余),阶段内按剩余需求比例分配,发电机先于储能。线损模型可选 `lossless`(默认)/`proportional`;旧算法以 `distributionMode=legacy` 保留。定点运算、确定性,同源同路径合并为池;交付方独立基准中,32×128 无损窗口每轮约 57.9 µs(不代表整包性能)。
- 变压器公平模式下的部分包处理、`settleForeign` 提前返回、拉取/推送修正;`EnergyNodeRegistry.isStorage`。

### 套装

- 量子套装 Blockbench 模型(烘焙模型、3D 物品图标)、第一/第三人称手部护甲开关、钢铁侠式飞行姿态、可见的音爆锥、空气动力偏转场与飞行效率改进。
- 「装备特性面板」更名为「奇点管理面板」;纳米套装分部位配色(预设与 RGB 滑块)。新纳米头盔模型。
- 电力护甲吸收改为比例相加并覆盖全部伤害类型(含卫道士斧等破甲伤害);整套共享能量池;纳米胸甲受击不再掉饥饿;夜视镜 400,000 EU;节能附魔适用于饰品;木炭粉制碳纤维。

### 武装库

- 全息投影展示台替换展示柜(串并联扩展、底部无线供电、自动归还、命名);Shift 点击优先放入套装槽;装备时为重型机械锁定音效;纳米/量子部件分段飞入锁定。
- 拔刀剑:重锋(SlashBlade: Resharped)以拔刀姿态飞到手中(仅识别 Resharped)。
- 僚机系统:储存的套装作为无人机出动,四种战术模式(进攻、分散诱敌、护航拦截弹射物、富尔顿回收)。
- 车万女仆远程装备;RTS Building 无人机支援;蓝图建造机(机械动力蓝图、`.nbt`、`.litematic`)与军械库资材接口。

### 新模块与火控

- 智能弹道诱导单元、力场共振解体单元;通用弹道计算(公共 API、从射击学习、模组武器实现 API);3D 战术地图(结构、未开启容器的战利品与概率、JEI 跳转、完整操作)。

### 机器、物流与界面

- 剥线钳正常剥离绝缘;拆机掉落按配方回收;GuideME 动态核反应堆模拟器页面;作业范围全息网格;14 处 GUI 文本重叠修复;树脂收集器流体动画;管道全面重绘;新增喷射管道;近战武器 3D 模型;能量武器充能压缩特效;UU 物质生成机与动能发电机音效;连接器套件每次布线消耗 1 个。

### 联动、API 与文档

- 机械动力思索场景 4 个(ASD-STE100,三语);公共 API 制品 `mio_icif-api`(仅 `core.api`,318 个类,无内部引用);套装单元 API、军械库事件;示例附属;移除 `CropBiomeAccessor`(改用访问转换器);API 指南(英文、中文)。

## 0.1.7.36

交付源码基于 0.1.7.35;本次 PR 将增量合并到上游 0.1.7.35.1,并保留上游电动锄、蒸汽再加压机、配方和核爆修复。面向长期维护与后续版本迁移的全面整理:复杂算法补充「为什么/契约/不变量」注释,核心 API 注释全部改为 ASD-STE100 英文;全面排查边界值、空值、线程与客户端/服务端边界问题并修复;新增数据包驱动的数值调参(`si_tuning`);网络载荷增加计数上限校验与客户端→服务端限流。交付提交共修改 632 个文件(含注释、源码、资源与开发工具)。

### 注释与文档

- 电网(`IndependentSiEnergy`、`EnergyNetGlobal`、`PlatformTopology`、`NetworkWalker`、`FECompatTile`、`GridEventHandler`)、多方块(`common/multiblock/` 全部、`MultiblockEnergyCore/Part`)、同步与载荷(`ClientSyncThrottle`、`SuitPackets`、`SuitSensorData`、`MachineStatusTracker/Packet`、`EquipmentConsolePacket`、武装库载荷、`mio_icif_Network` 的 47 个载荷一览表)、FCS 与特殊机动(`BallisticSolver`、`SensorTracker`、`OreScanner`、`HoloMap`、`FcsProjection`、`ManeuverMode(Client)`)补充 Why/Contract/Invariants:单位、取值范围、空值规则、线程、调用时机与副作用。
- `core/`(API、prefab、runtime、platform)共 210 个文件的中文注释改为 ASD-STE100 英文;此前已处理 `common/` 中 371 个文件(含 163 个乱码文件的修复)。所有注释改动都用去注释后的代码 token 比对工具逐文件确认「代码零改动」。
- 删除 38 个无引用的死文件(挤压机残留、八叉树/波形爆炸调度器、旧配方构建器、`ClientKeyHelper`、`PipeFluidRenderer`、`NetworkHelper`、`CustomEnergyStorage`、空热存储、`AddonExample` 等),以及 76 个未使用的私有字段、49 个孤立的 `@SuppressWarnings("unused")`。
- 剩余:`common/` 下约 550 个文件仍有中文注释(以机器方块实体、注册表与界面为主),留待后续版本。

### 缺陷修复

- `IUpgradeItem.getUpgradeEffect()`:匿名类中 6 个方法调用的是自身而非外层接口方法,任意调用都会无限递归导致 `StackOverflowError`。改为 `IUpgradeItem.this.xxx()`。
- 动能/热能发电机消耗燃料时先 `shrink` 再取容器物品,空堆总是返回空,熔岩桶的空桶会丢失。改为先读取容器物品。
- 扫描仪(OV/OD):建筑高度上限按包含处理(`y == maxBuildHeight` 也被读取),改为不含;扫描循环改用可变坐标,不再每格分配 `BlockPos`。
- `ArmoryActionPacket`:没有权限解绑时也会提示「已解绑」并关闭界面;`unbind` 现在返回结果,只有成功才提示。
- `PlatformTopology`:观察者回调中关闭拓扑后再隔离区块会因 `server == null` 抛出空指针,现已防护;重建扫描不再为每个区块新建临时集合。
- `getRedstonePorts()` 返回内部可变集合,改为只读视图。`FECompatTile` 删除重复 import,日志文本改为英文。
- 激光塔统计:超过 64 字符的实体自定义名称会让编码抛出异常导致同步失败,现截断后写入。
- `SensorTracker`:先截取 64 个再按距离排序,远处生物可能挤掉近处生物;改为先排序后截取,只为保留的目标计算路径与意图。空中预测的水平阻力由 0.98 改为原版的 0.91。
- `HoloMap`:+x/+z 方向的界外目标被画在盒子外一格,钳制上限修正为 `RADIUS + 0.5`。
- `ManeuverModeClient.VISUALS` 从不移除离开的玩家;新类 `ClientSessionCleanup` 每 100 tick 清理,并在退出世界时重置 `FcsProjection` 与特殊机动视觉状态。
- `ClientSyncThrottle`:非服务器线程调用时直接 `sendBlockUpdated`(区块映射非线程安全),改为投递到服务器线程。
- 变压器模式切换提示原为硬编码中文,改为翻译键 `message.mio_icif.transformer.mode_switched`(带英文回退),补充日文模式名称。`MachineAPIImpl.getRedstoneModeName` 与 `getRunningState` 的 API 返回值由中文改为英文纯文本。
- 全部 `toLowerCase()/toUpperCase()` 改为 `Locale.ROOT`(土耳其语等区域设置下标识符会出错);`AbstractElectricTool.getDurabilityPercent` 容量为 0 时不再返回 NaN。
- 此前一轮已修复:6 个 JEI 分类的空配料 `get(0)`、`FcsHud` 空路径、`IndependentSiEnergy` 的 `printStackTrace` 改为日志、`sampleTick` 的 `MIN_VALUE` 防护、遮蔽器每 20 tick 运行、武装库远程强制加载区块冷却、能量转换器整数 EU 取整、新的 `BlockEditPermission`(喷涂器与扳手的方块编辑权限检查)。

### 网络载荷

- 新 `PacketLimits`:列表计数由编码端截断、解码端校验(负数或超限直接抛出 `DecoderException`)。此前解码端的 `Math.min` 截断会留下未读字节、让后续字段错位,负数会抛出 `NegativeArraySizeException`。应用于 `ArmoryConsoleSyncPacket`(64)、`MachineStatusPacket`(4096,发送端超出时自动分包)、`SuitPackets.Threats`(256)、激光塔统计与目标过滤器。
- 新 `PacketRateLimit`(令牌桶,按玩家,退出时清理):`ManeuverInput`(突发 10,之后每 tick 1 个;此前每个包都会转发给 160 格内的所有玩家)、武装库控制台(突发 10,每秒 5 个)、装备控制台按钮(突发 20,每秒 10 个)。滑块调参保持服务端槽位、参数索引与范围校验,但不经过此令牌桶:正常拖动频率可超过上限,且客户端没有最终值重发机制,直接丢弃会让服务端停在较早档位。
- 确认 47 个载荷全部为 `CustomPacketPayload`,处理器运行在主线程(默认),无可选载荷。

### 数据驱动(数据包)

- 新 `SiTuning` 重载监听器:`data/<命名空间>/si_tuning/<名称>.json`,每个文件为扁平的数值对象。数据包可用同名文件覆盖;文件缺少的键使用代码默认值;超出范围的值被钳制并警告;未知键(多为拼写错误)警告。所有可调值集中声明在 `SiTuningValues`,默认值与内置 JSON 一致(由测试检查)。
- 首批:OV/OD 扫描仪的扫描半径、纵向半径与每次耗电;采矿机各钻头与扫描仪的耗电区间;传送机冷却;武装库展示柜的网络范围。客户端绘制所用的数值(如采矿机工作范围)暂不开放,因为客户端尚无同步。
- 后续候选:处理机器的基础耗电与工时、发电机输出、反应堆参数、特殊机动能耗、多方块(油井、聚变)结构参数。

### 现代版本准备

- 项目已基于 NeoForge 1.21.1:物品数据使用 Data Components(自定义数据统一走 `CustomData`/组件包装),网络全部为 `CustomPacketPayload`,附魔与标签为数据驱动。本版本确认无 `getOrCreateTag` 等旧 NBT 接口。已弃用的 `LevelReader.hasChunkAt` 31 处全部改为 `Level.isLoaded`。核心模块注释中提及内容模块包名会触发架构检查,已改写。

### 测试

- 新 GameTest 类 `Round36GameTests`(8 项):调参默认值与内置文件一致、调参句柄读取已加载值、计数上下限、机器状态包超限编码后无残留字节、武装库同步包截断展示柜与超长标签、限流突发上限、升级效果不再递归、变压器提示翻译键齐全。

## 0.1.8.2

Based on 0.1.8.1 (`pr-0.1.8.1-20261012`). Fixes for severe crop stick issues, next-generation crop scanner, comprehensive crop texture update, external industrial mod compatibility, and weapon textures. See `docs/releases/0.1.8.2/UPDATE.md` for details and verification records.

### Crop Sticks and Crop-Matron

- Right-click harvesting no longer loses items: the drop count is at least 1; no harvest is performed when there is no output; drops are placed directly into the player's inventory (any that do not fit are dropped at the player's feet). Added `IPlanter#doManualHarvest(Player)`.
- The crossbreeding stick returns the crop stick placed on it (records `CrossStick`); the hybridization flag is cleared when planting; crops with "plant + hybridization flag" in old saves are repaired on load; the crossbreeding stick has its own model.
- Titanium/uranium leaves now use the IC2 crop cycle (`OreRootCrop`), fixing yield being calculated twice (up to 96 at a time) and per-tick growth; textures for 13 configured crops have been completed, and a fallback texture is used when a texture is missing.
- Crops tended by the Crop-Matron have an environment quality of at least requirement + 50 (`CropGrowthMath.tendedQuality`), so high-stat seeds such as 10/10/10 no longer stop growing. Added `IPlanter#markTended` / `isTended`.

### Next-Generation Crop Scanner (formerly Crop Analyzer, item ID unchanged)

- 4,000,000 EU, tier 4, 2,048 EU/t; full analysis costs 500 EU per bag, and a whole stack is analyzed at once.
- Handheld HUD: plant name and scientific name, stage and maturity, three traits, four environment values, stored resources, environment quality and requirements, tending status, and unmet growth conditions (8 EU per readout; no data is shown when out of power).
- Chest-style 27-slot interface, with an independent scan line per slot; 4 overclock upgrade slots (time ×0.7, power ×1.6, up to 8 cards counted; only the remaining energy is consumed on the last tick).
- Crossbreeding research (Reinforced Iridium Plate ×10 + Bio Circuit ×1, permanently unlocked): select a target from natural hybridization candidates to guarantee obtaining the target seed.
- Gene editing (Quantum Core ×1 + Neutron Plate ×4 + Super Circuit ×2, permanently unlocked; each +3 improvement costs 1 UU-Matter): sliders and −/+ set target traits, and energy increases exponentially with the target value. Added `ICropSeedItem#setCropTraits`.

### Textures

- All stage textures on crop sticks have been regenerated by `tools/art/crops_182.py` (233 textures + 4 crop stick textures, 16×16 modern vanilla style).
- Weapons: the 3D model UV textures for the bronze sword / nano sword / quantum sword have been redrawn by part, and the plasma launcher's 10-frame icon and the nano bow's 4 icons have been redrawn (`tools/art/weapons_182.py`). Tool textures are unchanged.

### External Mod Compatibility

- New recipe material `mio_icif:crop_seed` (plant + yield range) and item tag `mio_icif:crop_seed_bags` (not added to `c:seeds`, to prevent other mods' recipes from consuming seed bags).
- Immersive Engineering Garden Cloche 188 recipes (yield tiers ×1 / ×1.5 / ×2 / ×3); Thermal Phytogenic Insolator: seed bags act as a never-consumed catalyst, plus 9 ordinary item recipes; Ender IO Farm Station: plants and harvests crop sticks (reflection integration). All include mod load conditions.

### Other

- Completed names for beetroot, nether wart, earth wart, 15 configured crops, and 6 saplings; Japanese completed for all plant names; 78 new scanner-related keys (trilingual).

## 0.1.8.1

Based on 0.1.8.0 (`pr-0.1.8.0-20261012`). Agriculture system audit, energy management terminal subnet panel, trilingual code comments, jetpack sound effects, and comprehensive machine sound effect audit. See `docs/releases/0.1.8.1/UPDATE.md` for details and verification records.

### Agriculture System (Audit and Fixes)

- **Soil nutrient fix**: Dirt bonus began counting from `below(1)`, but `below(1)` is always farmland, so the old loop stopped immediately and the bonus was always 0. It now counts consecutive dirt below farmland according to IC2 (`below(2)`–`below(4)`, up to 3).
- **Weed block**: Resets before occupying a crop stick (no longer inherits the old plant's stats, growth points, scan level, or hybridization flag); skips positions in unloaded chunks (random ticks at chunk edges will not load chunks); does nothing when the weed plant is unregistered.
- **Upgrade crop stick**: The hybridization state is written to the upgrade crop stick's own `CROSSING` property (block states look up properties per instance; the old code never set it).
- **Crop Harvester**: Drops that do not fit enter a saved pending-storage list and are never scattered into the world; when the list is not empty, scanning stops and no power is consumed, and they are automatically stored once space is available; they are also dropped when the machine is removed; the GUI shows "Storage full: paused". The WORKING state remains for 40 ticks after the last harvest.
- **Crop-Matron**: The WORKING state remains for 40 ticks (previously it could switch block state and rebuild the chunk mesh every tick at most); the state correctly turns off when out of power.
- **Performance**: Crops send updates to the client only when visible values change (plant, stage, traits, scan level, hybridization, resource tier, redstone, light); resource decay packets are reduced to about 2.5% of the original; resource decay and fertilization cooldown no longer trigger comparator neighbor updates; crop sticks no longer register a client ticker; the crop renderer no longer ignores frustum culling (previously it drew all crops within 64 blocks every frame), and texture IDs are resolved only once.
- The Venus flytrap's "eaten" flag now marks the block entity as changed after modification; sapling crop values are changed to shared constants.
- Crop formulas extracted into the pure function class `CropGrowthMath` (no Minecraft dependency; 1,202,703 independent tests match the 0.1.8.0 formulas).

### Energy Management Terminal

- Subnet details (global mode) relaid out: two small lines per row; the right-aligned part (device count, satisfaction bar) is drawn first; the left title and power flow are measured in the current language and truncated with "…"; the satisfaction bar is moved to line 2 (previously it pressed on the line 1 title); the "+N" overflow marker is changed to "start-end/total", scrollable with the mouse wheel, and a scrollbar is shown.
- Hovering a subnet row shows full values (voltage packets, generation, consumption and satisfaction rate, energy storage flow, device and cable counts); in global mode, hidden consumption ranking tooltips no longer appear.
- "dev" changed to a translation key; 18 missing keys in the Japanese terminal were added (previously displayed in English).

### Trilingual Code Comments (EN / ZH / JA)

- Added specification `docs/dev/COMMENT_STYLE.md` (English follows ASD-STE100, Chinese and Japanese translate the same content) and check script `tools/doc_lint_181.py`; `docs/dev/trilingual_manifest.txt` lists 40 files (public API entry points, complex algorithms, and major classes), totaling 189 Javadoc blocks, with 0 errors and 0 warnings.

### Sound Effects

- **Jetpack**: Three thruster loop sounds—electric (light turbine), advanced (heavy roar), and quantum chestplate (low ionic hum)—plus ignition and shutdown sounds; volume and pitch change smoothly with throttle; hover jitter protection. The local player uses client prediction (no delay); other players are sent a `jetpack_thrust` packet by the server only when the state changes. Added API default method `IJetpackItem#getThrusterSound()`.
- **Machine sound audit** (`tools/sound_audit_181.py`): In 0.1.8.0, 35 machines had running states but no sound; now there are 0; 100 have loop sounds, and 12 are intentionally silent with reasons (solar panels, creative generator, armory/laser turret/energy terminal with their own sounds, detection cables). Added 4 loop sounds: compressor, servo, discharge, and bubbling; the Tesla coil now uses the discharge sound.
- Run detection adds synchronized state lights (RUNNING) and `ClientRunState` (kinetic windmill/watermill, blueprint builder); `working`/`running` properties are also recognized. Wind/hydro generators show a green state light when generating; the large mass fabricator core is RUNNING while producing.
- All new sound effects are procedurally synthesized (`tools/sfx_181.py`, no samples), mono OGG.

## 0.1.8.0

Based on 0.1.7.36. Major update. See `docs/releases/0.1.8.0/UPDATE.md` for details and verification records; addon development see `docs/api/API_GUIDE.en.md` / `API_GUIDE.zh_cn.md`.

### Power Grid and Transformers

- Added fair distributor `FairShareDistributor` (default): fixes stepwise decay with multiple devices (first device 100%, second 75%, third 50%); supplies power in four phases (consumer rated → consumer remaining → storage rated → storage remaining), distributing within a phase proportionally to remaining demand, with generators before storage. Line loss model can be `lossless` (default) / `proportional`; the old algorithm is retained as `distributionMode=legacy`. Fixed-point arithmetic, deterministic; same-source same-path merged into pools; in an independent deliverer benchmark, a 32×128 lossless window is about 57.9 µs per round (not representative of whole-package performance).
- Partial packet handling in transformer fair mode, `settleForeign` early return, pull/push corrections; `EnergyNodeRegistry.isStorage`.

### Suits

- Quantum suit Blockbench model (baked model, 3D item icons), first/third-person hand armor toggles, Iron Man-style flight pose, visible sonic boom cone, aerodynamic deflection field, and improved flight efficiency.
- "Equipment Traits Panel" renamed to "Singularity Management Panel"; nano suit per-part coloring (presets and RGB sliders). New nano helmet model.
- Electric armor absorption changed to additive proportional and covers all damage types (including armor-piercing damage such as Vindicator axes); whole-suit shared energy pool; nano chestplate no longer causes hunger loss when hit; night vision goggles 400,000 EU; energy-saving enchantment applies to accessories; charcoal dust to carbon fiber.

### Armory

- Holographic display stand replaces display case (series/parallel expansion, bottom wireless power, automatic return, naming); Shift-click prioritizes placing into suit slots; heavy mechanical locking sound when equipping; nano/quantum parts fly in and lock in segments.
- SlashBlade: Resharped: drawn into the hand in iai stance (only Resharped recognized).
- Wingman system: stored suits deploy as drones, with four tactical modes (attack, disperse and lure, escort/intercept projectiles, Fulton recovery).
- Touhou Little Maid remote equipment; RTS Building drone support; blueprint builder (Create blueprints, `.nbt`, `.litematic`) and armory material interface.

### New Modules and Fire Control

- Smart ballistic guidance unit, force-field resonance disassembly unit; universal ballistic calculation (public API, learning from shots, mod weapons implement API); 3D tactical map (structures, loot and probabilities for unopened containers, JEI jump, complete controls).

### Machines, Logistics, and GUI

- Wire stripper properly strips insulation; machine dismantling drops recovered according to recipe; GuideME dynamic nuclear reactor simulator page; work range holographic grid; 14 GUI text overlap fixes; resin collector fluid animation; pipes fully redrawn; added spray pipe; melee weapon 3D models; energy weapon charging compression effect; UU-Matter fabricator and kinetic generator sounds; connector kit consumes 1 per wiring operation.

### Integration, API, and Documentation

- Create Ponder scenes 4 (ASD-STE100, trilingual); public API artifact `mio_icif-api` (only `core.api`, 318 classes, no internal references); suit unit API, armory events; example addon; removed `CropBiomeAccessor` (switched to access transformer); API guide (English, Chinese).

## 0.1.7.36

Source delivery based on 0.1.7.35; this PR merges increments into upstream 0.1.7.35.1 and retains upstream electric hoe, steam repressurizer, recipes, and nuclear explosion fixes. Comprehensive cleanup for long-term maintenance and future version migration: complex algorithms supplemented with "why/contract/invariants" comments, core API comments all changed to ASD-STE100 English; comprehensive review of boundary values, nulls, threading, and client/server boundaries with fixes; new data-pack-driven numeric tuning (`si_tuning`); network payloads add count upper-bound validation and client→server rate limiting. Delivery commit modifies 632 files in total (including comments, source, resources, and development tools).

### Comments and Documentation

- Power grid (`IndependentSiEnergy`, `EnergyNetGlobal`, `PlatformTopology`, `NetworkWalker`, `FECompatTile`, `GridEventHandler`), multiblocks (all of `common/multiblock/`, `MultiblockEnergyCore/Part`), sync and payloads (`ClientSyncThrottle`, `SuitPackets`, `SuitSensorData`, `MachineStatusTracker/Packet`, `EquipmentConsolePacket`, armory payloads, the 47-payload list in `mio_icif_Network`), FCS and special maneuvers (`BallisticSolver`, `SensorTracker`, `OreScanner`, `HoloMap`, `FcsProjection`, `ManeuverMode(Client)`) supplemented with Why/Contract/Invariants: units, value ranges, null rules, threading, call timing, and side effects.
- `core/` (API, prefab, runtime, platform) a total of 210 files had Chinese comments changed to ASD-STE100 English; previously 371 files in `common/` were handled (including repair of 163 mojibake files). All comment changes were confirmed file-by-file with a decommented code token comparison tool as "zero code changes".
- Deleted 38 unreferenced dead files (extruder remnants, octree/waveform explosion schedulers, old recipe builders, `ClientKeyHelper`, `PipeFluidRenderer`, `NetworkHelper`, `CustomEnergyStorage`, empty heat storage, `AddonExample`, etc.), plus 76 unused private fields and 49 orphaned `@SuppressWarnings("unused")`.
- Remaining: about 550 files under `common/` still have Chinese comments (mainly machine block entities, registries, and GUIs), left for future versions.

### Bug Fixes

- `IUpgradeItem.getUpgradeEffect()`: six methods in an anonymous class called themselves rather than the outer interface method, so any call would recurse infinitely and cause `StackOverflowError`. Changed to `IUpgradeItem.this.xxx()`.
- Kinetic/thermal generators consumed fuel by calling `shrink` before reading the container item; an empty stack always returned empty, and the empty bucket from a lava bucket would be lost. Changed to read the container item first.
- Scanner (OV/OD): building height limit is treated as inclusive (`y == maxBuildHeight` was also read); changed to exclusive; the scan loop now uses mutable coordinates and no longer allocates a `BlockPos` per block.
- `ArmoryActionPacket`: without permission to unbind, it still showed "unbound" and closed the GUI; `unbind` now returns a result, and the message is shown only on success.
- `PlatformTopology`: closing the topology in an observer callback and then isolating a chunk could throw a null pointer because `server == null`; now guarded; rebuild scanning no longer creates a temporary collection for each chunk.
- `getRedstonePorts()` returned an internal mutable collection; changed to a read-only view. `FECompatTile` duplicate import removed, log text changed to English.
- Laser turret statistics: entity custom names longer than 64 characters could cause an encoding exception and sync failure; now truncated before writing.
- `SensorTracker`: first truncated to 64 then sorted by distance, so distant mobs could push out nearby mobs; changed to sort first, then truncate, and only calculate paths and intents for retained targets. Airborne prediction horizontal drag changed from 0.98 to vanilla 0.91.
- `HoloMap`: out-of-bounds targets in the +x/+z directions were drawn one block outside the box; the clamp upper limit was corrected to `RADIUS + 0.5`.
- `ManeuverModeClient.VISUALS` never removed players who left; new class `ClientSessionCleanup` cleans up every 100 ticks, and resets `FcsProjection` and special maneuver visual state when leaving the world.
- `ClientSyncThrottle`: when called from a non-server thread, it directly called `sendBlockUpdated` (the chunk map is not thread-safe); changed to post to the server thread.
- Transformer mode switch message was hardcoded Chinese; changed to translation key `message.mio_icif.transformer.mode_switched` (with English fallback), and Japanese mode names added. `MachineAPIImpl.getRedstoneModeName` and `getRunningState` API return values changed from Chinese to plain English.
- All `toLowerCase()`/`toUpperCase()` changed to `Locale.ROOT` (identifiers would go wrong under locales such as Turkish); `AbstractElectricTool.getDurabilityPercent` no longer returns NaN when capacity is 0.
- Previously fixed in an earlier round: empty ingredient `get(0)` in 6 JEI categories, empty path in `FcsHud`, `IndependentSiEnergy`'s `printStackTrace` changed to logging, `sampleTick`'s `MIN_VALUE` guard, occluder running every 20 ticks, armory remote forced chunk loading cooldown, energy converter integer EU rounding, new `BlockEditPermission` (block edit permission check for painter and wrench).

### Network Payloads

- New `PacketLimits`: list counts are truncated on the encoding side and validated on the decoding side (negative or over-limit directly throws `DecoderException`). Previously the decoder's `Math.min` truncation left unread bytes, misaligning subsequent fields, and negative numbers threw `NegativeArraySizeException`. Applied to `ArmoryConsoleSyncPacket` (64), `MachineStatusPacket` (4096, automatically split when the sender exceeds), `SuitPackets.Threats` (256), laser turret statistics, and target filters.
- New `PacketRateLimit` (token bucket, per player, cleaned up on logout): `ManeuverInput` (burst 10, then 1 per tick; previously every packet was forwarded to all players within 160 blocks), armory console (burst 10, 5 per second), equipment console buttons (burst 20, 10 per second). Slider tuning keeps server-side slot, parameter index, and range validation, but does not go through this token bucket: normal drag frequency can exceed the limit, and the client has no final-value resend mechanism, so directly dropping packets would leave the server at an earlier step.
- Confirmed all 47 payloads are `CustomPacketPayload`, handlers run on the main thread (default), and there are no optional payloads.

### Data-Driven (Data Packs)

- New `SiTuning` reload listener: `data/<namespace>/si_tuning/<name>.json`, each file is a flat numeric object. Data packs can override with a file of the same name; missing keys use code defaults; out-of-range values are clamped and warned; unknown keys (mostly typos) are warned. All tunable values are declared centrally in `SiTuningValues`, and defaults match the built-in JSON (checked by tests).
- First batch: OV/OD scanner scan radius, vertical radius, and energy per use; mining machine drill and scanner energy ranges; teleporter cooldown; armory display case network range. Values used for client rendering (such as mining machine work range) are not yet exposed because the client has no synchronization yet.
- Future candidates: base energy and work time of processing machines, generator output, reactor parameters, special maneuver energy consumption, multiblock (oil well, fusion) structure parameters.

### Modern Version Preparation

- The project is already based on NeoForge 1.21.1: item data uses Data Components (custom data uniformly goes through `CustomData`/component wrappers), networking is entirely `CustomPacketPayload`, and enchantments and tags are data-driven. This version confirms there are no old NBT interfaces such as `getOrCreateTag`. All 31 deprecated `LevelReader.hasChunkAt` uses have been changed to `Level.isLoaded`. Mentions of content module package names in core module comments would trigger architecture checks and have been rewritten.

### Testing

- New GameTest class `Round36GameTests` (8 items): tuning defaults match the built-in file, tuning handles read loaded values, count upper/lower bounds, machine status packet has no residual bytes after over-limit encoding, armory sync packet truncates display cases and overly long labels, rate-limit burst upper bound, upgrade effects no longer recurse, and transformer message translation keys are complete.

This mod has no additional files