Separate block‑placement rules from interactive‑pickup rules 分离方块放置与交互拾取规则 - #4766
Conversation
WhereisFff
commented
Sep 9, 2026
- 移除模型凹陷与细缝补齐算法及相关几何缓存
- 全局放置改用方块原有选择形状,交互和破坏继续使用精确拾取
- 同步多方块放置预览,处理模型空隙、可食用方块物品和实体遮挡
- 将拾取、轮廓和 BER 排除规则改为支持资源包覆盖的黑名单,并缩减默认拾取例外
- 升级砧库至 snapshot.521,通过动态目标排除接口应用黑名单
- 移除模型凹陷与细缝补齐算法及相关几何缓存 - 全局放置改用方块原有选择形状,交互和破坏继续使用精确拾取 - 同步多方块放置预览,处理模型空隙、可食用方块物品和实体遮挡 - 将拾取、轮廓和 BER 排除规则改为支持资源包覆盖的黑名单,并缩减默认拾取例外 - 升级砧库至 snapshot.521,通过动态目标排除接口应用黑名单
|
⏳ Retrying in 2.5s (attempt 1/3)... |
|
⏳ Retrying in 4.1s (attempt 2/3)... |
|
❌ API failed after 3 retries — HTTP 503: Service temporarily unavailable |
|
⏳ Retrying in 2.4s (attempt 1/3)... |
|
⏳ Retrying in 5.8s (attempt 2/3)... |
|
❌ API failed after 3 retries — HTTP 503: Service temporarily unavailable |
|
API call failed after 3 retries: HTTP 503: Service temporarily unavailable |
1 similar comment
|
API call failed after 3 retries: HTTP 503: Service temporarily unavailable |
|
PR #4766 已合并关闭( 按 webhook 审查规则:action 为 |
|
分析完成。所有关键路径已交叉验证(黑名单 ID 注册表核对、Mixin 配置分区、删除残留扫描、与仓库内 BlockItem 子类的交互)。以下是审查意见: 代码审查摘要 — PR #4766操作: edited 🔴 关键
|
| 声称 | 状态 | 对应文件 |
|---|---|---|
| 移除凹陷/细缝补齐算法及几何缓存 | ✅ | ModelInteractionGeometry.java(删 221 行)、ModelSelectionBakery interactions/picking 移除 |
| 全局放置用原选择形状,交互/破坏保持精确拾取 | 3 个新 Mixin + BlockPlacementPicking(放置重定向 OUTLINE)✅;但 outline 列表经并集也退回原版拾取,见 |
|
| 同步多方块放置预览 | ✅ | BlockPlaceContext 构造器统一重定向覆盖预览路径(预览本体在 #4763);建议实测巨型砧 |
| 处理模型空隙/可食用方块/实体遮挡 | ✅ | ItemStack.use HEAD 注入 + tryPlaceFromAir(实体遮挡、FakePlayer/spectator 排除、edible PASS 透传) |
| 黑名单化 + 缩减默认拾取例外 | ✅ | ModelSelectionBlacklist(新)+ json;例外 7→2(fish_tank/processing_table/crate/large_cauldron 移出) |
| anvillib snapshot.521 + 动态目标排除 | ✅ | libs.versions.toml、neoforge.mods.toml、AnvilCraftClient.registerTargetExclusion(本地无 anvillib 源,API 签名未核验) |
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
PlaceInWaterBlockItem.use() |
捕蟹笼:水深 1 / 深水(>交互距离) / 浅水点击水面放置回归 | 🔴 |
BlockPlacementPicking.tryPlaceFromAir |
可食用 BlockItem 在空隙瞄准时吃 vs 放;对原版方块右键空气无副作用 | 🟡 |
ModelSelectionBlacklist.reload |
override 资源包全量替换、坏 json 回退低优先级、默认文件缺 ID 的日志 | 🟡 |
| 黑名单并集语义 | 管道/红石线交互是否仍精确拾取(确认行为变更是否有意) | 🟡 |
结论: REQUEST_CHANGES — 架构方向清晰、删除与注册干净,但 playerClick 标记的构造器判定会劫持 PlaceInWaterBlockItem(捕蟹笼)的内部流体重定向,机制上几乎必然改变其放置行为(深水 MISS 后完全无法放置);建议按 🔴 的 namespace 前置判定修复后合并。PR 标题双语准确,无需修改。
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'cube-selection-pr-review' (1 replacement). |