Skip to content

自定义工作台方块 ​

自定义工作台方块让你将任意方块改造为指定配方的合成站。通过 netease:block_crafting_table 组件配置工作台名称和允许使用的配方标签,玩家交互方块时会打开 3×3 合成界面。不需要设置 base_block。

前置条件

请先阅读 自定义基础方块 了解方块的注册流程和 JSON 组件体系。自定义工作台推荐使用 format_version: "1.16.100"。不需要开启实验性玩法。

概述 ​

原版 MC 中,工作台提供 3×3 的合成界面。中国版允许你创建自定义工作台,并通过 配方标签(crafting_tags) 机制将特定配方绑定到你的工作台上。

核心流程:

  1. 在行为包中定义工作台方块,添加 netease:block_crafting_table 组件
  2. 配置 crafting_tags,声明此工作台支持的配方标签
  3. 在配方 JSON 的 tags 字段中填写对应的标签
  4. 玩家右键你的工作台时,只有 tags 匹配的配方会出现在合成界面中

你可以创建多种主题工作台(如铁匠台、炼金台),每种工作台只展示对应标签的配方。

netease:block_crafting_table 组件 ​

键类型默认值说明
custom_descriptionstring方块 identifier可选,工作台 UI 中显示的标题文本。pocket(手机端)模式下最多显示 9 个中文字符
crafting_tagslist(string)—必填,允许在此工作台使用的配方标签列表。不填则无法打开工作台
json
"netease:block_crafting_table": {
    "custom_description": "铁匠工作台",
    "crafting_tags": ["custom_smithing"]
}

crafting_tags 不能为空

如果 crafting_tags 为空列表或未填写,玩家右键方块时不会打开合成界面。请确保至少包含一个标签。

完整示例 ​

工作台方块定义 ​

文件路径:行为包/netease_blocks/custom_workbench.json

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 中声明的标签,否则配方不会出现在该工作台中。

json
{
    "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

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

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,这样该工作台就同时支持原版配方和自定义配方:

json
"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 不匹配。检查拼写是否完全一致,标签匹配是大小写敏感的。

json
// 工作台
"crafting_tags": ["magic_crafting"]

// 配方 — tags 必须匹配
"tags": ["magic_crafting"]

与国际版自定义工作台冲突 ​

中国版(网易版)的自定义工作台实现与国际版(微软版)的实现方式冲突。如果你的 addon 中同时包含两个版本的工作台配置,网易版的 netease:block_crafting_table 会覆盖国际版的实现。请勿在同一个 addon 中混用两种工作台方案。

pocket 模式下标题显示不全 ​

原因: custom_description 超过了 9 个中文字符的限制。手机端(pocket 模式)的 UI 宽度有限,标题过长会被截断。建议标题控制在 9 个中文字符以内。

下一步 ​