GuiFactory
IModGuiFactory实现
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.github.lunatrius.ingameinfo.client.gui.GuiFactory |
| 行数 | 29 |
| 接口 | cpw.mods.fml.client.config.IModGuiFactory |
| 声明处 | Reference 的 GUI_FACTORY 常量(:12) |
四个方法
| 方法 | 行 | 实现 |
|---|---|---|
initialize(Minecraft) |
:13-14 |
空 |
mainConfigGuiClass() |
:16-19 |
返回 GuiModConfig.class |
runtimeGuiCategories() |
:21-24 |
返回空集合 |
getHandlerFor(RuntimeOptionCategoryElement) |
:26-28 |
返回 null |
三个「不支持」的实现
⚠️ runtimeGuiCategories() 返回空集合 + getHandlerFor() 返回 null
= 本 mod 不参与 Forge 的「运行时选项」体系(1.13+ 概念在 1.7.10 的回溯实现)。
⚠️ getHandlerFor 返回 null 而非抛异常 ——
若 Forge 内部因某种原因遍历到空 categories 里的元素,会 NPE。
实际不会触发,因为 categories 为空。
唯一实际作用
mainConfigGuiClass() 让「选项 → 模组 → InGame Info XML」这一项
能打开 GuiModConfig。
⚠️ IModGuiFactory 在 1.7.10 是可选的:
删掉 @Mod 的 guiFactory 参数后,本 mod 仍可运行,
只是少了模组配置入口。guiFactory 指向的类由字符串反射加载 ——
改类名/包名不会编译期报错。
与命令的关系
/igi config 走的是
DelayedGuiDisplayTicker.create(new GuiModConfig(null), 0)
(见 InGameInfoCommand),
直接 new,不经本类。所以两条路径都指向
GuiModConfig,但只有一条经由 GuiFactory。
相关
- GuiModConfig - 本类返回的主配置界面
- Reference -
GUI_FACTORY常量 - InGameInfoXML -
@Mod(guiFactory = ...)的使用处