前言
我们添加好新物品后,每个物品还是处在一种“孤立”的状态,也就是相互没有关系,所以接下来我们为其加入合成配方,使其相关联。
第一步
配方的添加方式十分简单,我们首先在resources目录下构建以下目录。
然后,在data emplate-mod ecipes目录下,创建所需配方的json文件即可。(如下图分别创建了由银锭合成银块和由银矿烧制成银锭的配方)
第二步
创建完成后,我们就可以进行代码的编写了。
首先是银块的配方,其中type值是用来确定合成方式的,crafting_shaped是指按指定摆放形状来合成。key值来确定合成用的物品,当我们需要多种物品来合成时,增加key字典中的值即可。pattern是指摆放形状,result指合成后的生成物,show_notification则是指显示配方通知(就是我们游戏时在右上角显示的解锁配方)。
{ "type": "minecraft:crafting_shaped", "category": "building", "key": { "#": { "item": "template-mod:silver_ingot" } }, "pattern": [ "###", "###", "###" ], "result": { "item": "template-mod:silver_block" }, "show_notification": true}和其他矿石相同,银块还需要能够分解成银锭,所以我们创建一个silver_ingot_from_silver_block.json文件(这里可以看到type的值变成了crafting_shapeless,因此在拆解过程中,我们不用在意它位于合成栏的具体哪个位置,而且我们也不需要设置合成用的字典,不过要注意在result中加入count,这是告诉我们的游戏分解后的物品数目)。
{ "type": "minecraft:crafting_shapeless", "category": "misc", "group": "silver_ingot", "ingredients": [ { "item": "template-mod:silver_block" } ], "result": { "count": 9, "item": "template-mod:silver_ingot" }}第三步
合成与分解的配方添加后,我们引入烧制的配方,银块烧制成银锭的代码如下。
{ "type": "minecraft:blasting", "category": "misc", "cookingtime": 100, "experience": 1.0, "group": "silver_ingot", "ingredient": { "item": "template-mod:silver_ore_block" }, "result": "template-mod:silver_ingot" }其中,type值为blasting,这意味着我们的银矿可以通过高炉来烧制,如果想用熔炉烧制,将其改为smelting即可。cookingtime是我们的烧制时间,改成熔炉要记得将时间延长,让Mod更符合游戏设定。experience则是烧制完成后的经验值。
{ "type": "minecraft:smelting", "category": "misc", "cookingtime": 200, "experience": 1.0, "group": "silver_ingot", "ingredient": { "item": "template-mod:silver_ore_block" }, "result": "template-mod:silver_ingot"}最后
然后,我们仿照上面的方法将其它新物品的配方也加入到游戏当中。
所有新配方运行客户端,可以看到新配方已经加入到了游戏里面。
分解银合成银块熔炉烧粗银高炉烧深层银矿注:技术有限,可能会有些错误,欢迎指正。有些地方小超也不理解,欢迎小伙伴们在评论区中讨论。