所有类型的GUI都使用这些属性:
{
"id" : "mygui"
}
- id: 这是GUI的唯一ID. 这用于使方块实例引用GUI. 该属性必须全部小写, 且不得包含空格. 该ID只需要在你的模组中的命名空间中保持唯一性.
类名: gui:container
GUI可以使用物品槽, 并可以使用以下属性:
{
"width": 176,
"height": 166,
"bg": "mymod:textures/gui/container/mybg.png",
"bgTexX": 0,
"bgTexY": 0,
"slots": [
{
"name": "inv1",
"rows": 3,
"columns": 9,
"x": 8,
"y": 17,
"dropOnClose": true,
"spacingX": 18,
"spacingY": 18
},
{
"name": "player",
"firstSlot": 9,
"rows": 3,
"columns": 9,
"x": 8,
"y": 84
},
{
"name": "player",
"rows": 1,
"columns": 9,
"x": 8,
"y": 142
}
],
"shiftClickRules": [
{
"from": [0, 26],
"to": [62, 27]
},
{
"from": [27, 62],
"to": [0, 26],
"filter": "ore:stickWood"
}
],
"labels": [
{
"text": "container.chest",
"x": 8,
"y": 6,
"color": "red",
"dropShadow": true
},
{
"text": "container.inventory",
"x": 8,
"y": 73
}
],
"progressBars": [
{
"source": "machine:burnTime",
"x": 56,
"y": 36,
"width": 14,
"height": 13,
"texX": 176,
"texY": 0,
"direction": "up"
}
],
"fluidDisplays": [
{
"source": "tank1",
"x": 50,
"y": 60,
"width": 32,
"height": 100,
"overlayTexX": 166,
"overlayTexY": 0
}
]
}
- width: 该属性定义了GUI的宽度. 默认值为
176
. - height: 该属性定义了GUI的高度. 默认值为
166
. - bg: 该属性定义了一个本地资源导引, 用于GUI的背景纹理.
- bgTexX, bgTexY: 这些属性定义了背景材质中的实际背景的位置. 原点为背景材质左上方, 从(
bgTexX
,bgTexY
)开始, 其大小为width * height
. 默认值都为0
. - slots: 该属性定义了GUI的物品槽列表. 列表的顺序取决于Shift-Click(快速分发)策略.
- name: 物品槽在GUI中的名称. 对于Tile Entities中所具有的物品槽模块, 这是用于填入物品槽模块的属性
name
的值以与其进行数据绑定. - firstSlot: 这是正在使用的物品槽的首槽的索引. 如果您希望将一个物品槽分成多个部分, 这将非常有用. 举个例子吧, 玩家的背包就使用这个特性将36个槽划分为快捷栏和背包两个部分. 默认值为
0
. - rows, columns: 定义了物品槽的行数和列数. 这将会添加
rows * columns
个物品槽到GUI中. 默认值则都为1
. - x, y: 定义了物品槽的居于最左上角的槽在GUI中相对于背景的位置.
- dropOnClose: 这定义了当关闭GUI时已在GUI内存放的物品是否会掉落到地面上. 默认值为
false
. - spacingX, spacingY: 定义各个物品槽之间的间距. 默认值皆为
18
.
- name: 物品槽在GUI中的名称. 对于Tile Entities中所具有的物品槽模块, 这是用于填入物品槽模块的属性
- shiftClickRules: 这是一个规则列表, 用于定义当你按住Shift键单击物品槽时触发的事件. 在上面的示例中, 第一个物品槽堆的索引为
0
到26
, 第二个则为27
到53
, 最后一个为54
到62
.- from: 定义了规则适用的第一个和最后一个插槽的索引.
- to: 定义了物品堆可移动到的第一个和最后一个物品槽的索引. 如果第一个索引大于第二个索引, 它将以相反的顺序搜索有效的插槽以将物品放入.
- filter: 这是一个物品过滤器, 用于定义此规则所适用的物品. 默认可以接受任意物品.
- labels: 包含了将被绘制到GUI上的所有标签的列表.
- text: 将被渲染的标签的内容
- x, y: 标签相对于背景的位置.
- color: 标签文字的颜色. 默认值为
404040
. - dropShadow: 是否绘制投影(Drop Shadow). 默认值为
false
.
- progressBars: 包含了绘制到GUI上的所有进度条的列表.
- x, y: 进度条相对于背景的位置.
- texX, texY: 定义了进度条所在的背景材质中的位置.
- width, height: 进度条的宽度和高度(当进度为100%时).
- direction: 从进度条起始位置向满进度进发的方向. 可以是
up
(向上),down
(向下),left
(向左),right
(向右) 中的任意一个. - source: 这定义了进度条的进度表示了什么. 举个例子, 像机器所具有的燃料值(
machine:burnTime
), 这将使用机器的Tile Entities中的machine
模块的参数值burnTime
- fluidDisplays: 包含了将被绘制到GUI上的所有流体槽的列表.
- x, y: 流体槽相对于背景的位置.
- width, height: 流体槽的尺寸(宽和高)
- overlayTexX, overlayTexY: 如果流体槽具有绘制在流体上的覆盖层, 则这些覆盖层定义了覆盖层所在的背景材质中的位置. 覆加层的大小与流体槽本身的大小相同.
- source: 定义数据源自何处. 举个例子, 你可以填入Tile Entities中的模块
tank
的id.