自定义工作台方块
自定义工作台方块让你将任意方块改造为指定配方的合成站。通过 netease:block_crafting_table 组件配置工作台名称和允许使用的配方标签,玩家交互方块时会打开 3×3 合成界面。不需要设置 base_block。
前置条件
请先阅读 自定义基础方块 了解方块的注册流程和 JSON 组件体系。自定义工作台推荐使用 format_version: "1.16.100"。不需要开启实验性玩法。
概述
原版 MC 中,工作台提供 3×3 的合成界面。中国版允许你创建自定义工作台,并通过 配方标签(crafting_tags) 机制将特定配方绑定到你的工作台上。
核心流程:
- 在行为包中定义工作台方块,添加
netease:block_crafting_table组件 - 配置
crafting_tags,声明此工作台支持的配方标签 - 在配方 JSON 的
tags字段中填写对应的标签 - 玩家右键你的工作台时,只有
tags匹配的配方会出现在合成界面中
你可以创建多种主题工作台(如铁匠台、炼金台),每种工作台只展示对应标签的配方。
netease:block_crafting_table 组件
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
custom_description | string | 方块 identifier | 可选,工作台 UI 中显示的标题文本。pocket(手机端)模式下最多显示 9 个中文字符 |
crafting_tags | list(string) | — | 必填,允许在此工作台使用的配方标签列表。不填则无法打开工作台 |
"netease:block_crafting_table": {
"custom_description": "铁匠工作台",
"crafting_tags": ["custom_smithing"]
}crafting_tags 不能为空
如果 crafting_tags 为空列表或未填写,玩家右键方块时不会打开合成界面。请确保至少包含一个标签。
完整示例
工作台方块定义
文件路径:行为包/netease_blocks/custom_workbench.json
{
"format_version": "1.16.100",
"minecraft:block": {
"description": {
"identifier": "mymod:custom_workbench",
"register_to_create_menu": true,
"category": "Items"
},
"components": {
"minecraft:destroy_time": 2.5,
"minecraft:explosion_resistance": 2.5,
"netease:tier": {
"digger": "hatchet",
"destroy_special": false
},
"netease:block_crafting_table": {
"custom_description": "魔法工作台",
"crafting_tags": ["magic_crafting"]
}
}
}
}配方定义(有序配方)
文件路径:行为包/recipes/magic_sword_recipe.json
配方 JSON 中的 tags 必须包含工作台 crafting_tags 中声明的标签,否则配方不会出现在该工作台中。
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "mymod:magic_sword_recipe"
},
"tags": ["magic_crafting"],
"pattern": [
" D ",
" D ",
" S "
],
"key": {
"D": { "item": "minecraft:diamond" },
"S": { "item": "minecraft:stick" }
},
"result": {
"item": "mymod:magic_sword",
"count": 1
}
}
}配方定义(无序配方)
文件路径:行为包/recipes/magic_dust_recipe.json
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "mymod:magic_dust_recipe"
},
"tags": ["magic_crafting"],
"ingredients": [
{ "item": "minecraft:redstone" },
{ "item": "minecraft:glowstone_dust" },
{ "item": "minecraft:lapis_lazuli" }
],
"result": {
"item": "mymod:magic_dust",
"count": 3
}
}
}资源包 — blocks.json
文件路径:资源包/blocks.json
{
"mymod:custom_workbench": {
"textures": {
"up": "mymod:workbench_top",
"down": "mymod:workbench_bottom",
"north": "mymod:workbench_front",
"south": "mymod:workbench_side",
"west": "mymod:workbench_side",
"east": "mymod:workbench_side"
},
"sound": "wood"
}
}资源包 — 本地化
文件路径:资源包/texts/zh_CN.lang
tile.mymod:custom_workbench.name=魔法工作台多标签工作台
一个工作台可以同时支持多个配方标签。你甚至可以在 crafting_tags 中包含原版工作台的标签 crafting_table,这样该工作台就同时支持原版配方和自定义配方:
"netease:block_crafting_table": {
"custom_description": "万能工作台",
"crafting_tags": ["crafting_table", "magic_crafting", "tech_crafting"]
}原版标签的影响
如果你在 crafting_tags 中加入了 crafting_table,原版工作台的所有配方都会出现在你的自定义工作台中。请根据设计需要决定是否包含此标签。
常见问题
玩家右键工作台没有反应
原因: crafting_tags 为空或未填写。确保 crafting_tags 至少包含一个字符串标签。
配方不出现在工作台中
原因: 配方 JSON 的 tags 字段与工作台的 crafting_tags 不匹配。检查拼写是否完全一致,标签匹配是大小写敏感的。
// 工作台
"crafting_tags": ["magic_crafting"]
// 配方 — tags 必须匹配
"tags": ["magic_crafting"]与国际版自定义工作台冲突
中国版(网易版)的自定义工作台实现与国际版(微软版)的实现方式冲突。如果你的 addon 中同时包含两个版本的工作台配置,网易版的 netease:block_crafting_table 会覆盖国际版的实现。请勿在同一个 addon 中混用两种工作台方案。
pocket 模式下标题显示不全
原因: custom_description 超过了 9 个中文字符的限制。手机端(pocket 模式)的 UI 宽度有限,标题过长会被截断。建议标题控制在 9 个中文字符以内。
