Skip to content

复杂:牧场模组 ​

在上一节中,我们用编辑器的可视化配置做了一个完整的农场模组。这一节我们继续扩展——制作一个牧场模组,加入自定义生物、交易系统和生成规则。

难度提升

本节部分内容需要手动编辑 JSON 文件,因为编辑器的可视化配置目前不支持实体的事件、组件组和资源包配置。你需要用文本编辑器(如 VS Code)打开项目目录中的 JSON 文件进行修改。

你将学到

  • 创建自定义生物(番茄鸡——吃番茄的变种鸡)
  • 配置生物的行为和外观(基于原版鸡的模板)
  • 创建自定义生物蛋
  • 创建掉落表控制生物掉落物
  • 创建交易表实现 NPC 交易
  • 创建生成规则让生物自然生成

项目设计 ​

我们要在上一节的番茄农场基础上,扩展出一个牧场系统:

番茄鸡(自定义生物)
├── 外观:基于原版鸡,但带红色贴图
├── 掉落:死亡掉落番茄 + 羽毛
├── 生成:在平原自然生成
└── 生物蛋:可在创造模式使用

农场商人(自定义 NPC)
├── 外观:基于原版村民
└── 交易:用番茄换取绿宝石、用绿宝石买番茄种子

第一步:创建自定义生物——番茄鸡 ​

1.1 通过编辑器创建实体配置 ​

  1. 在「资源管理」→「新建」→「配置」→「实体」
  2. 在数据模板中选择「chicken」(鸡)——这样我们的番茄鸡会继承原版鸡的所有行为
  3. 不要勾选「覆盖模板数据」(我们是创建新生物,不是替换原版鸡)
  4. 名称输入 tomato_chicken
  5. 点击创建

编辑器会基于原版鸡的数据生成一套完整的实体配置。你可以在属性面板中修改部分基础属性:

属性值说明
生命值(health)6比原版鸡(4)稍高
移动速度(movement)0.25和原版鸡一致

1.2 手动修改资源包(换贴图) ​

编辑器创建的实体会复用原版鸡的模型和贴图。要让番茄鸡看起来不同,我们需要手动操作:

  1. 在 MC Studio 中找到作品,点击「更多」→「打开目录」
  2. 进入 resource_pack_xxx/textures/entity/ 目录
  3. 复制原版鸡的贴图(可从 MCStudioDownload\game\MinecraftPE_Netease\{版本}\data\resource_packs\vanilla\textures\entity\chicken.png 获取)
  4. 用绘图工具将贴图修改为偏红色调,保存为 tomato_chicken.png
  5. 打开 resource_pack_xxx/entity/ 目录,找到番茄鸡的资源包 JSON 文件
  6. 将其中的贴图路径改为你的新贴图:
json
"textures": {
  "default": "textures/entity/tomato_chicken"
}

打开目录的位置

MC Studio 的作品目录通常在 MCStudioDownload 文件夹下。通过「更多」→「打开目录」可以直接跳转到对应的作品文件夹。

1.3 创建生物蛋 ​

  1. 在「资源管理」→「新建」→「配置」→「物品」
  2. 名称输入 tomato_chicken_egg
  3. 在 description 中设置 custom_item_type 为 egg
  4. 关联到你的番茄鸡实体标识符({命名空间}:tomato_chicken)

这样你就能在创造模式中使用生物蛋来生成番茄鸡了。

第二步:创建掉落表 ​

番茄鸡死亡时应该掉落番茄(来自我们的农场模组)和羽毛。

  1. 新建掉落表配置,名称 tomato_chicken_loot
  2. 设置掉落条目:
掉落物数量说明
{命名空间}:tomato1-3掉落番茄
minecraft:feather0-2掉落羽毛
  1. 将掉落表关联到番茄鸡的实体配置:在实体属性面板中找到 minecraft:loot 组件,设置为刚创建的掉落表路径

第三步:创建生成规则 ​

让番茄鸡在特定的生物群系中自然生成。

  1. 新建生成规则配置,名称 tomato_chicken_spawn
  2. 在属性面板中设置:
属性值说明
实体标识符{命名空间}:tomato_chicken要生成的实体
数量控制(population_control)animal使用动物类的数量控制池
生成权重(weight)6生成概率(原版鸡是 10)
最小群组大小2至少同时生成 2 只
最大群组大小4最多同时生成 4 只
  1. 添加 minecraft:spawns_on_surface 组件(设为空对象 {}),声明实体在地表生成

  2. 添加生物群系过滤条件,限制只在平原和向日葵平原生成

生成规则的关键组件

手动编辑 JSON 时,一个完整的生成规则至少需要以下结构:

json
{
  "format_version": "1.8.0",
  "minecraft:spawn_rules": {
    "description": {
      "identifier": "{命名空间}:tomato_chicken",
      "population_control": "animal"
    },
    "conditions": [
      {
        "minecraft:spawns_on_surface": {},
        "minecraft:weight": { "default": 6 },
        "minecraft:herd": { "min_size": 2, "max_size": 4 },
        "minecraft:biome_filter": {
          "test": "has_biome_tag",
          "value": "plains"
        }
      }
    ]
  }
}
  • population_control 可选值:animal、underwater_animal、monster、ambient,控制生成和消失的数量上限
  • minecraft:spawns_on_surface 声明在地表生成(对应还有 spawns_underground 和 spawns_underwater)
  • 通过编辑器创建时这些通常已自动处理,但理解其结构有助于调试

