This is a list of how to specify certain things in json.
一个内部资源项将用于调用内部的材质, 模型, 抑或是物品, 方块的唯一标识. 有两种方法可以定义一个内部资源项.
书写较为方便的版本:
"minecraft:stone"
"minecraft:textures/gui/bars.png"
书写完整, 容易阅读的版本:
{
"domain" : "minecraft",
"path" : "stone"
}
{
"domain" : "minecraft",
"path" : "textures/gui/bars.png"
}
一个NBT标签项就像字符串一样, 用于表示游戏中一些隐藏的数据:
"{display:{Name:\"Some Obsidian\"}}"
可使用多行的方式完整地表示一个物品堆:
{
"item" : "minecraft:stone",
"metadata" : 10,
"amount" : 42,
"nbt" : "{display:{Name:\"Some Obsidian\"}}"
}
除 item
外, 其他所有内容都是可选的, metadata
默认为 0
, 而用于表示数量的 amount
默认为 1
.
对于某些配方, 你可能希望可以使用所有的子类型:
{
"item": "minecraft:stone",
"metadata": "all",
"amount": 42
}
或者这样做:
{
"item": "minecraft:stone@all",
"amount": 42
}
还有一个定义物品堆的简短版本, 但是只能定义物品和元数据:
"minecraft:stone"
"minecraft:stone@1"
"minecraft:stone@all"
这将定义一个数量为1的物品堆. 当 metadata
被省略时, 其值被设置为作为缺省值的 0
.
这是一个无序合成. input
和 result
都是物品堆:
{
"input": "minecraft:stone@all",
"result": {
"item": "minecraft:obsidian",
"amount": 3,
"nbt": "{display:{Name:\"Custom Obsidian\"}}"
}
}
BlockDrop几乎与ItemStack相同. 但有两处不同:
你可以将 amount
设置为一个区间. 在以下示例中, 物品掉落的实际数量将为 1个到3个
.
{
"amount" : [1, 3]
}
你也可以添加一个 fortuneAmount
(时运采掘系数) 属性. 该属性值将在被附有时运附魔的工具采掘时, 掉落 ${fortuneAmount * <时运附魔等级>}
个物品.
{
"fortuneAmount" : 2
}
.这个例子中, 该方块掉落将会掉落至少2个泥土. 如果被附有时运附魔的工具采掘下, 比如说当时运等级为2时, 它将会额外掉落2-4个泥土.
{
"item": "minecraft:dirt",
"amount": 2,
"fortuneAmount": [1, 2]
}
跟一个物品堆一样, 你也可以这样定义一个方块掉落:
"minecraft:stone@1"
一个配方输入支持使用物品堆和矿典. 一个矿典可以这样声明:
"oreclass:stickWood"
就像物品堆一样, 和之前一样.
下面是一个无序合成配方的配方输入部分, items
这个列表就是一个配方输入的列表:
{
"items": [
"minecraft:stone@all",
"oreclass:stickWood",
{
"item": "minecraft:obsidian",
"metadata": 0
}
]
}
药水效果定义了效果本身以及持续时间和效果的倍率.
{
"id": "minecraft:hunger",
"duration": 60,
"amplifier" : 2,
"showParticles": false
}
- id: 这是一个内部资源项, 用于定义正在使用的效果.
- duration: 药水效果持续的时间, 默认值为
60
(3秒). - amplifier: 药水效果的倍率. 使效果变得更加明显. 默认值为
1
. - showParticles: 是否发出效果粒子. 默认值为
true
.
方块状态定义方块及其属性.
下面两种表现方式等效.
{
"block": "minecraft:log",
"properties": {
"variant": "spruce",
"axis": "z"
}
}
{
"block": "minecraft:log",
"properties": "variant=spruce,axis=z"
}
- block: 这是一个内部资源项, 用于定义方块.
- properties: 可选, 用于定义属性.
可以用两种方式定义一种颜色: 1.使用16进制码 2.使用颜色名称.
"ff0000"
"red"
以下是所有可用的颜色名称: black, white, red, lime, blue, yellow, aqua, magenta, silver, gray, maroon, olive, green, purple, teal, navy, foliagePine, foliageBirch, foliageBasic
物品过滤器用于过滤物品堆, 举个例子, GUI的Shift-Click(快速分发)策略就可以使用该技术过滤物品.
构建物品过滤器有两种方法:
"machineInput:recipe_list"
这个物品过滤器接受来自 recipe_list
这个配方列表的机器配方输入的所有物品堆.
"machineFuel:fuel_list"
这个物品过滤器接受来自 fuel_list
这个燃料列表所配置的所有燃料.
"ore:stickWood"
这个物品过滤器接受来自矿物词典 stickWood
的所有已注册的物品.
{
"item": "minecraft:dye",
"metadata": 5
}
"minecraft:dye@5"
这两者等价, 都接受元数据值为 5
的物品 minecraft:dye
.
["ore:stickWood", "minecraft:apple"]
这个物品过滤器不仅接受来自矿物词典 stickWood
的所有已注册的物品, 还接受物品 minecraft:apple
.
一个流体堆明确了一种流体类型和数量. 数量可以省略, 默认为 1000
.
"water"
"water@500"
将数字 500
作为该流体堆的数量.
{
"fluid": "water@500"
}
将数字 500
作为该流体堆的数量.
{
"fluid": "water",
"amount": 200
}
将数字 200
作为该流体堆的数量.
限界框定义了在三维空间内的一个矩形盒状空间.
{
"from": [0, 0, 0],
"to": [1, 1, 1]
}
这是一个由完整立方体构成的限界框. 列表中的元素按 x -> y -> z
的顺序排列.
{
"from" : [0, 0, 0],
"to": [1, 1, 1]
}
{
"cube": 1
}
上面两种书写方式等效, 可选项 cube
用 [0,0,0]
作为 from
部分, 而指定值将作为 to
部分的所有元素. 这种方式也定义了一个完整的立方体.
{
"from": [0.1, 0.2, 0.3],
"to": [0.9, 1.0, 1.1]
}
{
"from": [0, 0, 0],
"to": [0.8, 0.8, 0.8],
"offset": [0.1, 0.2, 0.3]
}
上面两种的表达方式等效.
offset
部分中定义的值将被添加到 from
和 to
所具有相对应的元素中.
{
"cube": 0.8,
"offset": [0.1, 0.2, 0.3]
}
你也可以把 cube
和 offset
连用. 这种方式和上面那个也是等效的.