Create Curios Fire Compat
Fixes compatibility issues between the Create mod's Netherite Diving Suit and the Curios accessory system.
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 both
CurioChangeEventandLivingEquipmentChangeEvent(LOW priority), then recalculates the full equipment bitmask. Supports multiple Curiosbackslots. -
Copper Backtank Lava Breathing Patch At HIGH priority, temporarily applies the
FIRE_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 for
VisualBacktankAir.
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 |