Skip to content

Latest commit

 

History

History
275 lines (220 loc) · 6.1 KB

zh:Json-Formats.md

File metadata and controls

275 lines (220 loc) · 6.1 KB

在这里你可以查看如何指定json中的具体参数。

资源路径(Resource Location):用来指定材质,模型,和物品/方块标识符所在的路径。有两种方法可以指定资源路径: 短版:

"minecraft:stone"
	
"minecraft:textures/gui/bars.png"(bar指的是按钮)

长版:

{
  "domain" : "minecraft",
  "path" : "stone"
}

{
  "domain" : "minecraft",
  "path" : "textures/gui/bars.png"
}

NBT Compound是个含有NBT数据的字符串:

"{display:{Name:\"Some Obsidian\"}}"

有多种方式指定一个物品堆栈(Item Stack):

{
  "item" : "minecraft:stone",
  "metadata"(附加值,例如52:10) : 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的物品。忽略附加值部分则会默认为0.

下面是一个熔炉合成,“input(输入)”和“result(输出,合成结果)”都是物品堆栈:

{
  "input": "minecraft:stone@all",
  "result": {
    "item": "minecraft:obsidian",(黑曜石)
    "amount(数量)": 3,
    "nbt": "{display:{Name:\"Custom Obsidian\"}}"
  }
}

BlockDrop

方块掉落(BlockDrop)几乎与物品堆栈相同,除了两个附加选项——你可以将掉落数量限定到一个范围内。在示例中,实际掉落数是介于1和3之间,含1和3:

{
  "amount" : [1, 3](闭区间概念)
}

你也可以添加一个“fortuneAmount(时运等级)”参数,掉落数量将会受时运等级加成。

{
  "fortuneAmount" : 2
}

这一操作将会掉落至少2块泥土,如果你的工具有时运附魔,例如时运2,它将额外掉落2到4块泥土:

{
  "item": "minecraft:dirt",
  "amount": 2,
  "fortuneAmount": [1, 2]
}

你可以像物品堆栈一样定义一个物品掉落:

"minecraft:stone@1"

一个合成输入(Recipe Input)既是物品堆栈,也是矿物辞典类,矿辞类是这样描述的:

"oreclass:stickWood"

物品堆栈就像一般那样定义。

下面的操作描述了一个无序合成的输入部分,“items”是合成输入的物品表:

{
  "items": [
    "minecraft:stone@all",
    "oreclass:stickWood(符合木棍的矿辞)",
    {
      "item": "minecraft:obsidian",
      "metadata": 0
    }
  ]
}

药水效果(Potion Effect)决定了它自身的效果,持续时间和效力等级。

{
	"id": "minecraft:hunger",(饥饿debuff)
	"duration": 60,(持续时间60tick)
	"amplifier" : 2,(2级药水)
	"showParticles(显示粒子效果)": false
}
  • “id”: 一个资源路径,决定了使用什么药水效果。
  • “duration”: 效果持续时间,默认时间为60tick,即三秒。
  • “amplifier”: 药水效力等级,越大药水效果越强。默认值为1.
  • “showParticles”:是否显示药水使用之后的效果,默认为true。

方块状态(Block State)定义了一个方块,和它的属性参数。

{
	"block": "minecraft:log",(原木)
	"properties": {
		"variant(材质)": "spruce(云杉木)",
		"axis(坐标轴)": "z"
	}
}
{
	"block": "minecraft:log",
	"properties": "variant=spruce,axis=z"
}
  • “block”: 一个描述了方块的资源路径。
  • “properties” :决定了它的各项属性参数,可选。

有两种方式定义一种颜色:使用十六进制(hex)码定义,或者使用颜色的名字。

"ff0000"

"red"

以下的颜色名直接可用: black, white, red, lime, blue, yellow, aqua, magenta, silver, gray, maroon, olive, green, purple, teal, navy, foliagePine, foliageBirch, foliageBasic(就是原版的16种颜色)。

物品过滤器用于过滤物品堆栈,例如在容器的GUI(界面)中shift单击之后的效果。 有多种方式指定一个过滤器:

"machineInput:recipe_list"

这个示例接受“recipe_list”表单中,所有属于一个机器的合成输入的物品。

"machineFuel:fuel_list"

这个示例接受“fuel_list”表单中,所有是一个机器燃料的物品。

"ore:stickWood"

这个示例接受所有注册了“stickWood(木棍)”矿辞的物品。

{
	"item": "minecraft:dye",
	"metadata": 5
}

"minecraft:dye@5"

这两个示例都只接受附加值为5的dye(染料)。

["ore:stickWood", "minecraft:apple"]

这个示例接受木棍矿辞或者一个苹果。

一个流体堆栈(Fluid Stack)定义了一种流体,和该流体的数量,如果不定义数量,默认使用1000(mb,1000mb即为原版一桶)。

"water"
"water@500"

一次使用500mb水。

{
    "fluid": "water@500"
}

使用500mb水。

{
    "fluid": "water",
    "amount": 200
}

使用200mb水。

碰撞箱(Bounding Box)决定了碰撞箱在三维空间中的大小和形状。

{
    "from": [0, 0, 0],
    "to": [1, 1, 1]
}

一个完整的正方体碰撞箱(的两个顶点,从起点到终点),[0,0,0]代表着x,y,z坐标都为0.

{
    "cube": 1
}

可以直接使用cube(正方体)碰撞箱,“[0, 0, 0]”作为起点,“cube”即为其边长,也可以描述一个完整的立方体。

{
    "from": [0, 0, 0],
    "to": [0.8, 0.8, 0.8],
    "offset": [0.1, 0.1, 0.1]
}

决定了碰撞箱的偏移量(offset),偏移量会被加到from和to的坐标上。

{
    "cube": 0.8,
    "offset": [0.1, 0.1, 0.1]
}

描述了一个和先前相同的碰撞箱,但是用cube代替了。