矿物词典
基本信息
| 属性 | 值 |
|---|---|
| 包 | 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) |
相关条目
- CoreModConfig -
OreDictItems开关 - GT 配方加载器 - 消费这些词典名的 GT 配方表