Refactor pipe logic and add Pump block with crafting recipe#3794
Refactor pipe logic and add Pump block with crafting recipe#3794Gu-ZT wants to merge 16 commits into
Conversation
…ulations based on actual connection positions
- 移除未使用的 PumpBlock 和 Orientation 导入 - 调整 CelestialForgingAnvilPortalBlockItem 的导入位置 - 优化模块块初始化顺序
- 移除第三人称左右手的旋转设置 - 调整第三人称左右手的平移和缩放值 - 移除第一人称左右手的显示配置 - 移除地面和GUI的显示配置 - 修改头部的平移位置 - 更新固定视角的旋转和缩放设置 - 添加书架上放置的旋转配置
- 注册泵方块实体类型并添加流体处理器能力 - 实现泵的主动流体抽取和注入逻辑 - 添加泵与管道系统的连接和转换机制 - 实现泵的工作状态检测和电力消耗 - 添加泵的配方和物品模型 - 实现泵活塞动画渲染效果 - 添加泵放置时的朝向计算和管道对接逻辑
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
Reason: execute_code script execution. The script can spawn subprocesses or mutate files without passing through terminal command approval; approval is one-shot for this run. Reply |
Reason: execute_code script execution. The script can spawn subprocesses or mutate files without passing through terminal command approval; approval is one-shot for this run. Reply |
Reason: execute_code script execution. The script can spawn subprocesses or mutate files without passing through terminal command approval; approval is one-shot for this run. Reply |
|
我已仔细分析了整个 diff(1256 行,共涉及 16 个文件)。操作类型为 由于无法通过 API 直接发布到 GitHub(令牌不可用,未认证调用已被限流),以下是我的完整评审意见。 拉取请求 #3794 代码评审范围: 管道逻辑重构 + 新增 Pump(泵)方块及其合成配方 ✅ 核心设计评价
🔴 必须修复1.
2. Pump 的
🟡 建议修复3.
4.
5.
🟢 小问题 / 风格6. 合成配方第三行全空
7. PumpBlock 碰撞箱仅为中心 6×6×6 立方体
8. 生成模型文件末尾缺失换行符
|
- 移除自动对接管道的逻辑,避免意外的朝向反转 - 更新注释说明,默认输入端朝向目标方块,Shift 键反向 - 明确按住 Shift 键时的放置行为(输出端朝向目标方块)
|
审核完成。以下是完整的代码审查报告。 代码审查摘要 — PR #3794标题: Refactor pipe logic and add Pump block with crafting recipe 变更概述该 PR 做了两件事:
另外包含配方(2 活塞 + 1 管道 → 2 泵)、方块注册、BlockEntity 注册、标签、战利品表、Lang 文件等数据生成更新。 🔍 核心逻辑审查1.
|
- 修复注释中关于默认输出端朝向的描述 - 纠正放置时朝向计算逻辑,默认输出端朝向目标方块,Shift反向 - 调整活塞动画渲染代码顺序,确保注释与实现一致 - 优化活塞移动偏移量计算的代码结构
- 调整碰撞箱从 6x6x6 中心体 [5,5,5]→[11,11,11] - 修改为匹配模型元素 1/2/7 的尺寸 x[3,13] y[3,13] z[0,16]
- 将单一碰撞箱拆分为三个方向特定的碰撞箱(X、Y、Z轴) - 为NORTH_UP/SOUTH_UP朝向添加沿Z轴延伸的碰撞箱 - 为WEST_UP/EAST_UP朝向添加沿X轴延伸的碰撞箱 - 为UP_*/DOWN_*朝向添加沿Y轴延伸的碰撞箱 - 根据方块朝向动态返回正确的碰撞箱形状 - 修正了方块在不同方向下碰撞检测不准确的问题
|
Now I have a complete picture. Let me compile the review. 代码审查摘要 — PR #3794: Refactor pipe logic and add Pump block作者: Gu-ZT | 分支: 变更概览此 PR 为管道系统添加了 Pump(泵)方块:
🟡 警告1. JavaDoc 与实现不一致:输入端/输出端高度偏移符号
但实现中 // sourceCurPos 和 targetCurPos 各加一次 heightBonus
if (level.getBlockEntity(sourceCurPos) instanceof AbstractPipeBlockEntity be) {
sourceEffectiveY += be.getHeightBonus();
}
if (level.getBlockEntity(targetCurPos) instanceof AbstractPipeBlockEntity be) {
targetEffectiveY += be.getHeightBonus();
}这意味着泵在两端都提供 +10 加成,而不是输入端 +10、输出端 -10。由于泵的主动 建议: 要么修正注释描述(改为"输入端 +10,输出端不受影响"),要么根据方向实现符号区分——即当泵作为输入侧时提供 +10,作为输出侧时提供 -10。 2.
💡 建议3. 被动流体传输中的 heightBonus 可能双重叠加 在重构后的
如果连接链中存在两个泵(比如一个作为源、另一个作为目标的邻居),它们的 4. @Override
public IFluidHandler getFluidHandler() {
return new PumpFluidHandler();
}NeoForge 的能力系统会频繁调用 private final IFluidHandler fluidHandler = new PumpFluidHandler();
@Override
public IFluidHandler getFluidHandler() {
return fluidHandler;
}注意: 5. 第三行空配方行的放置习惯 配方的第三行是 ✅ 看起来不错
结论请求更改 — 符号不一致的 JavaDoc/实现需要澄清或修正(#1),建议修复 由 Hermes Agent 自动审查 |
- 导入 Axis 类用于旋转操作 - 移除 Direction 导入并改用 BakedModel 替代 ModelResourceLocation - 通过姿态变换应用 blockstate 旋转使活塞坐标系与模型对齐 - 将活塞模型沿 Z 轴方向移动改为在模型空间内进行变换 - 简化活塞偏移计算逻辑并优化姿态堆栈管理 - 更新渲染方法参数以直接使用烘焙模型对象 - 删除无用的方向变量和注释说明
|
我已完整审查了 PR #3794 的所有变更。以下是审查意见: 代码审查摘要PR #3794 — Refactor pipe logic and add Pump block with crafting recipe 🔴 关键
|
- 添加了 BaseEntityBlock 和 BlockEntity 相关接口实现 - 重构了注释以提高代码可读性 - 实现了 TickableBlockEntity 功能 - 优化了流体处理逻辑,增加电网供电检查 - 修复了红石信号和电网过载状态处理 - 更新了碰撞箱和方块状态处理逻辑
- 在Y轴方向移动-2像素以校正整体位置 - 将活塞1的Z轴偏移量改为Y轴偏移 - 将活塞2的Z轴偏移量改为Y轴偏移 - 注册新的泵活塞模型资源位置
- 应用负值旋转角度以校正 blockstate 与 JOML 坐标系之间的差异 - 调整旋转应用顺序为先 X 轴后 Y 轴以确保正确的变换矩阵乘法 - 添加注释说明坐标系差异及旋转顺序的重要性
- 将活塞最大位移从 2/16 减少到 1.5/16 - 活塞运动方式从 Z 轴单方向改为 Y 轴正弦余弦交替运动 - 使用正弦和余弦函数分别控制两个活塞的位移计算 - 移除 sinPulse 辅助方法并简化动画计算逻辑 - 消除活塞运动过程中的死区问题
|
我现在已经收集了所有信息。以下是我的审查意见: 代码审查摘要 — PR #3794 (Refactor pipe logic and add Pump block)结论:COMMENT(无阻塞性问题,2 条建议)
|
No description provided.