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.7.34-beta.jar

File name[SI] SingularityIteration-0.1.7.34-beta.jar
Uploader
MioPhaSideMioPhaSide
Uploaded
Oct 5, 2026
Downloads
11
Size
12.1 MB
Mod Loaders
NeoForge
File ID
9067776
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

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

Learn more about Curse Maven

What's new

## 0.1.7.34

基于 0.1.7.33。「维尔特鲁姆飞行」更名为「特殊机动模式」并重写飞行模型与表现;FCS 各模块视觉重做(矿物声呐回波、弹道弧线、爆炸预警、立方体全息地图、面板样式、航向带开关);纳米套装接入 Blockbench 模型并重绘物品图标。

### 特殊机动模式(原维尔特鲁姆飞行)

- 更名:特性键 `viltrum_flight` → `special_maneuver`,类 `ViltrumFlight(Client)` → `ManeuverMode(Client)`,语言键 `tooltip.mio_icif.armor.feature_special_maneuver`(英 Special Maneuver Mode/中 特殊机动模式/日 特殊機動モード)。手册页 `suit/viltrum_flight.md` → `suit/maneuver_mode.md`。旧开关状态不迁移(默认关闭)。
- 装备控制台中的一个开关同时启用:自由飞行、油门模型、漂移、飞行姿态、蒸汽锥、尾迹云、音障音效与飞行 HUD。
- 油门模型(参考实现的思路,代码全部原创重写):按住疾跑键/加速键油门每 tick +0.017,松开以 2 倍速度回落;轻按潜行锁定/解锁油门;撞墙油门归零。巡航速度 = 油门 × 4 格/tick(80 m/s)。
- 漂移:每 tick 把速度向量朝「视线 × 目标速度」改写,抓地系数随油门从 0.34 降到 0.11,高速转弯会向外甩出后再对准视线;油门为 0 时进入悬停(阻尼 0.86、加速 0.075、上限 0.62 格/tick,跳跃/潜行升降)。
- 起飞:地面上双击跳跃,4 tick 1.25 格/tick 的竖直冲量,伴随地面尘环与起飞音。
- 姿态:悬停时身体前倾 7°,按前进再加 9°,带呼吸起伏;巡航时身体沿视线俯仰并按转向角速度侧倾(最大 38°);油门 ≥0.75 时右臂前伸(新 mixin `PlayerManeuverPoseMixin`,注入 `HumanoidModel#setupAnim` 末尾)。
- 多人:客户端以 `maneuver_input`(C2S)上报油门与摇杆,服务端以 `maneuver_state` 转发给 160 格内的其他玩家,用于姿态与特效;服务端对数值做有限性检查与钳制,未开启开关时油门视为 0。
- 特效:油门越过 0.6(48 m/s)时播放音爆、出现激波环;蒸汽锥(6 环 × 32 段,值噪声扰动,在音障附近最浓);手脚 4 路尾迹云(28 个采样点,随距离变宽变淡);新渲染类型 `VAPOR`(半透明、深度测试、不写深度)。速度视野(最大 +30%)与转弯镜头侧倾保留并可在配置中关闭。
- 飞行 HUD 重做为航空 HUD 风格:随侧倾旋转的俯仰梯、机炮瞄准十字、飞行路径标记、左侧 km/h 速度带、右侧高度带、垂直速度、马赫数与 G 值、带音障刻线的油门表、LOCK 指示与 HOVER/CRUISE/SUPERSONIC 模式字样。原「飞行数据」面板与其布局项移除。
- 功耗:6 + 30 × 速度² EU/t(速度单位 格/tick)。慢速巡航(22 m/s)约 42 EU/t,全油门约 486 EU/t;满电量子胸甲约 3 小时慢速巡航或 17 分钟全油门。
- 音效(`tools/gen_sfx_034.py` 程序合成,未使用任何游戏的素材):`maneuver.boom`(双 N 波 + 低频滚雷)、`maneuver.wind`(4 秒无缝风声循环,随速度调节)、`maneuver.takeoff`。

### FCS 视觉重做

- 地震矿物扫描仪:移除悬浮矿物列表面板。开启单元的瞬间一次性扫描整个球体并发出声呐脉冲:世界空间的波前球(纬线 + 经线)向外扩散 1.6 秒,屏幕上 3 道带 RGB 分离的涟漪从视野边缘向中心收拢,前 0.65 秒叠加数字故障(错位横条、噪声块、扫描条),并播放 `fcs.echo`。矿石在波前到达时才亮起(先闪烁错位,再稳定),以半透明填充 + 亮边的方块透视显示;脉冲结束后每种矿物最近的一处显示引线标签(矿种与距离)。之后每 50 tick 静默复扫。
- 弹道计算机:轨迹改为沿弹道流动的菱形光点,越近落点越亮、越大;落点为贴合命中表面的旋转分段圆环 + 刻度 + 中心点,旁边标签显示射程与飞行时间;命中生物时红色括号锁定并显示 LOCK,首次锁定播放 `fcs.lock`;提前量为黄色菱形 + 虚线牵引线。数据面板精简为 TOF/RNG/DROP 三行(点状引导线)。颜色:蓄力灰、就绪琥珀、命中红。世界线框版轨迹移除。
- 爆炸预警(逻辑不变):每个爆炸物上方显示圆形引信图标(圆环随引信燃烧减少、警示符号、剩余秒数标签);地面危险区为半透明圆盘,按已燃烧比例扇形填充,边缘虚线;爆炸物在 2.5 倍半径内时,准星周围 52 px 处出现指向爆炸物的箭头图标与距离;进入爆炸半径时屏幕边缘红色多层闪烁;蜂鸣 `fcs.blast_beep` 的间隔随剩余时间缩短(12 tick → 2 tick)。列表面板改为分段引信条。`SensorTracker.Blast` 增加总引信时长(TNT 4 秒、苦力怕 1.5 秒)。
- 战术全息地图:由倾斜圆盘浮雕改为立方体全息箱。每 10 tick 采样周围 25 × 14 × 25 格方块体积(脚下 7 格到头顶 6 格),只保留与空气相邻的面,箱壁处的实心方块显示为剖面;水只取水面,植物等非完整方块按开放面显示。每帧对朝向镜头的面做透视投影、远近排序后绘制半透明面(顶面最亮、底面最暗),上限 7 000 面。附加:地板网格、前后分层绘制的箱体棱线与角点、上升扫描平面、脚下高度切片框、带支柱的生物菱形与玩家箭头、北向标记与 Y 坐标/目标数读数。箱体随玩家朝向旋转(视线方向朝箱内)。
- 面板样式:切角外形、标题页签(深色文字)、页签后的细线与刻度、左侧强调条、角部高亮与扫描线。所有面板(状态、电网遥测、弹道、爆炸、全息地图)统一使用。新增绘制工具 `segRing`/`glowLine`/`disc`/`sector`/`dashed`/`chip`。
- 航向带开关:新客户端配置 `fcs_hud.show_compass`(默认开启);HUD 布局编辑器新增「航向带:开/关」按钮。

