NEIDConfig

基本信息

属性 值
类名 com.gtnewhorizons.neid.NEIDConfig
注解 @Config(modid = "NEID", category = "neid")
注册时机 NEID.preInit → ConfigurationManager.registerConfig(NEIDConfig.class)
配置文件名 NEID.cfg(modid 故意大写以保留旧版 pre-GTNHLib 配置文件命名)
注册机制 GTNHLib(依赖 gtnhlib@[0.6.18,))

GTNHLib 的 ConfigurationManager 会扫描所有 @Config 注解的静态字段并生成对应的 .cfg 文件 + 同步逻辑;modid 字段保留大写仅为历史兼容(注释里明说),实际 modid 在 @Mod 中是 "neid"。

配置项

字段名 类型 默认 含义
CatchUnregisteredBlocks boolean false 在 ExtendedBlockStorage.func_150818_a 设置方块 ID 时,如果遇到 Block.getIdFromBlock(b) == -1(即未注册方块),抛出 IllegalArgumentException 而不是用旧 ID 兜底。错误信息提示用户向对应 mod 作者反馈,或临时打开 RemoveInvalidBlocks 兜底。
RemoveInvalidBlocks boolean false 在 ExtendedBlockStorage.removeInvalidBlocks 重新计数时,如果 BlockRegistry.getObjectById(id) == null,把对应槽位置 0,相当于删除坏块。
PostNeidWorldsSupport boolean true 在 AnvilChunkLoader.writeChunkToNBT 写入 Blocks16/Data16(NEID 自己的 16-bit 字段)的同时,也写出兼容 vanilla 的 Blocks + Add + Data(12-bit LSB + 4-bit nibble),保证即使装了 NEID 又卸载时仍可读。注意:写入方在 id <= 4095 时同步写 Blocks/Add,而 meta 仅写 0–15 范围;超出范围则将 meta 强行设为 0。
ExtendDataWatcher boolean false 启用 MixinDataWatcher(VANILLA_STARTUP_DATAWATCHER mixin phase setApplyIf 条件)。同时让 ASM transformer MFQM 改写 MoreFunQuicksandMod 的 DataWatcher 上限。

行为触发点

配置项 触发的代码位置 副作用
CatchUnregisteredBlocks MixinExtendedBlockStorage.func_150818_a throw new IllegalArgumentException("Block ... is not registered...")
RemoveInvalidBlocks MixinExtendedBlockStorage.removeInvalidBlocks 把 block16BArray[off] = 0 并跳过该位置的 blockRefCount/tickRefCount 累加
PostNeidWorldsSupport MixinAnvilChunkLoader.writeChunkToNBT 两次 @Redirect 同步写出 vanilla Blocks/Add/Data,卸载 NEID 后还能读
ExtendDataWatcher MixinDataWatcher(条件 mixin)+ ASM MFQM DataWatcher ID 上限 31 → 127,配套 write/read byte→short

相关条目