Improve tooltip formatting and split long tooltips behind Shift 优化提示文本格式并将长提示拆分至 Shift - #4937
Conversation
- 将多处提示文本修改为多行格式,提高可读性 - 简化building_rod提示,分离普通与Shift显示信息 - 对ionocraft_backpack提示内容拆分为普通与Shift两部分 - 更新ItemTooltipLang中的提示文本,同步多行文本格式 - 统一中英文json文件中对应提示文本的换行和描述风格
|
⚠ Stream stalled mid tool-call (write_file); the action was not executed. Ask me to retry if you want to continue.已完成审查。以下是审查意见(webhook 会自动发布到 PR 评论区): 代码审查摘要 — PR #4937操作: opened 纯 tooltip PR,无逻辑代码变更。核心意图:把 🟢 看起来不错
|
| 被删除内容 | 影响 |
|---|---|
building reach +15 |
数值消失,NORMAL 只剩「grants crab claw reach」 |
up to 4,000 blocks |
框选上限消失 |
the starting face determines large-block anchors |
大型方块锚点规则消失 |
| 过滤器 deny/allow 列表 + 组件匹配两行 | 非直觉机制说明完全消失 |
Import blueprint files through the Structure Scanner (16×16×16 maximum) |
蓝图导入途径消失 |
建议至少保留「过滤器/组件匹配」与「结构扫描仪导入」两行;若确为有意缩短,请在 PR 描述中说明,并考虑在 ageratrum 手册补页。另 NORMAL 也丢了 including in pockets(口袋携带同样生效)。
💡 建议
- PR 标题过于笼统:
Fix tooltip. 修正tooltip无法反映实际改动(既有格式化也有内容删减)。gh auth status显示 token 已失效,本次未能自动修改,建议标题:
Improve tooltip formatting and split long tooltips behind Shift 优化提示文本格式并将长提示拆分至 Shift - 风格统一:
BUILDING_RODNORMAL 与IONOCRAFT_BACKPACKNORMAL 的文本块闭合位置不一致(一个独占一行带尾换行、一个贴内容行),渲染虽等价,统一后可减少后续 diff 噪音
🧪 验证建议
| 步骤 | 命令/操作 | 目的 |
|---|---|---|
| 1 | ./gradlew runData |
确认生成物与 Java 文本块完全一致(本 PR 已通过,改文本后需重跑) |
| 2 | 游戏内 F3+H 悬停建筑杖 / 飘升机背包,分别不按 / 按住 Shift | 确认 NORMAL+press_key 提示与 SHIFT 文本切换正确 |
| 3 | 切换 zh_cn 语言重复步骤 2 | 捕获 ionocraft_backpack.shift 缺失 key 的回退现象 |
结论: REQUEST_CHANGES — 飘升机背包的 NORMAL/SHIFT 拆分正确、生成链无误,方向没问题;但 building_rod.shift 新引入 2 处文本错误(list ,、to places)与句法混用,且删除的机制说明属唯一文档来源,另需处理 zh_cn 缺失的新 key。修复以上 3 点即可合并。
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'minecraft-lang-pipeline-review' (1 replacement). |
|
PR #4937 的操作类型为 closed(分支 按 webhook 审查约定, |
Reason: script execution via -e/-c flag Reply |
|
I have all the evidence I need. Here's my review: 代码审查摘要 — PR #4937操作: 变更验证(生成物 ↔ 源一致性)
生成文件本身校验:en_us / en_ud 均合法 JSON,各 2528 键,键集完全一致,无手改痕迹 → datagen 已正确执行。 🔴 需修复(本次新引入的英文文本错误,会直接进游戏)
这两个错误已随合并进入
|
| 被删内容 | 代码核对 | 是否还有别处可查 |
|---|---|---|
hold in either hand to build with +15 block reach |
BuildingRodItem.updateReach():手持 + 另一手持材料/结构盘时把 BLOCK_INTERACTION_RANGE 设为 15 - crabclaw → 说法属实 |
❌ 无 |
including in pockets(NORMAL 行一并删掉) |
CrabClawItem:56 → BuildingRodItem.isCarried() → PocketInventory.carriedItems(),放口袋确实给蟹钳触及 → 说法属实且反直觉 |
❌ 无 |
| 过滤器 3 行(无视放行/拒绝列表、不匹配组件时按槽位随机加权、匹配组件时按有效槽位矩形循环平铺) | 属隐性机制,无法从 UI 推断 | ❌ 无(ageratum/006_prop/003_filter.md 只讲 Filter 本身的 allow/deny 开关,反而会误导玩家以为列表生效) |
Import blueprint files through the Structure Scanner (16×16×16 maximum) |
— | ❌ 无(ageratum 里没有建筑杖页面;101_structure_scanner_alternative.md / 101_smart_block_placer.md 讲的是智能方块放置器和结构磁盘,不是建筑杖) |
补充证据:BuildingRodLang.java 里生成的 item.anvilcraft.building_rod.desc / .import / .controls / .fluids / .summary 这些键(内容基本就是被删掉的原文,且 .desc 里有 +15 block reach、.import 里有结构扫描仪导入)在仓库中没有任何代码引用,只存在于 lang 文件里 → 这些信息目前游戏内完全不可见。
PR 描述为空(None),无法判断删除是有意精简还是重写时顺手丢了。建议:要么明确说明"tooltip 只保留操作入口、细节移至手册"并真的补一篇手册页,要么至少恢复 +15 block reach 与"经结构扫描仪导入蓝图"两条(玩家无法自行发现);18×18×18 之外的 16×16×16 上限同理。
2. 多语言未同步 —— 新键缺翻译,拆分对中文玩家实际无效
tooltip.anvilcraft.item.ionocraft_backpack.shift
在 de_de/es_es/fr_fr/ja_jp/ko_kr/lzh/ru_ru/zh_cn/zh_hk/zh_meme/zh_tw 全部 11 个 lang 文件中均不存在
- 玩家按住 Shift 时走
getTranslationKeyShift()→ 键缺失 → 回退英文(原版 en_us fallback),中文下拆分等于没做。 - 更矛盾的是
zh_cn的tooltip.anvilcraft.item.ionocraft_backpack仍是旧的三行文本(装备时可以在电网内创造飞行\n离开电网时…\n双击空格可取消缓降)→ 中文不按 Shift 时显示的仍是那三行,与新的 NORMAL/SHIFT 语义相反。 zh_cn的tooltip.anvilcraft.item.building_rod也还是旧描述(…随身携带(含口袋)…),building_rod.shift仍是 9 行旧文本(含已被删掉的 +15 / 过滤器 / 结构扫描仪)→ 中英内容严重分歧。
Weblate 滞后本身正常,但新增键不会自动出现。建议在 PR / issue 里贴出本次新增与变更的 lang key 清单(ionocraft_backpack.shift 新增;ionocraft_backpack、building_rod、building_rod.shift、equipment.breathing、equipment.recharge 变更),并优先翻译中文。
💡 建议
- 尾随换行风格不统一:
ItemTooltipManager.java:56-59的"""独占一行 → 生成…while carried\n。addTranslatedTooltip()用split("\n")(丢尾部空串),en_us 渲染无影响;但 en_ud 生成时行序反转,尾随\n变成行首\n,上下颠倒语言下会多一个空行。同批在ItemTooltipLang.java改的 breathing/recharge/pockets/buffer_boots 都把"""贴在最后一行(无尾随换行),两处风格不一致,建议统一为无尾随换行。 - 语气不一致:NORMAL 建筑的 rod 变成
Place blocks and blueprints in bulk+Grants crab claw reach while carried(祈使 + 第三人称混用)。其它 NORMAL 条目统一为第三人称(Allows…、Attracts…),建议二选一。 - 丢了限定词:
Buckets fill areas and waterlog blocks, 2 B per fill相比旧文renewable fluids cost 2 B per fill少了"可再生流体"限定;若确实只有无限/可再生流体才收 2 B,这条现在表述不准(zh_cn 仍写"可再生流体每次消耗 2 B")。 ItemTooltipManager.NEED_TOOLTIP_ITEMS只有定义、无消费者;本次给 IONOCRAFT_BACKPACK 加 SHIFT 条目后allTooltips.putAll(SHIFT)会把该 item 在该 map 里的值从 normal 文本覆盖为 shift 文本。当前无影响,仅提示将来若启用该 map 需注意。
🟢 看起来不错
SHIFT.put(IONOCRAFT_BACKPACK)的接入方式正确:SHIFT.containsKey(item)分支下不按 Shift 时展示 NORMAL +[Shift]提示、按下时展示 SHIFT,无需改渲染逻辑,无反同 tick/索引回归。- ionocraft 背包两侧文本只是搬移(SHIFT 内容与旧 NORMAL 的后两行逐字一致),无信息丢失,是本次最干净的一处改动。
pockets/buffer_boots改 text block 时特意让"""贴最后一行以保持字符串字节等价 —— 避免了污染 11 个语言的既有翻译,这个细节做得对。- 生成资源与 Java 源同步(datagen 已跑),en_ud 逐条镜像正确。
🧪 测试建议
| 被测目标 | 推荐场景 | 优先级 |
|---|---|---|
addTranslatedTooltip() |
空串行/首行 \n/尾随 \n 三种输入下的渲染行数(en_us 与 en_ud 各一遍) |
🟡 |
ItemTooltipManager.addTooltip() |
飘升机背包:按住/松开 Shift,断言行数与 [Shift] 提示位置 |
🟡 |
BuildingRodItem.updateReach() |
建筑杖在手中 / 在口袋 / 副手无材料时,分别断言 BLOCK_INTERACTION_RANGE(tooltip 里这条说明已被删除,行为未变,需人工回归确认) |
🟡 |
| lang 完整性 | 断言 tooltip.*.shift 的键在 en_us ↔ en_ud ↔ 各语言文件中的存在性集合(可自动发现本次这类"新键漏翻译") |
🟢 |
结论: COMMENT — 改动方向正确(NORMAL 精简 + 细节折叠到 Shift),且生成物与源一致;但新引入的两处英文错误(list ,、to places)应尽快修,同时需要澄清被删掉的机制说明(+15 触及、口袋生效、过滤器列表语义、结构扫描仪导入)是否有意为之并给出替代呈现位置,以及补 ionocraft_backpack.shift 的多语言翻译。
PR 标题:当前标题基本准确,但未体现"建筑杖提示被大幅重写/削减"这一点。建议(本次 gh auth status 显示 token 失效,未自动修改):
Rewrite building rod tooltip and split ionocraft backpack tooltip behind Shift 重写建筑杖提示并将飘升机背包长提示拆分至 Shift
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/tooltip-normal-shift-split-review.md in skill 'minecraft-lang-pipeline-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-lang-pipeline-review' (1 replacement). |
No description provided.