### 纳米套装模型与图标

- 接入 `Downloads` 中提供的四个 Blockbench 模型(modded_entity,box UV)。`tools/gen_nano_armor.py` 按 ModelPart.Cube 的面顶点与 UV 规则转换:Blockbench 坐标 (x, 24 − y, z),元素按 ZYX 欧拉角绕原点预旋转,再减去所属人形部位的枢轴;头盔 → head,胸甲主体 → body、其余按左右 → 双臂,护腿裆部 → body、其余 → 双腿,靴子 → 双腿。输出 `assets/mio_icif/armor_models/nano_*.json`(不放在 `models/` 下,避免被方块模型加载器扫描),贴图复制到 `textures/models/armor/nano_*.png`。
- 新类 `BakedArmorModel`(继承 `HumanoidModel`):沿用人形部位的姿态与可见性,每个部位绘制烘焙好的四边形;资源重载时重新读取。通过 `IClientItemExtensions#getHumanoidArmorModel` 注册到四件纳米装备;物品的 `getArmorTexture` 改为返回各自贴图。远程盔甲库的飞行部件同样使用新模型。
- 物品图标:`tools/gen_nano_icons.py` 以软件光栅化渲染各部件(3/4 视角、深度缓冲、最近邻贴图、方向光,8 倍超采样),再按像素画规则处理:强调色(绿色灯条、蓝色面罩)优先占格、机体压缩为 4 档灰阶、左上描亮、右下压暗、深色外轮廓。替换 `item_armor_nano_{helmet,chestplate,leggings,boots}.png`。

### 测试与工具

- 新 GameTest 类 `Round34GameTests`(5 项):飞行模型常量(80 m/s 顶速、48 m/s 音障、油门回落 2 倍、抓地随油门下降、486/42 EU/t)、状态包往返编解码与转发、纳米模型部位与四边形完整性及贴图路径与 16×16 图标、6 个新音效(注册、sounds.json、OGG 头)、新语言键三语齐全且不再出现 Viltrum、手册页迁移。`Round33GameTests` 的飞行用例同步改名。
- 捕获场景 14(`run_scene14.sh`):声呐故障/波前/显示、弹道弧线与锁定、爆炸预警、面板总览、全息箱(放大与转向)、航向带关闭、布局编辑器按钮、机动悬停(正面/背面)、巡航、音障、超音速、飞行 HUD、纳米套装三视角与物品栏图标。
- 手册:机动模式页与矿物扫描、弹道、爆炸预警、全息地图单元页按新表现重写,FCS HUD 页增加航向带开关说明;STE 检查 0 问题。
- 新工具:`tools/gen_sfx_034.py`、`tools/gen_nano_armor.py`、`tools/gen_nano_icons.py`、`tools/lang_034.py`。

## 0.1.7.33

基于 0.1.7.32。新增量子套装升级单元、量子改装台、FCS(火控)HUD、量子偏转器力场效果、维尔特鲁姆飞行与 GuideME 游戏内手册。

### 量子改装台与升级单元

- 新方块 `producer/block_quantum_modification_station`(独立工作台,HV 输入,储能 40 000 EU)。上槽放量子套装部件,下槽放升级单元,左下为电池槽。
- 安装:100 tick,64 EU/t(每个单元 6 400 EU)。拆卸:点击列表中的 ×,立即完成且不耗电;单元回到单元槽,单元槽放不下时进入玩家物品栏。
- 单元位:头盔 4、胸甲 3、护腿 2、靴子 2。同一单元在一个部件上只能装一个。可安装的部件由物品标签 `mio_icif:quantum_suit` 决定(量子四件、高级量子胸甲、重型量子胸甲、混合/终极混合太阳能头盔),纳米套装不接受单元。
- 已安装单元存放在数据组件 `mio_icif:suit_modules`;每个单元在装备控制台中自动出现一个开关(键 `fcs_<单元>`),关闭后不耗电。
- 耗电从单元所在部件扣除,每秒结算一次(避免每 tick 同步物品)。HUD 类单元只在佩戴量子头盔(面罩)时工作。
- 方块渲染器:部件悬浮在工作台上方旋转,安装中有扫描平面。界面列出已装单元、开关状态、容量格与状态行(待机/安装中/电力不足/不适用部位/已安装/单元位已满)。

| 单元 | 适用部位 | 功耗 | 说明 |
|---|---|---|---|
| 地震矿物扫描仪 | 靴子/护腿 | 24 EU/t | 半径 16 格球形扫描,50 tick 一轮,分帧执行;彩色透视线框 + 最近矿种列表 |
| 电网遥测传感器 | 护腿/头盔 | 4 EU/t | 视线方块(24 格内)的电压等级、电力包、流量、导线额定;所在区块的发电机/用电/储电/导线数、存量与过压风险 |
| 生物扫描仪(ESP) | 头盔 | 12 EU/t | 32 格内生物:透视轮廓(按敌对/中立/被动/玩家着色,威胁时转黄/红)、边角框、名称、距离、生命条 |
| 弹道计算机 | 头盔 | 4 EU/t | 弓、弩(含烟花)、三叉戟、投掷物;按原版积分顺序逐 tick 模拟(移动→阻力→重力),显示轨迹、落点环、飞行时间、射程、下坠;瞄准线附近移动目标显示 LEAD 提前量点 |
| 爆炸预警计时器 | 胸甲/头盔 | 2 EU/t | 28 格内点燃的 TNT、TNT 矿车、膨胀苦力怕:倒计时标签、地面爆炸半径环与两倍半径环、"IN RADIUS" 警报 |
| 行为预测器 | 头盔 | 8 EU/t | 24 格内生物 1 秒路径预测(位置历史推算 + 重力 + 撞墙截止);攻击征兆代码 ATK/AIM/DET/CAST/BEAM/FIRE/DIVE/AGGRO 与瞄准轴红线 |
| 战术3D全息地图 | 头盔 | 10 EU/t | 半径 20 格倾斜地形浮雕(每 10 tick 采样高度图与地图颜色,画家算法排序,无深度缓冲),随视角旋转;32 格内接触以带支柱菱形显示高度,超出范围的贴在外环 |
| 威胁传感器 | 胸甲 | 6 EU/t | 服务器每 5 tick 判定 32 格内实体:锁定穿戴者的生物或注视穿戴者的敌对生物为红色,注视穿戴者的玩家/中立生物为黄色;HUD 外环方位标记、顶部 LOCK/WATCH 横幅、全息地图同色 |
| 量子偏转器 | 胸甲 | 每点伤害 4 000 EU | 护甲结算后抵消剩余伤害,单次最多 12 点;无视护甲的伤害(爆炸除外)不抵消 |

