自定义工作台¶
自定义工作台的关键不是“长得像工作台”,而是“配方只在指定的合成界面可用”。基岩版方块可以通过minecraft:crafting_table组件声明合成标签,配方再用同一个标签限制可用位置。
创建工作台方块¶
demo_BP/blocks/gem_table.json
{
"format_version": "1.21.80",
"minecraft:block": {
"description": {
"identifier": "demo:gem_table"
},
"components": {
"minecraft:destructible_by_mining": {
"seconds_to_destroy": 2.0
},
"minecraft:crafting_table": {
"table_name": "container.demo.gem_table",
"crafting_tags": [
"demo_gem_table"
]
},
"minecraft:material_instances": {
"*": {
"texture": "gem_table",
"render_method": "opaque"
}
}
}
}
}
crafting_tags最多可以包含64个标签,每个标签最多64个字符。配方只要声明了对应标签,就能在这个工作台里出现。
添加纹理和名称¶
demo_RP/textures/terrain_texture.json
{
"resource_pack_name": "demo_RP",
"texture_name": "atlas.terrain",
"texture_data": {
"gem_table": {
"textures": "textures/blocks/gem_table"
}
}
}
创建专用配方¶
demo_BP/recipes/gem_from_diamond.json
{
"format_version": "1.20.10",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "demo:gem_from_diamond"
},
"tags": [
"demo_gem_table"
],
"ingredients": [
{
"item": "minecraft:diamond"
}
],
"result": {
"item": "minecraft:emerald",
"count": 1
}
}
}
现在这条配方只会出现在带有demo_gem_table标签的合成表中,而不会污染原版工作台。
测试¶
- 用
/give @s demo:gem_table取得方块。 - 放置并打开它。
- 放入钻石,检查是否能合成绿宝石。
- 再打开原版工作台,确认这条配方不会在那里出现。
如果配方不显示,检查工作台crafting_tags和配方tags是否完全一致。