方块入门指南
格式与最低引擎版本 1.21.70
本页介绍基础方块特性。了解更多方块组件请访问此处。
注意
原版方块的代码是硬编码的,您无法覆盖或访问它们。
Minecraft基岩版允许我们向世界中添加具有多种原版特性的自定义方块。自定义方块可以拥有多个生长阶段(如植物)、方向朝向等实用功能。
本教程将介绍如何为稳定版Minecraft创建基础方块。
注册方块
方块定义的结构与实体类似:包含描述和定义方块行为的组件列表。
与实体不同,方块除了在RP/blocks.json中定义外,没有其他资源定义。
以下是使自定义方块出现在创造模式物品栏中的最低限度行为端代码:
{
"format_version": "1.21.70",
"minecraft:block": {
"description": {
"identifier": "wiki:custom_block",
"menu_category": {
"category": "construction", // 方块在创造模式物品栏或配方书中的分类标签
"group": "minecraft:itemGroup.name.concrete", // 方块所属的可展开分组(可选)
"is_hidden_in_commands": false // 是否在命令中隐藏该方块(可选)
}
},
"components": {} // 必须存在,即使为空!
}
}方块描述
- 定义方块的
identifier- 格式为命名空间:标识符的唯一ID - 配置方块所属的
menu_category- 还可选配
group和is_hidden_in_commands参数
- 还可选配
方块描述也是状态和特性的配置位置,这些内容将在专属页面介绍。
添加组件
目前我们的自定义方块使用的是默认组件值(可在此查看)。
现在让我们配置自己的功能!
{
"format_version": "1.21.70",
"minecraft:block": {
"description": {
"identifier": "wiki:custom_block",
"menu_category": {
"category": "construction"
}
},
"components": {
"minecraft:destructible_by_mining": {
"seconds_to_destroy": 3
},
"minecraft:destructible_by_explosion": {
"explosion_resistance": 3
},
"minecraft:friction": 0.4,
"minecraft:map_color": "#ffffff",
"minecraft:light_dampening": 0,
"minecraft:light_emission": 4,
"minecraft:loot": "loot_tables/blocks/custom_block.json"
}
}
}minecraft:destructible_by_mining定义玩家需要挖掘多长时间才能破坏方块。目前无法为不同工具设置不同的破坏时间。minecraft:destructible_by_explosion定义抗爆性。数值越高,被破坏几率越低。minecraft:friction定义方块的摩擦系数。例如灵魂沙具有高摩擦值会减缓玩家速度,冰的低摩擦值会产生滑溜效果。经典方块如木头或石头的摩擦系数为0.4。minecraft:map_color是地图上代表该方块的十六进制颜色代码。#ffffff表示白色。其他颜色代码可在此查询。minecraft:light_dampening定义阻挡光线通过的程度。minecraft:light_emission定义方块发出的光照等级。minecraft:loot定义方块的战利品表路径。若移除此项,方块将掉落自身。了解更多战利品表内容请访问此处。
浏览更多方块组件请访问此处!
应用纹理
WARNING
RP/blocks.json会忽略标识符的命名空间。您可以随意填写或不包含命名空间,结果没有区别。如果您创建的自定义方块与现有原版方块同名(但命名空间不同),可能会导致问题。
方块音效也可在RP/blocks.json中定义。
对于基础的16×16×16像素方块,纹理应在RP/blocks.json中定义。
{
"format_version": "1.21.40",
"wiki:custom_block": {
"textures": "wiki:custom_block", // 此纹理简称应在`terrain_texture.json`中定义,如下所示
"sound": "grass"
}
}现在我们需要在RP/textures/terrain_texture.json中将纹理简称关联到图像文件路径:
{
"resource_pack_name": "wiki",
"texture_name": "atlas.terrain",
"texture_data": {
// 我们的纹理简称:
"wiki:custom_block": {
"textures": "textures/blocks/custom_block" // 关联到图像文件名
}
}
}各面独立纹理
纹理也可以按面单独应用。例如一个自定义"指南针方块"可以使用以下✨惊艳✨纹理:
textures/blocks/compass_block_down.png
textures/blocks/compass_block_up.png
textures/blocks/compass_block_north.png
textures/blocks/compass_block_east.png
textures/blocks/compass_block_south.png
textures/blocks/compass_block_west.png
blocks.json的配置如下:
{
"format_version": "1.21.40",
"wiki:compass_block": {
"textures": {
"down": "wiki:compass_block_down",
"up": "wiki:compass_block_up",
"north": "wiki:compass_block_north",
"east": "wiki:compass_block_east",
"south": "wiki:compass_block_south",
"west": "wiki:compass_block_west"
}
}
}或者,如果您想使用材质实例,配置如下:
"minecraft:geometry": "minecraft:geometry.full_block",
"minecraft:material_instances": {
"*": {
"texture": "wiki:compass_block_down" // 此纹理出现在破坏粒子中
},
"up": {
"texture": "wiki:compass_block_up"
},
"north": {
"texture": "wiki:compass_block_north"
},
"east": {
"texture": "wiki:compass_block_east"
},
"south": {
"texture": "wiki:compass_block_south"
},
"west": {
"texture": "wiki:compass_block_west"
}
}对应的terrain_texture.json数据:
{
"resource_pack_name": "wiki",
"texture_name": "atlas.terrain",
"texture_data": {
"wiki:compass_block_down": {
"textures": "textures/blocks/compass_block_down"
},
"wiki:compass_block_up": {
"textures": "textures/blocks/compass_block_up"
},
"wiki:compass_block_north": {
"textures": "textures/blocks/compass_block_north"
},
"wiki:compass_block_east": {
"textures": "textures/blocks/compass_block_east"
},
"wiki:compass_block_west": {
"textures": "textures/blocks/compass_block_west"
},
"wiki:compass_block_south": {
"textures": "textures/blocks/compass_block_south"
}
}
}定义名称
最后,让我们如下定义方块名称:
tile.wiki:custom_block.name=自定义方块
tile.wiki:compass_block.name=指南针方块了解更多翻译内容请访问此处。
成果展示
在本页面中,您已学习以下内容:
...但这只是开始,下方还有更多内容等待探索!



