- 平衡:量子部件 10 M EU。头盔满载传感器(34 EU/t)约 4 小时耗尽,太阳能头盔白天可覆盖。矿物扫描仪功耗最高。单元配方:碳板 ×4 + 高级电路 ×2 + 铱板 + 两件功能原件(扫描仪、电表、望远镜、弩、TNT、幽匿感测体、地图、校频幽匿感测体、力场发生器等);改装台配方需精英电路、OV 扫描仪、合金玻璃、高级机器外壳、铱板与兰波顿水晶。

### FCS HUD 框架

- 新 GUI 层 `mio_icif:fcs_hud`(准星之上),风格仿坦克炮手瞄准镜:视野边框、航向带(罗盘)、激光测距 RNG、俯仰 EL、瞄准门;状态面板列出已启用单元与总功耗、面罩电量。
- 世界坐标→屏幕投影:在 `AFTER_TRANSLUCENT_BLOCKS` 记录本帧投影与视图矩阵,HUD 用同一矩阵绘制目标标签、矿物线框、落点与提前量标记(屏幕空间绘制,不依赖深度状态,始终可见)。
- 面板(状态、遥测、全息地图、弹道、爆炸预警、飞行数据)位置可自定义:装备控制台右下"HUD 布局"按钮或可绑定按键打开布局编辑器,拖动移动、在全息地图上滚轮缩放,位置以屏幕比例保存在客户端配置 `mio_icif-client.toml`。
- 客户端配置:HUD 开关、主色(绿/琥珀/青)、ESP 轮廓、全息地图大小、飞行镜头倾斜与速度视野。按键:H 切换 HUD(可改),布局编辑器(默认未绑定)。
- ESP 轮廓使用原版发光描边通道(客户端 mixin:`Minecraft#shouldEntityAppearGlowing`、`Entity#getTeamColor`),不改实体数据,其他玩家不可见。
- 新渲染类型:`XRAY_LINES`、`XRAY_FILL`、`FIELD_GLOW`。传感器每 tick 计算一次,矿物扫描与地图采样分帧/限频,绘制只读缓存结果。

### 量子偏转器力场效果(非蛋壳型)

- 不再使用整球护罩:只在命中方向点亮贴合身体的椭球面上的局部六边形蜂窝单元,冲击环从命中点向外扩散,偏转板扫过力场片,700 ms 内淡出,命中点产生电火花。
- 服务器在偏转器挡下伤害时向穿戴者与 96 格内玩家发送 `suit_shield_hit`(命中方向与强度,按通道检查,不发给假玩家)。

### 维尔特鲁姆飞行(量子胸甲/高级量子胸甲)

- 装备控制台新开关"维尔特鲁姆飞行",默认关闭(`ArmorFeatureState` 新增按键默认值注册)。开启后服务器通过 `CREATIVE_FLIGHT` 属性修饰符授予自由飞行,双击跳跃起飞;关闭或电量低于 1 000 EU 时收回(不影响创造模式与飞行戒指)。
- 原创惯性模型(未使用任何外部代码):推力沿完整 3D 视线方向,动量方向按转向率逐步转向视线;巡航 1.1 格/tick(22 m/s),按住加速键或疾跑键加速至 3.2 格/tick(64 m/s);松开前进键后滑翔减速,后退键空气制动,跳跃/潜行垂直机动,撞墙削减速度,着陆结束飞行。原版创造飞行输入在 `MovementInputUpdateEvent` 中被中和,不会叠加加速。
- 效果:速度视野、转弯镜头倾斜、身体沿飞行路径水平化(其他玩家也可见)、蒸汽尾迹、超过 48 m/s 时音爆声与激波环、屏幕速度线、飞行数据面板(空速、激波比、高度、垂直速度、实时功耗、胸甲电量)。
- 功耗:6 EU/t + 30 × 速度² EU/t(速度单位格/tick)。巡航约 42 EU/t,全速约 313 EU/t;满电量子胸甲约 4 小时巡航或 26 分钟全速。

### GuideME 游戏内手册(可选依赖)

- `neoforge.mods.toml` 增加可选依赖 `guideme`(`[21.1.1,)`)。手册为数据驱动指南 `assets/mio_icif/guideme_guides/manual.json`,页面位于 `assets/mio_icif/guides/mio_icif/manual/`(英文默认,`_zh_cn/`、`_ja_jp/` 翻译),共 555 页:首页、单位与电压等级、四个机器分类、167 个方块页面、量子套装升级(改装台、9 个单元、FCS HUD、维尔特鲁姆飞行)。
- SI 不在编译期引用 GuideME:安装 GuideME 时,创造模式标签页出现手册,书 + 基础电路可合成(条件配方 `recipe/compat/guideme/manual.json`);未安装时一切照常。
- 机器页面结构:功能、电力数据(由 GameTest 从方块实体实测导出 `tools/guide_data/si_specs.json`:输入电压等级、最大输入、储能、工作耗电、单次时间与耗电、输出电压等级与输出)、使用步骤(编号操作)、注意/警告、配方(`<RecipesFor>`)。
- 文本按 ASD-STE100(参考 asd-ste100-skill-zh)编写:主动语态、一句一个动作、一词一义(术语表固定)、指令句长度上限(英 20 词/中 25 字/日 40 字)、说明句上限(英 25 词/中 40 字/日 60 字)、禁止"被"、虚动词"进行/加以"、营销词、空话、模糊量词与分号。`tools/ste_lint.py` 机械检查全部数据与生成页面(0 问题);`tools/gen_guide.py` 生成页面。

### 测试

