我的世界MBP WIKI中文翻译
快速入门
为了使用这个模组,你必须在你的纹理包内创建一个名为 minecraft 的命名空间,并在内创建一个 mbp 文件夹。
方块模型覆写
Overrides 列表
在 mbp 文件夹内,你可以覆写一个方块的模型。
举个例子,覆写一个草方块,会有一个在名为 grass_block.json 在 assets/minecraft/mbp 文件夹内的文件。
每个将要被覆写的方块的文件都会有如下内容
{
"overrides": [
...
]
}
这个 overrides 列表决定了模型要被什么覆写。并且一个方块不同模型都会有不同的条件,如果符合条件,方块会显示特定的模型。
一个例子,这里用深板岩的模型覆写了石头的模型:
{
"overrides": [
{
"when": {
"coordinate_range": { "axis": "y", "min": 77, "max": 79 }
},
"apply": "minecraft:deepslate"
}
]
}
当石头的坐标大于 77 却小于 79 的时候将会被覆写为深板岩的模型。
另外,apply 可以是一个列表,如果是的话,它会在列表中随机选择一个 ID 作为被覆写方块的模型。
类似于 blockstates 的随机模型。
Apply 列表
apply 列表中每个元素都可以是字符串,或者一个为对象,比如 minecraft:stone,也可以写成对象 {“model”: “minecraft:stone”}。
当使用对象时,你可以具体说明它的权重也就是 weight。其权重的值决定了该模型被采用的概率会多大。
举个例子,五分之一的概率会让被覆写的方块采用 my_resource_pack:custom_stone 模型,剩下,会采用第二种模型:
{
"overrides": [
{
"when": {
"coordinate_range": { "axis": "y", "min": -4, "max": 4 }
},
"apply": [
"my_resource_pack:custom_stone",
{"model":"my_resource_pack:custom_stone2","weight":4}
]
}
]
}
邻近的方块(Adjacent Block)
摘要
检测一个方块的坐标是否邻近/不邻近某个方块,并匹配该块。你可以修改包括状态、标签和一些额外的属性。
对象信息
ID 为 adjacent_block,
有以下参数:
-
状态(State),字符串(可选);
-
是否为固体(is_solid),布尔值(可选);
-
是否为透明方块(is_transparent),布尔值(可选);
-
是否为完整方块(is_full_block),布尔值(可选);
-
坐标偏移(offest),为一个三维向量。
例子
检测下方是否为泥土:
{
"overrides": [
{
"when": {
"adjacent_block": {
"state": "minecraft:dirt",
"offset": { "x": 0, "y": -1, "z": 0 }
}
},
"apply": [
......
]
}
]
}
检测下方是否不为透明方块:
{
"overrides": [
{
"when": {
"adjacent_block": {
"is_transparent": false,
"offset": { "x": 0, "y": -1, "z": 0 }
}
},
"apply": [
......
]
}
]
}
坐标范围(Coordinate Range)
摘要
检测方块是否被放置在某个坐标区间内,或者在特定的位置上。
对象信息
ID 为 coordinate_range,
有以下参数:
-
坐标轴(axis),为一个字符串,有效值为 x , y 和 z;
-
最大值(max),整形;
-
最小值(min),整形。
例子
检测其位置是否在 Y77 到 Y79 这个区间内:
{
"overrides": [
{
"when": {
"coordinate_range": {
"axis": "y",
"min": 77,
"max": 79
}
},
"apply": [
......
]
}
]
}
群系(In Biome)
摘要
检测方块是否在某个群系内。
对象信息
ID 为 biome,
参数有如下:
-
群系 ID(identifier),字符串。
例子
检测是否在平原内:
{
"overrides": [
{
"when": {
"biome": {
"identifier": "minecraft:plains"
}
},
"apply": [
......
]
}
]
}
方块状态(Is Block State)
摘要
检测方块是否为某种状态。
对象信息
ID 为 state,
参数为一个字符串。
例子
检测台阶是否上半砖:
{
"overrides": [
{
"when": {
"state": "minecraft:oak_slab[type=top]"
},
"apply": [
......
]
}
]
}
是否为物品(Is Item)
摘要
令方块在背包或者掉落在地上是否被渲染为一个物品。
对象信息
ID 为 is_item,
参数为布尔值。
例子
如果为 true,那么方块在背包内就会被渲染为一个物品,而非渲染模型:
{
"overrides": [
{
"when": {
"is_item": "false"
},
"apply": [
......
]
}
]
}
光照亮度范围(Light Range)
摘要
检测方块是否处于某个光照亮度的区间内。
对象信息
ID 为 light_range,
有如下参数:
-
最大值(max),整形;
-
最小值(min),整形。
例子
检测方块是否处于亮度为 0 与 亮度为 7 的区间内。
{
"overrides": [
{
"when": {
"light_range": {
"min": 0,
"max": 7
}
},
"apply": [
......
]
}
]
}
逻辑运算(Logic Operators)
摘要
允许你去使用 AND(与门),OR(或门) 和 NOT(非门),去自定义更多的情况。
例子
"NOT": [
]
"AND": [
]
"OR": [
]