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 连用. 这种方式和上面那个也是等效的.