知方号

知方号

Fabric for Minecraft Mod 1.20.1开发(四)添加新配方!?

前言

    我们添加好新物品后,每个物品还是处在一种“孤立”的状态,也就是相互没有关系,所以接下来我们为其加入合成配方,使其相关联。

第一步

    配方的添加方式十分简单,我们首先在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"}

最后

    然后,我们仿照上面的方法将其它新物品的配方也加入到游戏当中。

所有新配方

    运行客户端,可以看到新配方已经加入到了游戏里面。

分解银合成银块熔炉烧粗银高炉烧深层银矿

    注:技术有限,可能会有些错误,欢迎指正。有些地方小超也不理解,欢迎小伙伴们在评论区中讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。