Create Curios Fire Compat
作者:rebot | 分类:模组
Minecraft 版本: 1.21.1
平台: neoforge
标签: utility
English
Fixes compatibility issues between the Create mod's Netherite Diving Suit and the Curios accessory system.
When the Netherite Backtank is equipped in a Curios back slot, the full-set fire immunity effect now works correctly.
Problem
Create tracks the Netherite Diving Suit through NetheriteDivingHandler using LivingEquipmentChangeEvent.
When all four armor pieces (helmet / backtank / leggings / boots) are detected, it writes the CreateFireImmune state to grant lava fire immunity.
However, changes in Curios back slots do not trigger vanilla armor equipment events. As a result, when the backtank is equipped through Curios:
- The chest bit in
CreateNetheriteDivingBitsis not updated - Full-set fire immunity fails
- Copper Backtank + Netherite Chestplate combinations do not consume air or display the lava breathing countdown UI
Solution
-
Fire Immunity Bit Maintenance
Listens to bothCurioChangeEventandLivingEquipmentChangeEvent(LOW priority), then recalculates the full equipment bitmask. Supports multiple Curiosbackslots. -
Copper Backtank Lava Breathing Patch
At HIGH priority, temporarily applies theFIRE_RESISTANTtag to Copper Backtanks so Create's native lava breathing logic executes normally (air consumption + UI updates).
The tag is removed again at LOW priority. -
Client-side UI Sync
Initializes on both client and server sides, with client-side fallback updates forVisualBacktankAir.
Detection Logic
| Slot | Condition | Bit |
|---|---|---|
| Head | DivingHelmetItem + FIRE_RESISTANT |
8 |
| Chest | Chest armor ArmorItem + FIRE_RESISTANT and (PRESSURIZED_AIR_SOURCES exists in chest slot or any Curios back slot) |
4 |
| Legs | ArmorItem + FIRE_RESISTANT |
2 |
| Feet | ArmorItem + FIRE_RESISTANT |
1 |
简体中文
修复 Create 模组的下界合金潜水套装与 Curios 饰品栏的兼容问题。
问题
Create 通过 NetheriteDivingHandler 监听 LivingEquipmentChangeEvent 追踪四件套(头盔/背罐/护腿/靴子),凑齐后写入 CreateFireImmune 实现火免。
但 Curios 的 back 饰品槽变化不触发原版护甲栏事件,导致背罐放入 Curios 背槽时:
CreateNetheriteDivingBitsNBT 胸部比特位不更新- 满套火免失效
- 铜背罐 + 下界合金胸甲组合在岩浆中不消耗空气、不显示倒计时 UI
解决方案
- 火免比特位维护 — 监听
CurioChangeEvent+LivingEquipmentChangeEvent(LOW),重新计算全套比特位,支持 Curios 多个 back 槽 - 铜背罐岩浆呼吸补丁 — HIGH 优先级临时给铜背罐打
FIRE_RESISTANT标记,欺骗 Create 原生逻辑完整跑完(空气消耗 + UI 更新),LOW 优先级清理标记 - 客户端 UI — 双端初始化,客户端兜底写入
VisualBacktankAir
判定逻辑
| 槽位 | 条件 | bit |
|---|---|---|
| 头 | DivingHelmetItem + FIRE_RESISTANT | 8 |
| 胸 | 胸甲栏 ArmorItem + FIRE_RESISTANT 且 (胸甲栏或任意 Curios back 槽有 PRESSURIZED_AIR_SOURCES) | 4 |
| 腿 | ArmorItem + FIRE_RESISTANT | 2 |
| 脚 | ArmorItem + FIRE_RESISTANT | 1 |
请登录后举报
暂无评论,抢个沙发吧~