第一步,打开自己的mod包
第二步,创建一个GUI
normal就是普通的GUI,只能添加标签(只是无边框的文字)和按钮(可添加点击事件)。
container可以添加比如物品框、燃烧进度条(参考熔炉)之类的东西。
normal界面:
container界面:
(就多了一个shiftClickRules)
1-1、background:
Background 背景材质点右边仨点打开的界面就可以选择材质,而材质文件要放在.minecraft\mods\你的mod包\assets\你的mod包\textures\gui下
Texture X 背景材质选择的横坐标
Texture Y 背景材质选择的纵坐标
这两个都只能决定选择整块材质的哪个部分,而不能调整大小。
1-2 guiData:
特殊注意:
Cook Prog和Fuel Prog 容易使界面卡住,只能重开客户端才能解决(陈年老bug了)
而两者里的Module Name很重要,一定要记住,这是合成表名字,在下文Tile Entity的furnaceModules里设置,主要是用于显示进度条
1-3 height与width:
设置材质所选区域大小,默认值是150,加载背景材质以后是这样的:
当然,把材质改成150x150的大小也可以
1-4 shiftClickRules:
点击New新建一个规则
以每个灰色选框为分界
第一层是从玩家背包到GUI物品格
玩家背包共36格,而序号却是0-35
第二层是从GUI物品格到玩家背包栏
根据具体的GUI物品格数量来设置
物品格序号在guiData中将鼠标移至物品格上方即可看到(都是从slot0开始的而不是从slot1开始)
第三层是只移动燃料
第四层是只移动输入物品
但后两者基本没啥用就是了
第三步,创建一个Tile Entity
打开你的mod包,在最下底找到Tile Entities
inventory就是可以添加物品格的选项
而normal由于这里不涉及,因此就不多言了 其实是自己也不明白
进入之后
2-1 furnaceModules:
添加一个熔炉式模板
Name就是这个模板的名字
Recipe list就是合成表的模板,默认为熔炉,也就是说按默认的来的话最后就做出来个熔炉
可以在mod包界面的Smelting Recipes里添加合成
Fuel List就是燃料模板,按自己的燃料配方来。
可以在mod包界面的Fuels里添加燃料
Input Slot就是输入格
Output Slot就是输出格
Fuel Slot就是燃料格
Cook Time就是物品处理需要的时间(单位:tick)
2-2 onUpdate:
当物品在玩家背包中就会每tick触发一次事件
2-3 slotCount:
重头戏来了!
可以设定当前Tile Entity内含多少物品格
不包括玩家物品栏
近一半的崩溃和无法合成都是因为这个,另一半是因为事件没写好(好像暴露了什么)
设置完Tile Entity之后绑定到方块上
光有Tile Entity还不行,还要再写个事件绑定GUI
一般都是写个onActivated,很符合原版设定
绑定到方块上就是openBlockGui
物品的话就是openGui
打开物品栏中的某一个物品的GUI就是openItemGui
打开末影箱就是openEnderChest
至于更多的就自己去查
末,关于自制合成表
这个合成表是那种多格的合成表,而CS3本身只能制作一格输入一格输出的合成表(还有个燃料格,也可以拿来当输入)
在CS3里,这个功能需要事件来完成
也就是说得写js
我自己的大体思路就是检测方块内部物品格,然后获取相应物品格物品名称
物品名称正确的话就合成,在另一个物品格里设置一个新物品,并删除原来物品格的物品
而合成进度则用计时器
看到这里辛苦了,给各位递一杯java