矿物词典

基本信息

属性 值
包 com.dreammaster.oredict(3 文件)
入口 OreDictHandler.register_all()(OreDictHandler.java:186-191)
调用点 MainRegistry.load(FMLInitializationEvent)(MainRegistry.java:273)
开关 CoreModConfig.Modules.OreDictItems,默认 true
词典名枚举 OreDictTypes,29 个常量(OreDictTypes.java:4-32)
工具类 OreDictHelper.removeOreDict(String, ItemStack)(OreDictHelper.java:17)

功能

为整合包补齐矿物词典条目,主要集中在太空题材物品(各星球 / 天体的石头与粉尘),使不同来源的同名物品可互相替代。

register_all 的 4 步

public static void register_all() {
    reg_woodItems();
    reg_additional();
    register_space_rocks();
    register_space_dust();
}

(OreDictHandler.java:186-191)

步骤 方法 位置 内容
1 reg_woodItems() :205-207 内部只调 reg_fenceWood()(:206)
2 reg_additional() :154 额外登记
3 register_space_rocks() :74 各天体岩石
4 register_space_dust() :30 各天体粉尘

reg_fenceWood

把原版 Blocks.fence 与 ExtraTrees、Forestry(含防火型)、Natura 的木栅栏统一登记到 fenceWood(OreDictHandler.java:193-203):

OreDictionary.registerOre("fenceWood", itemStack);

每项都先 if (itemStack != null) 判空(:199)—— 这是针对 mod 未加载的保护,不是空捕获。

两个私有登记辅助

方法 登记的词典名 位置
reg_dust(String S, ItemStack I) 一次登记 3 个 名字:dust<净化名>、dust<S>、dustSpace :209-217
reg_rock(String S, ItemStack I) 一次登记 2 个 名字:rock<S>、rockSpace :219-224

reg_dust 的净化名来自物品未本地化名:.replaceAll("item\\.", "").replaceAll("Dust", "").replaceAll(" ", "").trim()(:211-212)—— 即把 itemAsteroidsDust 这类名字洗成 Asteroids。

这也解释了「空间」命名的来源:每个太空物品都会额外获得一个 dustSpace / rockSpace 通用名,让 GT5 的空间材料配方可以用统一名字取任意天体材料。

OreDictTypes

29 个枚举常量(OreDictTypes.java:4-32),分 4 类:

类别 常量 数量
通用前缀 dust、rock 2
空间聚合 Space 1
行星 / 卫星 Moon、Mars、Callisto、CentauriA、Ceres、Deimos、Enceladus、Europa、Ganymede、Haumea、Io、MakeMake、PlanetMercury、Miranda、Oberon、Phobos、Pluto、Proteus、Titan、Triton、VegaB、Venus 22
小行星 / 其它 Asteroids、BarnardaE、BarnardaF、TcetiE 4

数值

数值名 值
词典名常量数 29(2 + 1 + 22 + 4)
register_all 步骤数 4
reg_dust 每次登记名数 3
reg_rock 每次登记名数 2
开关默认值 true(本 mod 少数默认开启的模块之一)
生效时机 load 阶段(MainRegistry.java:273),无需重启即可读到

交互

特性 说明
玩家可见性 无 GUI / 指令 / 方块;只影响合成与自动化配方的匹配
默认状态 开启(OreDictItems = true,CoreModConfig.java:15)
缺失 mod 容错 getModItem(...) 返回 null 时跳过登记,不抛异常
关闭后果 关闭 OreDictItems 后 SpaceStones / SpaceDusts 相关配方将无法匹配(配置注释原文,CoreModConfig.java:13)

相关条目