- 新增 `Round33GameTests`(12 项):改装台安装耗时与耗电、拆卸返还、重复/不适用部位/满位拒绝、纳米头盔不可放入;单元按部件扣电、关闭开关不耗电、无电不工作;HUD 单元需要量子面罩、终极太阳能头盔算面罩;偏转器抵消伤害并扣电;威胁等级(锁定僵尸红、注视的狼黄、移开视线与牛无威胁);区块电网汇总;维尔特鲁姆开关默认关闭、开启授予飞行、关闭收回;配方与标签;手册完整性(定义、三语首页、每个电力方块三语页面);新语言键三语齐全;规格导出。
- 测试使用真实生存模式 ServerPlayer(GameTest 的模拟玩家恒为创造模式),并在同一 tick 内移除,避免玩家使周边区块进入随机刻而干扰其他测试。

### 已知限制

- 本环境无法下载 GuideME,手册页面只做了格式与完整性检查,未在游戏内打开验证。
- 部分机器的日文名称在 `ja_jp.json` 中缺失,日文手册页标题沿用游戏内显示的英文名,正文中的日文名称为本次撰写。

## 0.1.7.32

基于上游 0.1.7.31(`2132937983/Singularity-Iteration` 分支 `0.1.7.31-beta` @ 7ec4f49)。

### GESU 模块界面崩溃(IndexOutOfBounds)

- 原因:网络通道版本固定为 `"1"`,客户端与服务器模组版本不同也能连接。0.1.7.29 起 GESU 核心界面(模块右键打开的也是它)增加了充放电槽与护甲槽:新服务器同步 42 个槽,旧客户端只建 36 个槽,`getSlot(36)` 越界导致客户端断开。当前版本服务器与客户端两侧的槽位一致(新增测试逐一核对所有 SI 方块菜单的两侧槽位数,以及 GESU 输入/输出模块实际打开的菜单)。
- 通道版本改为模组版本:版本不同的客户端在登录时即被 NeoForge 以"通道版本不匹配"拒绝,不再进入游戏后崩溃。
- 所有 SI 菜单在收到超出槽位数的同步内容时忽略多余部分并记录一次警告,不再抛出异常。

### 导线内嵌防爆石(建筑泡沫)

- 导线可放入铁质脚手架(保留脚手架外观);用 CF 喷枪按脚手架方式喷涂时连同其中的导线一起变为强化泡沫,硬化后成为内含导线的防爆石:外观与爆炸抗性同防爆石,挖掘速度同防爆石,导线照常导电。普通泡沫包裹的导线硬化为 CF 墙。
- 以前包裹在导线上的泡沫永远不会硬化(硬化处理为空方法),喷枪喷导线时也总是去掉强化标记。现在按与泡沫方块相同的 IC2 公式随光照硬化,也可用沙子立即硬化。
- 拆除时掉落导线及其外层(铁脚手架或对应墙体方块)。

### 电动工具的装备特性

- 新增 `core/api/item/IFeatureToolItem`:工具与武器可像护甲一样声明特性,在装备特性控制台(主手/副手)切换、存储并显示在提示中。
- 电动扳手:保留机器内容物(关闭后拆除时内容物散落)、点击正面拆除(关闭后作为防误拆保护)。电动扳手此前拆除机器时不保留物品栏,现与普通扳手共用同一拆除流程。
- 纳米剑:收起时自动关闭、保护友方(对宠物、村民与傀儡只造成基础伤害且不耗电)。

### 树脂收集器审查

- 采集逻辑本身是事件驱动加 20 tick 轮询,开销很小;改为以 `isLoaded` 检查木头所在区块(区块边界不强制加载),并在区块加载时立即检查一次,不必等待下一次轮询。

### 期货交易所改为数据包定义

- 商品由 `data/<命名空间>/si_futures/*.json` 定义(物品、基础价格、波动率、分类、调价周期 `period_days`、解锁进度 `unlock.advancement`、`remove` 删除条目),同一物品后读到的覆盖先前的;`/reload` 生效并同步给所有在线玩家。格式见 `docs/datapacks/si_futures.md`。
- 默认 54 种商品移入 `data/mio_icif/si_futures/`;配置项 `FutureMarket.commodities` 删除。
- 未解锁商品在界面中显示为灰色并提示所需进度,服务器拒绝交易。分类标签宽度随文字。

### 无线输电节点

- 没有目标的节点现在作为接收端向相邻机器与导线供电(以前只能接收,电量停留在缓冲中);接收端的输出包大小不超过相邻机器的输入等级或导线额定值,避免直接贴放的低压机器过压爆炸。
- 发送端不再等缓冲满 32768 EU 才发送;修复目标为 SI 机器时可能按请求量而非实际扣除量入账的问题。

### 分子重构仪与超导合金导线

- 分子重构仪:输入电压与接收功率不设上限(不会过压),每 tick 使用缓冲中的全部能量,能量充足时同一 tick 内连续完成多件(最多 64 件)。以前缓冲不足 32768 EU 时完全不工作。
- 超导合金导线:电压等级与可承载包大小不设上限(熔毁阈值与额定值均为最大值,零损耗)。

### 太阳能头盔与飞行装备

- 太阳能头盔为 Curios 饰品栏中的电池类物品充电(经 `BatteryTargetProviders`,与电池腰带等共用)。
- 混合/终极混合太阳能头盔(以量子头盔合成)继承量子头盔的全部特性:氧气补给、夜视、自动进食、中毒/凋零/辐射清除,且可在控制台切换;高级太阳能头盔(以纳米头盔合成)继承夜视。
- 飞行戒指或创造模式飞行期间,胸甲喷气背包不再工作;以前悬停模式会把"在空中"当作悬停而持续消耗量子胸甲电量。

### 橡胶树苗兼容

- 橡胶树苗加入 `minecraft:saplings` 与 `c:saplings` 标签(方块与物品),去皮橡胶木加入 `c:stripped_logs`。
- 新增 Thermal 有机培养仪(Phytogenic Insolator)配方(仅在安装 Thermal 时加载):橡胶树苗 → 橡胶木 ×6、树苗、树脂。Ender IO 农场站按 `SaplingBlock` 种植、按原版原木/树叶标签砍伐,橡胶树均已满足。
- 本环境未安装 Thermal 与 Ender IO,兼容内容按两者源码确认,未在游戏内实测。

### 其他修复(全源码扫描)

- 期货 `CommodityCategory.WOOD` 枚举项被乱码注释吞掉,木材类商品全部落入"其他"标签页;已恢复。
- 反应堆流体端口界面的物品栏标题绘制语句同样被乱码注释吞掉;已恢复。
- 期货界面分类标签页改为一行排列在图表上方(左侧商品列与右侧日期/金币列之间),宽度按文字自适应,不再与列表重叠。

### 测试

