Skip to content

The particles of the antigravity backpack under version 1.21 have been modified, and the issue of erroneous capacitor consumption when wearing the backpack has been fixed. 修改了1.21下飘升机背包的粒子,修复了穿戴背包时错误消耗电容的问题#3793

Merged
Gu-ZT merged 6 commits into
Anvil-Dev:dev/1.21/1.6from
PigeonNian:elc/1.21/1.6
Jun 21, 2026

Conversation

@PigeonNian

Copy link
Copy Markdown
Contributor
  • 修复了玩家模型上的错误渲染
  • 修改了粒子
  • 修复了穿戴的飘升机背包错误消耗电容器的问题

Pigeon_Nian added 6 commits June 20, 2026 17:28
- 替换ionocraft背包粒子纹理为anvilon_space资源
- 更新ModParticleDescriptionProvider中IONOCRAFT_BACKPACK_EXHAUST粒子纹理配置
- 为IonocraftBackpackModel添加renderToBuffer方法实现自定义渲染
- 移除多余的粒子纹理资源引用,减少冗余数据
- 增加判断背包能量是否已满,已满时跳过充电过程
- 防止电容器能量无谓消耗,提高充电效率
- 适配 ServerPlayer 类型以处理背包充电操作
- 删除了 capacitorTick 方法及相关调用逻辑
- 去除了对玩家背包中电容器物品的检测与替换
- 取消了背包满电时跳过充能的优化逻辑
- 移除使用电容器和超级电容器为背包充能的实现
- 简化了飞行能量消耗后的能量管理代码
- 将背包Y轴偏移值从0.9调整为1.1,优化显示位置
- 缩小背包喷射粒子初始尺寸,quadSize由0.15F改为0.08F
- 减缓粒子尺寸增长速率,quadSize每帧增加从0.002F降至0.001F
- 修正背包位置计算中使用缓存变量 backX 导致的位置偏差
- 将位置计算改为使用 sinYaw 以保证正确的世界坐标转换
- 删除 IonoCraftBackpackItem 类中无用的多余空行,保持代码整洁
- 优化 playerTick 方法中冗余代码结构,提高代码可读性

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

代码审查意见

1. 粒子纹理变更问题

文件: ionocraft_backpack_exhaust.json

  • 问题: 将粒子纹理从8帧动画(generic_0generic_7)改为单帧纹理(anvilon_space)
  • 建议: 确认这是有意为之的设计变更。如果原本的动画效果是必要的,建议保留多帧纹理或提供替代动画方案

2. 粒子大小调整

文件: IonoCraftBackpackExhaustParticle.java

  • 问题:
    • 初始大小从0.15F改为0.08F(缩小约47%)
    • 增长速率从0.002F改为0.001F(减慢50%)
  • 建议: 确认这些数值调整是否经过实际测试,确保粒子视觉效果符合预期

3. 粒子位置计算修正

文件: IonoCraftBackpackClientHandler.java

  • 问题: 修复了粒子位置计算中的数学错误
    • 原代码: backComp * backX 其中 backX = sinYaw
    • 修正后: backComp * sinYaw
  • 建议: ✅ 这是正确的数学修正,确保了粒子在玩家后方正确生成

4. 未使用的变量和导入

文件:

  • IonoCraftBackpackClientHandler.java: 删除了未使用的backX变量 ✅
  • IonoCraftBackpackItem.java: 删除了未使用的Inventory导入 ✅
  • IonoCraftBackpackItem.java: 删除了未使用的holder变量 ✅

5. 功能移除风险

文件: IonoCraftBackpackItem.java

  • 问题: 完全移除了capacitorTick方法及其相关逻辑(电容充电功能)
  • 建议:
    • 确认这是有意为之的功能移除
    • 如果移除,需要更新相关文档和用户说明
    • 检查是否有其他代码依赖此功能

6. 模型渲染方法添加

文件: IonocraftBackpackModel.java

  • 问题: 添加了renderToBuffer方法,直接渲染body部件
  • 建议:
    • 确认body部件是否正确初始化
    • 检查是否所有需要的部件都被渲染

7. 粒子数据生成变更

文件: ModParticleDescriptionProvider.java

  • 问题: 将粒子精灵集从generic(8帧)改为anvilon_space(单帧)
  • 建议: 与第1点一致,确保数据生成与实际粒子定义一致

8. Y轴偏移调整

文件: IonoCraftBackpackClientHandler.java

  • 问题: Y轴偏移从0.9改为1.1(增加22%)
  • 建议: 确认这个调整是否解决了粒子位置问题,或是否需要进一步微调

总结

主要关注点:

  1. 功能移除(电容充电)需要确认是否影响游戏平衡
  2. 粒子视觉效果的全面调整需要实际测试验证
  3. 数学修正代码清理是积极的改进

@Gu-ZT Gu-ZT merged commit 364cb29 into Anvil-Dev:dev/1.21/1.6 Jun 21, 2026
3 checks passed
@anvil-craft

Copy link
Copy Markdown

确认:IDynamicPowerComponentHolderModItems.CAPACITOR/SUPER_CAPACITOR 等引用的 import 语句未被清理,因为它们在 diff 中没有任何移除行(仅移除了 Inventory import)。如果这些常量在文件的其它地方不再使用,建议后续清理。


总结

此 PR 范围明确、改动精准,修复了两个实质性 Bug(背包渲染、电容器自动消耗),同时改进了粒子视觉效果。代码质量合格,无安全或性能隐患。批准合并。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants