# 基本属性
在下面这几节中我们一起来回顾学习方块相关的自定义JSON文件。首先,我们在编辑器中新建一个自定义方块作为示例并观察他的JSON结构。
# 在编辑器中创建
我们创建一个空的标识符为test:test_block
的方块。
我们在行为包组件中添加一些最基本的常用组件作为示例。
以上是添加了行为包组件之后的编辑器中显示效果。
我们再在“方块属性列表”栏中添加一些属性。
我们如图所示添加一些内容。
# 实际文件
虽然只有行为包中有存储方块定义的netease_blocks
文件夹,但实际上方块也需要在客户端中进行定义。在客户端中定义方块的是一个独立文件blocks.json
文件,这个文件就位于客户端的根目录中。我们先查看blocks.json
文件:
{
"format_version": [
1,
1,
0
],
"test:loot": {
"textures": "test:barrel_side"
},
"test:test_block": {
"isotropic": {
"down": false,
"east": false,
"north": false,
"south": false,
"up": false,
"west": false
},
"sound": "stone",
"textures": "test:custom_dirt"
}
}
可以看到,我们定义过的所有方块其实都会出现在这同一文件中,该文件中可以定义方块的一系列客户端属性。textures
用于定义方块使用的纹理,sound
用于定义方块使用的音效,isotropic
用于定义方块是否具有“各向异性”效果,即贴图随着坐标不同随机旋转或变化。
我们再来观察方块的行为包定义文件。方块的行为包定义文件位于行为包的netease_blocks
文件夹下,打开之后如下所示:
{
"format_version": "1.10.0",
"minecraft:block": {
"components": {
"minecraft:destroy_time": {
"value": 0.0
},
"minecraft:explosion_resistance": {
"value": 0.0
},
"minecraft:map_color": {
"color": "#000000"
},
"minecraft:max_stack_size": {
"value": 64
},
"netease:aabb": {
"clip": [
],
"collision": [
]
},
"netease:fuel": {
"duration": 0
},
"netease:pathable": {
"value": true
},
"netease:render_layer": {
"value": "opaque"
},
"netease:solid": {
"value": false
}
},
"description": {
"identifier": "test:test_block"
}
}
}
整个结构与物品、实体非常类似,只是组件有所不同。
minecraft:destroy_time
用于指定方块的硬度,原版方块的硬度可以在Minecraft Wiki的方块挖掘时间 (opens new window)页面找到。minecraft:explosion_resistance
用于指定方块的爆炸抗性。minecraft:map_color
用于指定方块在地图上显示的颜色。
netease:aabb
是中国版自定义的组件,可以指定方块的碰撞箱和击中箱。netease:fuel
可以用来指定方块成为熔炉燃料。netease:pathable
用于指定是否可被生物寻路。netease:render_layer
用于指定该方块在渲染时的渲染图层,也即渲染时的透明性。netease:solid
用于指定方块是否有固体属性。
关于更多的方块组件内容及使用方法,可以参考官方文档自定义方块的JSON组件 (opens new window)章节。