- 新增 `Round32GameTests`:所有菜单两侧槽位一致、GESU 模块打开核心界面、导线放入脚手架→喷涂→硬化后防爆并导电、无线接收端为相邻机器供电、分子重构仪无上限且并行、超导导线无上限、太阳能头盔为高级量子胸甲充电并继承特性、飞行时喷气背包不耗电、工具特性、期货数据包字段、通道版本。上游的 `CommonConfigGameTests` 商品校验改为验证数据包解析。

---

## 0.1.7.34

Based on 0.1.7.33. "Viltrum Flight" renamed to "Special Maneuver Mode" and the flight model and presentation rewritten; FCS modules visually redone (ore sonar echo, ballistic arc, explosion warning, cubic holographic map, panel styling, heading tape toggle); Nano Suit now uses Blockbench models and item icons redrawn.

### Special Maneuver Mode (formerly Viltrum Flight)

- Renamed: feature key `viltrum_flight` → `special_maneuver`, class `ViltrumFlight(Client)` → `ManeuverMode(Client)`, lang key `tooltip.mio_icif.armor.feature_special_maneuver` (EN Special Maneuver Mode / ZH 特殊机动模式 / JA 特殊機動モード). Manual page `suit/viltrum_flight.md` → `suit/maneuver_mode.md`. Old toggle state is not migrated (default off).
- One toggle in the equipment console enables all of: free flight, throttle model, drift, flight pose, vapor cone, contrails, sonic boom sound, and flight HUD.
- Throttle model (inspired by the reference implementation; all code rewritten from scratch): holding sprint/accelerate increases throttle by +0.017 per tick, releasing decays at 2× speed; tapping sneak locks/unlocks throttle; hitting a wall zeroes throttle. Cruise speed = throttle × 4 blocks/tick (80 m/s).
- Drift: each tick the velocity vector is rewritten toward "look × target speed"; grip falls from 0.34 to 0.11 with throttle; high-speed turns swing outward then align to look; at throttle 0 enters hover (damping 0.86, acceleration 0.075, cap 0.62 blocks/tick, jump/sneak for vertical movement).
- Takeoff: double-tap jump on the ground, vertical impulse of 1.25 blocks/tick for 4 ticks, with ground dust ring and takeoff sound.
- Pose: body leans forward 7° while hovering, +9° when pressing forward, with breathing sway; during cruise the body pitches along look and rolls with turn angular velocity (max 38°); at throttle ≥0.75 the right arm extends forward (new mixin `PlayerManeuverPoseMixin`, injected at the end of `HumanoidModel#setupAnim`).
- Multiplayer: client reports throttle and stick via `maneuver_input` (C2S); server forwards via `maneuver_state` to other players within 160 blocks for pose and effects; server performs finiteness checks and clamps values; throttle is treated as 0 when the toggle is off.
- Effects: when throttle crosses 0.6 (48 m/s), plays a sonic boom and shows a shock ring; vapor cone (6 rings × 32 segments, value-noise perturbed, densest near the sound barrier); 4 contrails from hands and feet (28 sample points, widening and fading with distance); new render type `VAPOR` (translucent, depth test, no depth write). Speed FOV (max +30%) and turn camera roll are retained and can be disabled in config.
- Flight HUD redone in aviation HUD style: roll-rotated pitch ladder, gun crosshair, flight path marker, left km/h speed tape, right altitude tape, vertical speed, Mach number and G, throttle gauge with sound barrier tick marks, LOCK indicator, and HOVER/CRUISE/SUPERSONIC mode text. The old "Flight Data" panel and its layout entries were removed.
- Power: 6 + 30 × speed² EU/t (speed in blocks/tick). Slow cruise (22 m/s) is about 42 EU/t, full throttle about 486 EU/t; a full Quantum Chestplate lasts about 3 hours of slow cruise or 17 minutes at full throttle.
- Sounds (procedurally synthesized by `tools/gen_sfx_034.py`, no game assets used): `maneuver.boom` (double N-wave + low-frequency rumble), `maneuver.wind` (4-second seamless wind loop, speed-adjusted), `maneuver.takeoff`.

### FCS Visual Overhaul

- Seismic Ore Scanner: removed the floating ore list panel. On enabling the unit, scans the entire sphere once and emits a sonar pulse: a world-space wavefront sphere (latitude + longitude lines) expands outward over 1.6 seconds; on screen, 3 RGB-separated ripples converge from the view edge toward the center; the first 0.65 seconds overlay digital glitch (misaligned bars, noise blocks, scan bars), and `fcs.echo` plays. Ores light up only when the wavefront reaches them (first flickering/misaligned, then stable), shown as translucent filled + bright-edged block X-ray; after the pulse ends, the nearest occurrence of each ore type shows a leader label (ore type and distance). Afterwards, silently rescans every 50 ticks.
- Ballistic Computer: trajectory changed to diamond light points flowing along the ballistic path, brighter and larger closer to impact; impact point is a rotating segmented ring + ticks + center dot conforming to the hit surface, with a nearby label showing range and flight time; on hitting a mob, red brackets lock on and show LOCK, playing `fcs.lock` on first lock; lead is a yellow diamond + dashed tether line. Data panel reduced to three lines TOF/RNG/DROP (dotted guide lines). Colors: charging gray, ready amber, hit red. World wireframe trajectory removed.
- Explosion Warning (logic unchanged): each explosive shows a circular fuse icon above it (ring decreases as fuse burns, warning symbol, remaining seconds label); ground danger zone is a translucent disc, sector-filled by burned ratio, dashed edge; when an explosive is within 2.5× radius, an arrow icon and distance appear 52 px around the crosshair pointing to the explosive; entering the blast radius causes red multi-layer screen-edge flashing; `fcs.blast_beep` interval shortens with remaining time (12 ticks → 2 ticks). List panel changed to segmented fuse bars. `SensorTracker.Blast` adds total fuse duration (TNT 4 s, Creeper 1.5 s).
- Tactical Holographic Map: changed from tilted disc relief to a cubic holographic box. Every 10 ticks samples a 25 × 14 × 25 block volume around the player (7 blocks below feet to 6 above head), keeping only faces adjacent to air; solid blocks at the box walls are shown as cross-sections; water only uses the surface, and non-full blocks such as plants are shown by open faces. Each frame perspective-projects faces facing the camera, sorts by depth, and draws translucent faces (top brightest, bottom darkest), cap 7,000 faces. Extras: floor grid, box edges and corners drawn in front/back layers, rising scan plane, foot-height slice box, mob diamonds with pillars and player arrow, north marker, and Y-coordinate/target-count readout. The box rotates with player facing (look direction points into the box).
- Panel Styling: chamfered shape, title tab (dark text), thin line and ticks after the tab, left accent bar, corner highlights and scanlines. All panels (status, grid telemetry, ballistic, explosion, holographic map) use it uniformly. New drawing utilities `segRing`/`glowLine`/`disc`/`sector`/`dashed`/`chip`.
- Heading Tape Toggle: new client config `fcs_hud.show_compass` (default on); HUD layout editor adds a "Heading Tape: On/Off" button.

