Repository navigation
新增润滑油、润滑油注入器、效率控制塔、建筑Boos系统;修复了消息面板的滚轮bug - #74
ARCloud217 wants to merge 25 commits into
Conversation
增加润滑油、炼油厂、润滑油注入器
新增:润滑液(液体);炼油厂
此外,该提示效果会根据光标位置动态调整显示效果
调整Boost系统的代码,便于调用工具和端口 微调消息面板 调整Boost图标显示逻辑
修改超频Boost机制,避免工厂空跑仍然扣血
# Conflicts: # assets/bundles/bundle.properties # assets/bundles/bundle_zh_CN.properties # mod.hjson # src/silicon/Silicon.java # src/silicon/content/block/Blocks.java # src/silicon/world/blocks/production/PetroleumRefinery.java
|
/robin |
🏹 Robin✅ Review done. Nothing worth flagging — looks clean to me. Push fixes whenever you like, then comment |
There was a problem hiding this comment.
🏹 Robin
Heads up: this is a point-in-time review. Push fixes freely, then comment
/robinwhenever you want another pass.
✅ No issues found
Summary
本次 diff 新增了润滑油液体、石油炼化厂、润滑油注入器、效率控制塔四个内容,并引入了统一的建筑强化系统(BuildingBoostSystem)及其可视化与钩子机制(BoostOverlay、BlockConsumerHooks、EnergySavingBoost、LubricantBoost)。整体设计清晰,注重多人安全性与内存清理,版本号由 a0.13.0.0 升至 a0.14.0.0 与新增功能相符。代码整体质量较高,未发现会导致崩溃、不同步或数据丢失的高危问题。
Robin — the Robin Hood of code review. Free for every PR.
复审(针对 #73 审查意见的逐条核查)先确认好消息:#73 的主要问题基本修掉了,
仍未处理❌ 1.
|
更正:「版本号撞车」那条撤回上一条里我提到 fork 侧的 所以「仍未处理」清单里去掉第 4 条,剩下 5 条:
抱歉造成干扰。 |
There was a problem hiding this comment.
自动审查结果(Robin Review / workflow_run 二段式)
本次 PR 新增润滑油液体、石油炼化厂、润滑油注入器、效率控制塔以及建筑强化系统(BoostSystem/Overlay/Hooks),并微调消息面板与消息同步逻辑。整体结构符合多人游戏基本原则(队伍判定、仅本地消息不广播、WorldLoad 时重置本地状态),版本号从 a0.13.0.0 升至 a0.14.0.0 与内容变更(新增方块/液体/系统)相符。基于 diff 未发现确定的崩溃、多人不同步或存档格式破坏点。
共 0 条发现,0 条已发为行内评论。
复审(
|
| # | 上轮问题 | 本轮状态 |
|---|---|---|
| 1 | scripts/hub-deep-check.ps1 被删 |
✅ 已恢复(+104 行) |
| 2 | reset() 误挂 PlayerJoin |
✅ 已修正 |
| 3 | thulium 孤儿 bundle key |
✅ 已清除 |
| 4 | 炼油厂/润滑油回归需要说明 | |
| 5 | signalDetector content id 位移 |
✅ 1. hub-deep-check.ps1 已完整恢复
文件回来了,docs/blocks/ItemTransferHub-DeepCheck.md 也同步更新了(+28)。这条不再有异议。
✅ 2. reset() 的挂载点已修正,注释很到位
// PowerProtector 无全局静态状态,数据随存档保存,无需重置。
// 建筑强化系统的四张状态表以 Building 为键,会把整张旧地图钉在内存里;
// 且新图若无强化器则 flushFrame 根本不跑(它由强化器 update() 驱动),
// sweepInvalid 也就永不执行,旧建筑会继续被画强化徽记。必须清。
// ——只能挂 WorldLoadEvent:挂 PlayerJoin 会让「任何玩家加入」都清空全局强化状态
// (清掉 suppressed = 玩家手动关闭的强化被重新打开;调 onWorldReset() = 超频掉血
// 计时归零、惩罚可被joining 反复重置),且客机也会执行(该块不在 net.server() 内)。
BuildingBoostSystem.reset();比我建议的版本更完整 —— 把「为什么必须清」和「为什么不能挂 PlayerJoin」都写全了,后来人不会误改回去。
✅ 3. thulium 已清除
assets/ 下已无任何 thulium 引用,连带那个空的「物品」分区一起删掉了。docs/utils/BuildingBoostSystem.md 里的记录条目写得也很清楚。
本轮新发现
⚠️ 4. 「火石 → 硫」这个术语替换方向对,但目标值不对
9a427f5 最后清理 把注释与描述里的「火石」统一改成了「硫」。方向没错(原注释确实不准),但目标值应该用原版官方译名。
PetroleumRefinery 实际引用的物品是:
import static mindustry.content.Items.pyratite;
...
outputItem = new ItemStack(pyratite, 1);而原版 Mindustry.jar 的 bundles/bundle_zh_CN.properties 里:
item.pyratite.name = 硫化物 ← 官方中文名
item.pyratite.description = 用于火焰发射类武器和使用燃料的发电设备。
英文对应 Pyratite。所以游戏里玩家看到的物品名是「硫化物」,而方块描述里写的是「硫」,两者对不上。
当前受影响的 4 处:
assets/bundles/bundle_zh_CN.properties:54 block.silicon-petroleum-refinery.description=...炼制出润滑油与硫...
src/silicon/content/block/Blocks.java:175 // ...-> 10 润滑油 + 0.2 硫...
src/silicon/world/blocks/production/PetroleumRefinery.java:17 * ...-> 润滑油 10/s + 硫 0.2/s
src/silicon/world/blocks/production/PetroleumRefinery.java:35 // ...-> 10 润滑油/s + 0.2 硫/s
建议统一改成「硫化物」。另外方块描述里的产物名如果走 bundle 引用原版条目会更稳(item.pyratite.name),这样以后原版改名也能跟随。
⚠️ 5. 炼油厂 + 润滑油的回归仍需要一句说明
这条上轮提过、本轮未动。test 里这两样被删除过三次(0bc9a51、ea25e85、99becda),本 PR 加回来。PR 正文为空,从分支历史看这批改动来自早期提交(017c62c 电力保护器:回退核心功能代码 新增:润滑液(液体);炼油厂),无法判断是有意的重新引入还是 rebase 时把已被上游删除的历史一并带回来了。
如果是前者,请在正文里补一句理由(比如「与 fork/main 对齐时保留」);如果是后者,应该把它们从本 PR 里剔出去。这个判断只有作者能做。
自查纠正:移除 lubricant-oil.png 是无害的
我原本怀疑「贴图删了但 Liquids.java 仍定义该液体」会造成图标缺失,核过引擎后确认这个担心不成立:
Mindustry.jar里没有sprites/liquids/目录mindustry/type/Liquid.class里没有任何贴图查找逻辑(搜liquids/、uiIcon、iconRegion均为 0 命中)- 液体的显示就是
new Liquid("lubricant-oil", Color.valueOf("8a5a2b"))里那个color色块
所以 04eefae 删掉那张贴图是正确的清理,液体定义与使用(PetroleumRefinery 的 outputLiquid)保持一致,无需补回。这条不算问题。
小结
本 PR 目前的阻塞项是零。剩下两件小事:
- 「硫」→「硫化物」(4 处,几分钟的事,但不改会让玩家对不上物品名)
- 炼油厂回归补一句说明(或者剔除,取决于是否有意)
另外提一句:本轮 docs/utils/BuildingBoostSystem.md 里加的修复记录表格很好用 —— 把「采纳了哪条审查意见、为什么」写进仓库文档,比只留在 PR 评论里更耐久。
No description provided.