本篇教程由作者设定使用 CC BY-NC-SA 协议。
问题背景
左上角的两个按钮(GUI 编辑 和 IPN 设置)经常会被 XEI (JEI/REI/EMI ...)的按钮挡住。
稍微研究过这个 mod,无外乎两种做法:
IPN 设置里直接隐藏掉,眼不见为净
GUI 编辑按钮,进入编辑模式,移动两个按钮的位置
无视他,让他挡,小小的按钮还不稀罕点他了
假如就是想保留这两个按钮,被挡住又让人浑身难受,那不用说肯定选择第二种做法。
当你兴致勃勃在物品栏里调完位置,接着打开了箱子,你会发现:嗯?咋又回去了?
没错,IPN 的 GUI 编辑是根据 屏幕(Screen)/菜单(Menu) 走的,每个屏幕界面都得重新设置一遍,没有继承或者通配符的功能。噩梦!!!
这个问题困扰我很久,直到这翻了翻源码:
(↑ 点开看大图 ↑)
GuiSettings 对应 IPN 设置左侧菜单的“GUI 设置”一项,但游戏内确实没找到这四项设置。
当我以为是只有 MC 1.21 以上才有的功能时,我发现代码里还写着“§§hide - default button possitions”。哎,hide ?那我多少得试一试,于是也就有了这篇教程!
配置
我没找到如何在游戏内显示这四个隐藏设置(可能在前置 libIPN 的代码里,有兴趣再翻翻),说人话:得手动改配置文件。
改配置文件必须先关闭游戏,先关闭游戏,先关闭游戏!!!否则改动内容会被游戏刷没!
找配置
IPN 的配置文件位于 <游戏版本名>/config/inventoryprofilesnext 文件夹内,有个 inventoryprofiles.json 文件。这个 JSON 文件保存了所有变更过的配置项,没有的话自己新建(理论上肯定会生成)。
实在找不到,游戏内打开 IPN 设置,首页(Mod 设置)的头一个按钮,点一下就能打开文件夹了。
改配置
按如下代码修改 JSON 文件,数值按需修改。下面代码给的数值都是对应配置项的默认值。
{
... 其它设置
"GuiSettings": {
... 其它设置
"settings_top": 25,
"settings_left": 10,
"editor_top": 10,
"editor_left": 10
}
}
“settings_top”和“settings_left”表示“IPN 设置按钮”距离 屏幕顶部 与 屏幕左侧 的像素量;
“editor_top”和“editor_left”表示“GUI 编辑按钮”距离 屏幕顶部 与 屏幕左侧 的像素量;
都是整数,范围无限制(Int 最小值 到 Int 最大值),当然得确保在屏幕内部。
注意下 JSON 语法规范,末尾有逗号,最后一项没有逗号。
游戏,启动!
我测试用的配置文件如下:
因而游戏里看上去是这样的:
可以看到,“GUI 编辑按钮”向右移动了。而且,我没特意编辑过 GUI,箱子界面的按钮也发生了变化。全局生效了!