配置界面

[!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 保存后立即生效,无需重启。

相关条目