第四步:创建农场商人 ​

4.1 创建商人实体 ​

  1. 新建实体配置,数据模板选择「villager_v2」(村民)
  2. 不要勾选覆盖
  3. 名称输入 farm_trader
  4. 修改基础属性:
属性值说明
生命值20比普通村民更耐打
移动速度0.2稍慢,显得稳重

4.2 创建交易表 ​

  1. 新建交易表配置,名称 farm_trader_trades
  2. 添加交易条目:
交易输入输出说明
卖番茄{命名空间}:tomato × 16minecraft:emerald × 1玩家用番茄换绿宝石
买种子minecraft:emerald × 1{命名空间}:tomato_seeds × 8玩家用绿宝石买种子
买番茄汤minecraft:emerald × 2{命名空间}:tomato_soup × 1玩家买番茄汤
  1. 将交易表关联到农场商人实体

交易表配置

交易表在编辑器中有完整的可视化支持。每个交易条目可以设置输入物品(1-2 种)、输出物品、最大交易次数等属性。

4.3 手动配置商人行为(JSON) ​

要让农场商人能被右键打开交易界面,需要手动在行为包 JSON 中确保包含 minecraft:trade_table 组件。

通过 MC Studio 的「更多」→「打开目录」找到行为包目录,打开 entities/ 下的农场商人 JSON 文件,在 components 中确认包含:

json
"minecraft:trade_table": {
  "display_name": "entity.{命名空间}:farm_trader.name",
  "table": "trading/farm_trader_trades.json",
  "new_screen": true
}
字段说明
display_name交易界面标题,引用 zh_CN.lang 中的实体名称
table交易表 JSON 文件路径,相对于行为包根目录
new_screen使用新版交易界面

交易组件的两种写法

中国版基于村民模板创建的实体通常使用 minecraft:economy_trade_table(现代村民的交易组件,支持经验升级和多层级交易)。而 minecraft:trade_table 是更简单的版本(适用于流浪商人等不需要升级的 NPC)。

如果你的商人是基于 villager_v2 模板创建的,模板中已自动包含 minecraft:economy_trade_table,直接修改其 table 路径指向你的交易表文件即可。如果是从零创建的简单 NPC,使用 minecraft:trade_table 更合适。

在 resource_pack_xxx/texts/zh_CN.lang 中添加中文名称:

entity.{命名空间}:farm_trader.name=农场商人
entity.{命名空间}:tomato_chicken.name=番茄鸡

第五步:完整测试 ​

保存所有配置后运行测试,逐项验证:

测试项操作预期结果
番茄鸡生物蛋创造模式搜索并使用生物蛋生成带红色贴图的鸡
番茄鸡掉落击杀番茄鸡掉落番茄和羽毛
自然生成在平原探索能看到自然生成的番茄鸡
农场商人交易使用生物蛋生成商人,右键交互打开交易界面
用番茄换绿宝石放入 16 个番茄获得 1 个绿宝石
用绿宝石买种子放入 1 个绿宝石获得 8 个番茄种子
完整链路种植→采集→交易→买种子→种植形成可持续的游戏循环

整个农牧模组的玩法链路 ​

到这里,我们的农场 + 牧场模组已经形成了一个完整的经济循环:

                    ┌─────────────────────────┐
                    │       番茄种子          │
                    └──────────┬──────────────┘
                               │ 种植
                    ┌──────────▼──────────────┐
                    │     番茄作物方块        │
                    └──────────┬──────────────┘
                               │ 采集/掉落
                    ┌──────────▼──────────────┐
                    │         番茄            │
                    └──┬───────┬──────┬───────┘
                       │       │      │
              ┌────────▼─┐  ┌──▼───┐  │
              │ +碗=番茄汤│  │熔炉  │  │16个
              └──────────┘  │=干番茄│  │
                            └──────┘  │
                    ┌─────────────────▼───────┐
                    │  农场商人: 换取绿宝石   │
                    │  绿宝石 → 买回番茄种子  │
                    └─────────────────────────┘

                    ┌─────────────────────────┐
                    │       番茄鸡            │
                    │  击杀掉落番茄+羽毛      │
                    │  平原自然生成            │
                    └─────────────────────────┘

小结 ​

在这一节中,你学会了:

  • 基于原版模板创建自定义生物(番茄鸡、农场商人)
  • 通过手动编辑 JSON 自定义生物外观(贴图替换)
  • 创建生物蛋方便测试
  • 创建掉落表控制生物掉落
  • 创建生成规则让生物在特定群系自然出现
  • 创建交易表实现 NPC 买卖
  • 多种自定义内容组合联动形成完整的经济循环

还能做什么?

如果你想让农牧模组更完善,还可以继续学习:

接下来,前往 下一步做什么 查看更多学习方向。