本篇教程由作者设定未经允许禁止转载。

进入高版本的CrT在文档中不像1.12.2那样支持众多模组,以至于热衷于ZenScript的玩家在魔改模组中遇到了问题。

本教程以1.16为准,并未测试其他版本的适用性,但方法应该都差不多?

然而官方文档中的几个介绍对原版配方类型支持的角落开头最醒目的位置中却藏着这样一个方法:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第1张图片


也就是说我们除了使用传统模组对CrT提供的支持方法以外,也可以使用IData进行JSON配方数据的修改。

于是我们可以对比一下原版data与CrT中的写法上的相似点:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第2张图片

加上CrT本身对所有配方类型支持以下方法:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第3张图片

根据这条熔炉的JSON配方的数据,我们可以以此推断出其他大部分模组的配方数据修改方式,然后就可以自由地在几乎所有模组的机器上进行的配方增减。

因为比较有名而又没有文档的模组中的通用机械比较典型,而且掺杂了气体这样的不伦不类的东西在里面,所以这里我们按照封面通用机械的魔改进行举例。

我们的目标是让提纯机使用水蒸气进行对机械动力粉碎金矿石进行洗矿操作。

首先我们需要通过压缩包打开通用机械模组的jar本体,在data文件中找到我们需要的配方json文件来进行参考。

于是我们找到了金矿石在提纯机中产出三个金碎块的data配方文件来作为本次魔改的参考。

打开后它是这样的:感觉有点像自动生成的代码而不是人敲的

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第4张图片

整理后得到了这样的东西:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第5张图片

紧接着我们把它修改为我们想要的配方样式:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第6张图片

然后我们根据需求进行一点点格式上的改动,就放入自己的zs中了:
[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第7张图片重载后就能看见你的合成被CrT正确地识别并载入进了游戏:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第8张图片

而使用CrT而不是data数据编写合成的优势体现在ZS有着完善的语言体系来使用,使得我们能轻易地书写大量的配方:

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第9张图片

[1.16] CraftTweaker 如何做到修改几乎所有模组的特殊配方。-第10张图片

参考资料:

    CrT英文官方文档:https://docs.blamejared.com/1.16/en/vanilla/api/managers/FurnaceManager/