本课作品
独立检查模型、贴图、物品名称与掉落,完成可以获取、放置和挖回的方块。
沿固定顺序补齐资源链,让每个文件的职责与错误都清楚可查。
开始前:完成第 4 课,已有正常注册并具备属性的吊灯。
01 / 7
补齐资源与掉落
从世界里的模型,一直检查到玩家手中的物品。
第 4 课已经让方块拥有属性。本课补齐资源与掉落:Java 注册只让游戏知道它存在,看到模型、拿到图标和挖出物品还需要完整资源链。
- 理解 blockstates → block model → texture 的引用方向。
- 为 BlockItem 准备物品模型与语言名称。
- 用 loot table 决定破坏后的掉落物。
- 方块状态
- 方块模型
- 贴图
- 物品模型
- 掉落表
02 / 7
在 IntelliJ 定位资源
assets 与 data 都位于 src/main/resources 下。

相对于 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" }
]
}
]
}05 / 7
六环资源链
根据症状找到环节,再向前检查引用。
- 注册 ID
- simon-minecraft:light 是后续引用的起点。
- blockstates
- 根据方块状态选择 block model。
- block model
- 定义元素、父模型与贴图变量。
- texture
- PNG 路径、大小写与 alpha 都要正确。
- item model + lang
- 分别决定背包外观和显示名称。
- loot table
- 决定破坏后掉落什么,以及爆炸条件是否允许掉落。
06 / 7
在游戏里验证整条链
世界、背包、掉落和存档都需要测试。

- 世界中的模型和贴图正确。
- 背包图标和手持模型正确。
- 在生存模式使用正确工具挖掘,得到预期物品。
- 保存并重进世界,再次确认方块与掉落正常。
原教材截图来自 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 模板编写;查阅文档时请保持版本一致。