### Nano Suit Models and Icons

- Integrated the four Blockbench models provided in `Downloads` (modded_entity, box UV). `tools/gen_nano_armor.py` converts by ModelPart.Cube face vertices and UV rules: Blockbench coordinates (x, 24 − y, z), elements pre-rotated around the origin by ZYX Euler angles, then subtract the pivot of the owning humanoid part; helmet → head, chestplate main body → body, rest by left/right → both arms, leggings crotch → body, rest → both legs, boots → both legs. Outputs `assets/mio_icif/armor_models/nano_*.json` (not under `models/`, to avoid being scanned by block model loaders), and copies textures to `textures/models/armor/nano_*.png`.
- New class `BakedArmorModel` (extends `HumanoidModel`): uses humanoid part poses and visibility, draws baked quads for each part; reloads on resource reload. Registered to the four Nano equipment pieces via `IClientItemExtensions#getHumanoidArmorModel`; item `getArmorTexture` changed to return each texture. Remote armor library flight parts also use the new model.
- Item icons: `tools/gen_nano_icons.py` software-rasterizes each part (3/4 view, depth buffer, nearest-neighbor textures, directional light, 8× supersampling), then applies pixel-art rules: accent colors (green light strips, blue visor) take priority for cells, body compressed to 4 gray levels, top-left highlight, bottom-right shadow, dark outer outline. Replaces `item_armor_nano_{helmet,chestplate,leggings,boots}.png`.

### Tests and Tools

- New GameTest class `Round34GameTests` (5 items): flight model constants (80 m/s top speed, 48 m/s sound barrier, throttle decay 2×, grip falls with throttle, 486/42 EU/t), state packet round-trip encode/decode and forwarding, Nano model part and quad integrity plus texture paths and 16×16 icons, 6 new sounds (registration, sounds.json, OGG header), new lang keys complete in three languages and no longer containing Viltrum, manual page migration. The flight cases in `Round33GameTests` were renamed accordingly.
- Capture scene 14 (`run_scene14.sh`): sonar glitch/wavefront/display, ballistic arc and lock, explosion warning, panel overview, holographic box (zoom and turn), heading tape off, layout editor button, maneuver hover (front/back), cruise, sound barrier, supersonic, flight HUD, Nano suit three views and inventory icons.
- Manual: maneuver mode page and ore scanner, ballistic, explosion warning, holographic map unit pages rewritten for the new presentation; FCS HUD page adds heading tape toggle description; STE check 0 issues.
- New tools: `tools/gen_sfx_034.py`, `tools/gen_nano_armor.py`, `tools/gen_nano_icons.py`, `tools/lang_034.py`.

## 0.1.7.33

Based on 0.1.7.32. Added Quantum Suit upgrade units, Quantum Modification Station, FCS (fire control) HUD, Quantum Deflector force field effect, Viltrum Flight, and GuideME in-game manual.

### Quantum Modification Station and Upgrade Units

- New block `producer/block_quantum_modification_station` (standalone workbench, HV input, 40,000 EU storage). Top slot for Quantum Suit parts, bottom slot for upgrade units, bottom-left for battery.
- Install: 100 ticks, 64 EU/t (6,400 EU per unit). Remove: click the × in the list, instant and no power cost; the unit returns to the unit slot, or to the player inventory if the unit slot is full.
- Unit slots: helmet 4, chestplate 3, leggings 2, boots 2. The same unit can only be installed once per part. Installable parts are determined by item tag `mio_icif:quantum_suit` (Quantum four pieces, Advanced Quantum Chestplate, Heavy Quantum Chestplate, Hybrid/Ultimate Hybrid Solar Helmet); Nano Suit does not accept units.
- Installed units are stored in data component `mio_icif:suit_modules`; each unit automatically appears as a toggle in the equipment console (key `fcs_<unit>`), and consumes no power when off.
- Power is deducted from the part containing the unit, settled once per second (to avoid syncing the item every tick). HUD-type units only work when wearing a Quantum Helmet (visor).
- Block renderer: parts float and rotate above the workbench, with a scan plane during installation. GUI lists installed units, toggle states, capacity bars, and status lines (idle/installing/insufficient power/unsuitable part/already installed/unit slots full).

