← MOD 教程目录

第 5 课 / 免费图文教程

连接模型、贴图与掉落

让资源链从世界一直通到背包

110–130 分钟Fabric 1.20JDK 21MOD 入门

本课作品

独立检查模型、贴图、物品名称与掉落,完成可以获取、放置和挖回的方块。

沿固定顺序补齐资源链,让每个文件的职责与错误都清楚可查。

开始前:完成第 4 课,已有正常注册并具备属性的吊灯。

01 / 7

补齐资源与掉落

从世界里的模型,一直检查到玩家手中的物品。

第 4 课已经让方块拥有属性。本课补齐资源与掉落:Java 注册只让游戏知道它存在,看到模型、拿到图标和挖出物品还需要完整资源链。

  1. 理解 blockstates → block model → texture 的引用方向。
  2. 为 BlockItem 准备物品模型与语言名称。
  3. 用 loot table 决定破坏后的掉落物。
  1. 方块状态
  2. 方块模型
  3. 贴图
  4. 物品模型
  5. 掉落表

02 / 7

在 IntelliJ 定位资源

assets 与 data 都位于 src/main/resources 下。

真实 IntelliJ 截图:在同一模板工程中查找资源目录。
真实 IntelliJ 截图:在同一模板工程中查找资源目录。点击查看大图 ↗

相对于 src/main/resources 的路径

assets/simon-minecraft/blockstates/light.json
assets/simon-minecraft/models/block/light.json
assets/simon-minecraft/textures/block/light_texture.png
assets/simon-minecraft/models/item/light.json
data/simon-minecraft/loot_tables/blocks/light.json

模型和贴图属于 assets;掉落表属于 data,不能放进 assets。语言文件继续使用 lang/zh_cn.json 和 lang/en_us.json。

03 / 7

世界模型与物品模型各司其职

下面是两个独立的 JSON 文件。

assets/simon-minecraft/blockstates/light.json

{
  "variants": {
    "": { "model": "simon-minecraft:block/light" }
  }
}

assets/simon-minecraft/models/item/light.json

{
  "parent": "simon-minecraft:block/light"
}

先读懂每行,再分别保存。blockstates 决定世界中的方块使用哪个模型;item model 决定背包与手持物品使用哪个模型。两者可以共用 simon-minecraft:block/light,对应 models/block/light.json。

04 / 7

让挖掘结果回到玩家手中

掉落表使用与 Java 注册一致的命名空间和名称。

data/simon-minecraft/loot_tables/blocks/light.json

{
  "type": "minecraft:block",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "simon-minecraft:light"
        }
      ],
      "conditions": [
        { "condition": "minecraft:survives_explosion" }
      ]
    }
  ]
}

06 / 7

在游戏里验证整条链

世界、背包、掉落和存档都需要测试。

真实游戏截图:吊灯、普通模型、迷宫方块与掉落物在同一测试室中。
真实游戏截图:吊灯、普通模型、迷宫方块与掉落物在同一测试室中。点击查看大图 ↗
  1. 世界中的模型和贴图正确。
  2. 背包图标和手持模型正确。
  3. 在生存模式使用正确工具挖掘,得到预期物品。
  4. 保存并重进世界,再次确认方块与掉落正常。

原教材截图来自 runClient 中的复制测试世界,由 Minecraft ScreenshotRecorder 保存。当时的临时截图代码已撤销并重新 build 成功;请在自己的工程中重新验证上述四项。

07 / 7

故障地图与通关挑战

从具体症状定位缺少的连接。

世界方块紫黑
从 blockstates 开始逐级检查 model 与 texture。
背包图标紫黑
检查 models/item/light.json 的 parent。
挖掉没有掉落
检查 data 命名空间与 loot_tables/blocks 路径,并确认生存模式和工具条件。
名称缺失
检查对应游戏语言文件中的 block.simon-minecraft.light;中文为 zh_cn,英文为 en_us。

下一课引入 BooleanProperty,让同一个方块记住开与关。

TAKE IT WITH YOU

下载本课 PDF

完整图文与代码,选择你需要的语言。

继续查阅

教程按指定的 Fabric 1.20 模板编写;查阅文档时请保持版本一致。