进阶:农场模组
在上一节中,我们制作了一个简单的熔炉配方。这一节我们来做一个更有趣的项目——自定义农场模组,包含自定义农作物、自定义食物和多个配方的联动。
你将学到
- 创建自定义方块(番茄作物)
- 创建自定义物品(番茄、番茄种子、番茄汤)
- 创建多个配方让它们联动起来
- 创建掉落表控制作物掉落物
项目设计
我们要制作一个完整的番茄农场玩法链:
番茄种子 --[种植]--> 番茄作物方块 --[采集]--> 番茄 + 番茄种子
番茄 + 碗 --[工作台合成]--> 番茄汤(可食用)
番茄 --[熔炉烧制]--> 干番茄片(可食用,饱食度更高)这意味着我们需要创建:
- 1 个自定义方块(番茄作物)
- 3 个自定义物品(番茄种子、番茄、番茄汤/干番茄片)
- 1 个掉落表(作物被破坏时掉落番茄和种子)
- 2 个配方(工作台合成 + 熔炉烧制)
第一步:创建自定义物品
在编辑器中依次创建 3 个物品配置。
1.1 创建番茄种子
- 在「资源管理」面板点击「新建」→「配置」→「物品」
- 名称输入
tomato_seeds - 在右侧属性面板中设置:
| 属性 | 值 |
|---|---|
| 物品分类(category) | nature |
| 最大堆叠数(max_stack_size) | 64 |
- 为物品设置贴图:在属性面板中找到「图标」(icon)属性,选择或导入一张种子贴图
贴图资源
如果暂时没有美术资源,可以先使用原版贴图作为占位。原版贴图位于:MCStudioDownload\game\MinecraftPE_Netease\{版本号}\data\resource_packs\vanilla\textures\items\
1.2 创建番茄
- 新建物品配置,名称
tomato - 设置属性:
| 属性 | 值 |
|---|---|
| 物品分类 | nature |
| 最大堆叠数 | 64 |
- 添加
minecraft:food特性(点击属性面板的「+」按钮,搜索food):
| 食物属性 | 值 | 说明 |
|---|---|---|
| nutrition | 4 | 回复的饥饿值(同苹果) |
| saturation_modifier | low | 饱和度等级 |
关于 saturation_modifier 格式
中国版使用 format_version 1.10,saturation_modifier 接受字符串值:poor(0.1)、low(0.3)、normal(0.6)、good(0.8)、max(1.0)、supernatural(1.2)。括号内为对应的饱和度系数。国际版在更高 format_version 中改用数值直接指定系数(如 0.6),注意区分。
添加
minecraft:use_duration特性,值设为32(表示食用需要 32 tick,约 1.6 秒,和原版苹果一致)添加
minecraft:tags特性,添加标签minecraft:is_food(标记为食物,游戏引擎需要此标签识别食品)设置贴图
资源包侧的食物配置
如果你后续手动编辑资源包 JSON,还需要在 netease_items_res 的物品 JSON 中添加 "minecraft:use_animation": "eat" 组件,让食物在食用时播放进食动画。通过编辑器的配置创建时,这一步通常会自动处理。
1.3 创建番茄汤
- 新建物品配置,名称
tomato_soup - 设置属性:
| 属性 | 值 |
|---|---|
| 物品分类 | items |
| 最大堆叠数 | 1(和原版蘑菇煲一致) |
- 添加
minecraft:food特性:
| 食物属性 | 值 | 说明 |
|---|---|---|
| nutrition | 8 | 高饱食度(和原版蘑菇煲一致) |
| saturation_modifier | normal | 中等饱和度 |
- 添加
minecraft:use_duration,值设为32 - 添加
minecraft:tags,标签minecraft:is_food - 设置贴图
保存所有物品配置(Ctrl + S)。
第二步:创建自定义方块
2.1 创建番茄作物方块
- 在「资源管理」→「新建」→「配置」→「方块」
- 名称输入
tomato_crop - 在属性面板中设置基础属性:
| 属性 | 值 | 说明 |
|---|---|---|
| 注册到创造栏 | true | 方便测试时找到 |
| 破坏时间 | 0 | 作物应该可以瞬间打破 |
| 亮度 | 0 | 作物不发光 |
| 爆炸抗性 | 0 | 作物不抗爆炸 |
添加
minecraft:collision_box特性,值设为false(作物没有碰撞箱,玩家和生物可以穿过)添加
minecraft:placement_filter特性,设置条件为:只能放置在耕地(minecraft:farmland)的上方
为什么需要 placement_filter?
如果不设置 placement_filter,作物方块可以放在任何方块上面,包括石头、泥土甚至空气。真正的农作物应该只能种在耕地上。placement_filter 的配置如下:
"minecraft:placement_filter": {
"conditions": [
{
"allowed_faces": ["up"],
"block_filter": ["minecraft:farmland"]
}
]
}通过编辑器的「+」按钮添加此特性时,搜索 placement_filter,然后在 allowed_faces 中选择 up,在 block_filter 中添加 minecraft:farmland。
- 设置方块贴图:选择或导入一张作物贴图
关于作物生长阶段
完整的作物生长阶段(种子→幼苗→成熟)需要使用方块状态(Block States)和 JSON 手动配置,这超出了编辑器可视化操作的范围。本教程先创建一个简化版——单阶段作物方块。后续你可以在 自定义方块 文档中学习完整的多阶段作物实现。
第三步:创建掉落表
掉落表控制方块被破坏时掉落什么物品。
- 在「资源管理」→「新建」→「配置」→「掉落表」
- 名称输入
tomato_crop_loot - 在属性面板中添加掉落条目:
| 掉落物 | 数量 | 说明 |
|---|---|---|
{你的命名空间}:tomato | 1-3 | 掉落 1-3 个番茄 |
{你的命名空间}:tomato_seeds | 0-2 | 掉落 0-2 个番茄种子 |
- 回到方块配置
tomato_crop,在属性面板中找到minecraft:loot属性,将它指向刚创建的掉落表
保存。
第四步:创建联动配方
4.1 工作台合成:番茄汤
- 新建配方配置,名称
tomato_soup_recipe - 设置属性:
| 属性 | 值 |
|---|---|
| 配方类型 | 无序合成 |
| 适用方块 | 工作台 |
| 配方成分 | {命名空间}:tomato × 3 + minecraft:bowl × 1 |
| 配方结果 | {命名空间}:tomato_soup |
| 结果数量 | 1 |
4.2 熔炉烧制:干番茄片
- 新建配方配置,名称
dried_tomato_recipe - 设置属性:
| 属性 | 值 |
|---|---|
| 配方类型 | 熔炉配方 |
| 适用方块 | 熔炉 |
| 输入 | {命名空间}:tomato |
| 输出 | minecraft:dried_kelp(暂用干海带代替,后续可换成自定义物品) |
保存所有配置。
第五步:测试整个农场系统
- 点击编辑器右上角「运行」
- 进入游戏后,打开物品栏搜索你的命名空间(例如
my_first_mod) - 依次验证:
| 测试项 | 操作 | 预期结果 |
|---|---|---|
| 番茄可食用 | 拿着番茄,长按右键 | 食用动画播放,饥饿值回复 |
| 番茄作物掉落 | 放置番茄作物方块,打破它 | 掉落番茄和番茄种子 |
| 番茄汤合成 | 工作台放入 3 个番茄 + 1 个碗 | 合成出番茄汤 |
| 熔炉烧制 | 熔炉放入番茄 + 燃料 | 产出干海带(代替干番茄片) |
| 番茄汤可食用 | 拿着番茄汤,长按右键 | 食用动画播放,回复更多饥饿值 |
小结
在这一节中,你学会了:
- 创建多个自定义物品并配置食物属性
- 创建自定义方块并设置基础属性
- 创建掉落表控制方块掉落物
- 创建多个配方(工作台合成 + 熔炉烧制)
- 让多种自定义内容联动形成完整的玩法链
这些内容全部通过编辑器的可视化配置完成,没有编写任何代码。
接下来,让我们挑战更复杂的内容——自定义生物。