| Unit | Applicable Part | Power | Description |
|---|---|---|---|
| Seismic Ore Scanner | Boots/Leggings | 24 EU/t | 16-block radius spherical scan, one pass per 50 ticks, frame-sliced; colored wireframe + nearest ore list |
| Grid Telemetry Sensor | Leggings/Helmet | 4 EU/t | Voltage tier, packet, flow, cable rating of looked-at block (within 24 blocks); generator/consumer/storage/cable counts, stored energy, and overvoltage risk in the current chunk |
| Bio Scanner (ESP) | Helmet | 12 EU/t | Mobs within 32 blocks: X-ray outline (colored by hostile/neutral/passive/player, turns yellow/red when threatening), corner box, name, distance, health bar |
| Ballistic Computer | Helmet | 4 EU/t | Bows, crossbows (including fireworks), tridents, throwables; simulates tick by tick in vanilla integration order (movement → drag → gravity), showing trajectory, impact ring, flight time, range, drop; moving targets near the aim line show LEAD point |
| Explosion Warning Timer | Chestplate/Helmet | 2 EU/t | Primed TNT, TNT minecarts, swelling Creepers within 28 blocks: countdown label, ground blast-radius ring and double-radius ring, "IN RADIUS" alert |
| Behavior Predictor | Helmet | 8 EU/t | 1-second path prediction for mobs within 24 blocks (position history extrapolation + gravity + wall-stop); attack tell codes ATK/AIM/DET/CAST/BEAM/FIRE/DIVE/AGGRO and red aim axis line |
| Tactical 3D Holographic Map | Helmet | 10 EU/t | 20-block radius tilted terrain relief (heightmap and map colors sampled every 10 ticks, painter's algorithm sorted, no depth buffer), rotates with view; contacts within 32 blocks shown as diamonds on pillars, those outside range pinned to outer ring |
| Threat Sensor | Chestplate | 6 EU/t | Server checks entities within 32 blocks every 5 ticks: mobs targeting the wearer or hostile mobs looking at the wearer are red; players/neutral mobs looking at the wearer are yellow; HUD outer-ring bearing markers, top LOCK/WATCH banner, holographic map same colors |
| Quantum Deflector | Chestplate | 4,000 EU per damage point | After armor resolution, cancels remaining damage, up to 12 points per hit; armor-ignoring damage (except explosions) is not canceled |

- Balance: Quantum parts 10M EU. Helmet with all sensors (34 EU/t) drains in about 4 hours; solar helmet can cover during the day. Ore scanner has the highest power draw. Unit recipes: carbon plate ×4 + advanced circuit ×2 + iridium plate + two functional components (scanner, EU meter, telescope, crossbow, TNT, sculk sensor, map, calibrated sculk sensor, force field generator, etc.); modification station recipe requires elite circuit, OV scanner, alloy glass, advanced machine casing, iridium plate, and Lapotron Crystal.

### FCS HUD Framework

- New GUI layer `mio_icif:fcs_hud` (above crosshair), styled like a tank gunner sight: view frame, heading tape (compass), laser rangefinder RNG, pitch EL, aim gate; status panel lists enabled units, total power draw, and visor charge.
- World coordinate → screen projection: records the frame's projection and view matrices at `AFTER_TRANSLUCENT_BLOCKS`; HUD uses the same matrices to draw target labels, ore wireframes, impact points, and lead markers (screen-space drawing, independent of depth state, always visible).
- Panels (status, telemetry, holographic map, ballistic, explosion warning, flight data) are position-customizable: equipment console bottom-right "HUD Layout" button or a bindable key opens the layout editor; drag to move, scroll to zoom on the holographic map; positions saved as screen ratios in client config `mio_icif-client.toml`.
- Client config: HUD toggle, primary color (green/amber/cyan), ESP outline, holographic map size, flight camera roll and speed FOV. Keys: H toggles HUD (rebindable), layout editor (unbound by default).
- ESP outline uses vanilla glowing outline channel (client mixins: `Minecraft#shouldEntityAppearGlowing`, `Entity#getTeamColor`), does not modify entity data, and is invisible to other players.
- New render types: `XRAY_LINES`, `XRAY_FILL`, `FIELD_GLOW`. Sensors compute once per tick; ore scan and map sampling are frame-sliced/rate-limited; drawing only reads cached results.

### Quantum Deflector Force Field Effect (non-eggshell)

- No longer uses a full-sphere shield: only lights up local hexagonal honeycomb cells on an ellipsoid conforming to the body in the hit direction; an impact ring expands outward from the hit point, deflector plates sweep across force field tiles, fades within 700 ms, and sparks appear at the hit point.
- When the deflector blocks damage, the server sends `suit_shield_hit` to the wearer and players within 96 blocks (hit direction and strength, checked per channel, not sent to fake players).

### Viltrum Flight (Quantum Chestplate / Advanced Quantum Chestplate)

- New equipment console toggle "Viltrum Flight", default off (`ArmorFeatureState` adds default value registration). When on, the server grants creative flight via a `CREATIVE_FLIGHT` attribute modifier, double-tap jump to take off; retracted when off or below 1,000 EU (does not affect creative mode or flight rings).
- Original inertial model (no external code used): thrust along full 3D look direction, momentum direction gradually turns toward look at turn rate; cruise 1.1 blocks/tick (22 m/s), hold accelerate or sprint to accelerate to 3.2 blocks/tick (64 m/s); releasing forward glides and decelerates, back key airbrakes, jump/sneak vertical maneuver, hitting a wall reduces speed, landing ends flight. Vanilla creative flight input is neutralized in `MovementInputUpdateEvent` and does not stack acceleration.
- Effects: speed FOV, turn camera roll, body leveled along flight path (visible to other players), vapor trail, sonic boom and shock ring above 48 m/s, screen speed lines, flight data panel (airspeed, shock ratio, altitude, vertical speed, real-time power draw, chestplate charge).
- Power: 6 EU/t + 30 × speed² EU/t (speed in blocks/tick). Cruise about 42 EU/t, full speed about 313 EU/t; full Quantum Chestplate lasts about 4 hours cruising or 26 minutes at full speed.

### GuideME In-Game Manual (Optional Dependency)

- `neoforge.mods.toml` adds optional dependency `guideme` (`[21.1.1,)`). The manual is a data-driven guide `assets/mio_icif/guideme_guides/manual.json`, pages under `assets/mio_icif/guides/mio_icif/manual/` (English default, `_zh_cn/`, `_ja_jp/` translations), 555 pages total: home, units and voltage tiers, four machine categories, 167 block pages, Quantum Suit upgrades (modification station, 9 units, FCS HUD, Viltrum Flight).
- SI does not reference GuideME at compile time: when GuideME is installed, a manual appears in the creative tab and can be crafted from book + basic circuit (conditional recipe `recipe/compat/guideme/manual.json`); otherwise everything works as usual.
- Machine page structure: function, power data (exported by GameTest from block entity measurements to `tools/guide_data/si_specs.json`: input voltage tier, max input, storage, working power draw, single-operation time and power, output voltage tier and output), usage steps (numbered actions), notes/warnings, recipes (`<RecipesFor>`).
- Text follows ASD-STE100 (referencing asd-ste100-skill-zh): active voice, one action per sentence, one meaning per word (fixed glossary), instruction sentence length limits (EN 20 words / ZH 25 characters / JA 40 characters), explanatory sentence limits (EN 25 words / ZH 40 characters / JA 60 characters), bans on "被", dummy verbs "进行/加以", marketing words, empty phrases, vague quantifiers, and semicolons. `tools/ste_lint.py` mechanically checks all data and generated pages (0 issues); `tools/gen_guide.py` generates pages.

### Tests

- New `Round33GameTests` (12 items): modification station install time and power, removal return, duplicate/unsuitable part/full slot rejection, Nano helmet cannot be inserted; units deduct power per part, toggling off consumes no power, no power means no work; HUD units require Quantum visor, Ultimate Solar Helmet counts as visor; deflector cancels damage and deducts power; threat levels (targeting zombie red, looking wolf yellow, looking away and cow no threat); chunk grid summary; Viltrum toggle default off, on grants flight, off retracts; recipes and tags; manual completeness (definitions, trilingual home, trilingual pages for every powered block); new lang keys complete in three languages; spec export.
- Tests use a real survival-mode ServerPlayer (GameTest's simulated player is always creative) and remove it within the same tick to avoid the player causing nearby chunks to enter random ticks and disturb other tests.

### Known Limitations

- This environment cannot download GuideME; manual pages were only format- and completeness-checked, not opened in-game.
- Some machine Japanese names are missing from `ja_jp.json`; Japanese manual page titles use the English name shown in-game, and Japanese names in the body were written for this update.

## 0.1.7.32

Based on upstream 0.1.7.31 (`2132937983/Singularity-Iteration` branch `0.1.7.31-beta` @ 7ec4f49).

### GESU Module GUI Crash (IndexOutOfBounds)

- Cause: the network channel version was fixed to `"1"`, so clients and servers with different mod versions could still connect. Since 0.1.7.29, the GESU core GUI (also opened by right-clicking a module) added charging/discharging slots and armor slots: the new server syncs 42 slots, but the old client only creates 36, so `getSlot(36)` goes out of bounds and disconnects the client. In the current version, server and client slot counts match (new tests verify both-side slot counts for all SI block menus one by one, and the menu actually opened by GESU input/output modules).
- Channel version changed to mod version: clients with different versions are rejected by NeoForge at login with "channel version mismatch", instead of crashing after entering the game.
- All SI menus ignore excess synced content beyond the slot count and log one warning instead of throwing an exception.

### Cable-Embedded Blast-Proof Stone (Construction Foam)

- Cables can be placed into iron scaffolding (retaining the scaffolding appearance); when sprayed with a CF sprayer in the scaffolding manner, the cable inside is converted along with it into reinforced foam, and after hardening becomes blast-proof stone containing the cable: appearance and blast resistance same as blast-proof stone, mining speed same as blast-proof stone, and the cable still conducts. Cables wrapped in normal foam harden into CF wall.
- Previously, foam wrapped around cables would never harden (the hardening handler was an empty method), and spraying a cable with the sprayer always removed the reinforced marker. Now it hardens with light using the same IC2 formula as foam blocks, and can also be hardened instantly with sand.
- When broken, drops the cable and its outer layer (iron scaffolding or the corresponding wall block).

### Electric Tool Equipment Features

- Added `core/api/item/IFeatureToolItem`: tools and weapons can declare features like armor, toggled in the equipment feature console (main hand/off hand), stored, and shown in tooltips.
- Electric Wrench: preserves machine contents (when off, contents spill when dismantled), and clicking the front face dismantles (when off, acts as mis-click protection). The Electric Wrench previously did not preserve inventory when dismantling machines; it now shares the same dismantling flow as the normal Wrench.
- Nano Saber: automatically turns off when retracted, protects allies (only deals base damage to pets, villagers, and golems and consumes no power).

### Resin Collector Review

- The collection logic itself is event-driven plus 20-tick polling, so overhead is very low; changed to check the chunk containing the wood with `isLoaded` (does not force-load chunk boundaries), and checks immediately when a chunk loads instead of waiting for the next poll.

### Futures Exchange Changed to Datapack-Defined

- Commodities are defined by `data/<namespace>/si_futures/*.json` (item, base price, volatility, category, price adjustment period `period_days`, unlock advancement `unlock.advancement`, `remove` to delete entries); later reads for the same item override earlier ones; `/reload` takes effect and syncs to all online players. Format documented in `docs/datapacks/si_futures.md`.
- The default 54 commodities moved into `data/mio_icif/si_futures/`; config option `FutureMarket.commodities` removed.
- Locked commodities appear gray in the GUI with a hint of the required advancement; the server rejects trades. Category tab width follows the text.

### Wireless Power Nodes

- Nodes with no target now act as receivers and supply adjacent machines and cables (previously they could only receive, and power stayed in the buffer); receiver output packet size does not exceed the adjacent machine's input tier or cable rating, avoiding overvoltage explosions on directly attached low-voltage machines.
- Senders no longer wait for the buffer to reach 32,768 EU before sending; fixed an issue where targeting SI machines could credit by requested amount instead of actual deducted amount.

### Molecular Reconstructor and Superconducting Alloy Cable

- Molecular Reconstructor: input voltage and received power have no upper limit (no overvoltage), uses all buffered energy per tick, and when enough energy is available completes multiple items in the same tick (up to 64). Previously it did not work at all when the buffer was below 32,768 EU.
- Superconducting Alloy Cable: voltage tier and packet size have no upper limit (meltdown threshold and rating are both maximum, zero loss).

### Solar Helmet and Flight Equipment

- Solar Helmet charges battery-type items in the Curios accessory slots (via `BatteryTargetProviders`, shared with battery belts, etc.).
- Hybrid/Ultimate Hybrid Solar Helmet (crafted from Quantum Helmet) inherits all Quantum Helmet features: oxygen supply, night vision, auto-eating, poison/wither/radiation removal, and can be toggled in the console; Advanced Solar Helmet (crafted from Nano Helmet) inherits night vision.
- During Flight Ring or creative flight, the chestplate jetpack no longer works; previously hover mode treated "in air" as hovering and continuously drained Quantum Chestplate power.

### Rubber Sapling Compatibility

- Rubber Sapling added to `minecraft:saplings` and `c:saplings` tags (block and item); stripped rubber wood added to `c:stripped_logs`.
- Added Thermal Phytogenic Insolator recipe (loaded only when Thermal is installed): Rubber Sapling → Rubber Wood ×6, sapling, resin. Ender IO Farm Station plants by `SaplingBlock` and harvests by vanilla log/leaf tags, which rubber trees already satisfy.
- This environment does not have Thermal or Ender IO installed; compatibility was confirmed from their source code, not tested in-game.

### Other Fixes (Full Source Scan)

- Futures `CommodityCategory.WOOD` enum entry was swallowed by a garbled comment, causing all wood commodities to fall into the "Other" tab; restored.
- The reactor fluid port GUI inventory title drawing statement was also swallowed by a garbled comment; restored.
- Futures GUI category tabs changed to a single row above the chart (between the left commodity column and the right date/coin column), width auto-fits text, and no longer overlaps the list.

### Tests

- New `Round32GameTests`: all menus have matching slot counts on both sides, GESU module opens core GUI, cable placed in scaffolding → sprayed → hardened is blast-proof and conductive, wireless receiver supplies adjacent machines, Molecular Reconstructor has no cap and works in parallel, superconducting cable has no cap, Solar Helmet charges Advanced Quantum Chestplate and inherits features, jetpack consumes no power during flight, tool features, futures datapack fields, channel version. Upstream `CommonConfigGameTests` commodity validation changed to verify datapack parsing.

This mod has no additional files