1. 合成表
Minecraft 从 1.12 起引入了使用技术性 JSON 文件的原版工作台合成表定义。Forge 在它的基础之上引入了一些新的功能,并让历史悠久的 OreDictionary 系统也能用在这个新格式中。
1.1. 一个简单的无序合成的例子:泥土换钻石
{
"type": "minecraft:crafting_shapeless",
"group": "my_mod:example",
"result": { "item": "minecraft:diamond_block", "count": 64 },
"ingredients": [
{ "item": "minecraft:dirt", "data": 0 },
{ "item": "minecraft:dirt", "data": 0 }
]
}
1.2. 合成表放哪?
Minecraft 原定于 1.12 引入的数据包跳票到了 1.13 才放出,但 Mojang 仍然在 1.12 中把合成表全转换成了 JSON 格式。Mojang 选择的存放位置是 assets/minecraft/recipes/
。
自然地,Forge 也将 JSON 视作推荐标准,并提供了对应的支持。与原版的路径相对应,Mod 的合成表只需要放在 assets/[modid]/recipes/
里就能被 Forge 扫描到并自动加载。modid
自然就是你的 Mod 的 id。有一点要注意,虽然这个路径和资源包的路径如出一辙,但合成表不是资源包的一部分。设定上讲,它是数据包的一部分,但显然 1.12 没有数据包,只能先这样将就了。(实际上原版和 Forge 都硬编码了这个路径。)