配置界面
[!INFO] 实现类:
de.eydamos.backpack.gui.GuiConfiguration工厂:de.eydamos.backpack.factory.FactoryConfigurationGui(实现cpw.mods.fml.client.IModGuiFactory) 挂载点:@Mod(guiFactory = Constants.CLASS_GUI_FACTORY)
基本信息
@Mod 注解的 guiFactory 参数把 Forge 的「模组设置」按钮接到本界面:
@Mod(modid = Constants.MOD_ID, name = Constants.MOD_NAME,
version = Constants.MOD_VERSION, guiFactory = Constants.CLASS_GUI_FACTORY)
public class Backpack { }
Constants.CLASS_GUI_FACTORY = "de.eydamos.backpack.factory.FactoryConfigurationGui",
以字符串常量形式指定(classloader 需要),因此改名包会破坏该绑定。
FactoryConfigurationGui 的四个方法
@Override public void initialize(Minecraft minecraftInstance) {}
@Override public Class<? extends GuiScreen> mainConfigGuiClass() { return GuiConfiguration.class; }
@Override public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() { return null; }
@Override public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { return null; }
IModGuiFactory 的运行时设置(runtime categories)全部返回 null,
即本模组不注册任何 GameSetting 运行时选项,
所有设置都只存在于 Forge 配置文件里,通过本 GUI 编辑。
| 方法 | 返回 | 含义 |
|---|---|---|
initialize |
void |
空实现 |
mainConfigGuiClass |
GuiConfiguration.class |
唯一有效的方法 |
runtimeGuiCategories |
null |
无运行时分类 |
getHandlerFor |
null |
无运行时处理器 |
入口位置
玩家通过 选项 → 模组列表 → 设置(Settings) 找到本界面。 与 个人背包快捷键 的 选项→控制里的按键绑定是两套完全独立的 UI: 按键在「控制」页,模组设置在「模组」页。
界面框架复用
GuiConfiguration 建立在与容器界面相同的
de.eydamos.guiadvanced 框架上(Window / ContainerWindow +
form.Textbox / form.Button / form.Label),
与 FactoryConfigurationGui 的 ContainerWindow 无关 ——
配置界面是纯客户端单屏,不含服务器容器。
与配置文件的对应
本 GUI 编辑的内容即 Backpack 配置 中
ConfigurationBackpack 读取的全部 17 个键。
两者的写入路径是同一个 net.minecraftforge.common.config.Configuration
对象,GUI 保存后立即生效,无需重启。
相关条目
- Backpack 配置 - 本界面编辑的全部配置项与缺陷
- 高级容器界面 - 同样基于
guiadvanced框架