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

在教程开始之前,请务必参照下列教程,初步了解如何制作数据包:

制作数据包的教程(Minecraft Wiki)


本教程的原始英文 wiki 在此

教程使用的 Minecraft 版本为 1.19.3,懒人厨房版本为 14.0.1-Fabric。

懒人厨房默认支持的为可直接在手里拿着食用的物品(例如,MC 中的蛋糕原来是并不可以直接被懒人厨房所制作的,需要 json 支持,后续会讲到)。所以,部分食物 mod 中的原材料、调料等等,就无法被懒人厨房所制作。但是懒人厨房支持 json 数据自定义,使得兼容其他 mod 成为可能。


1. 让CB支持已有mod中漏掉的原料



作物盛景(Croptopia)为例。懒人厨房已经支持了 Croptopia 中部分原料的制作,但是漏掉了一些原料,如酱油(Soy Sauce)红辣椒(Paprika)使得游戏体验降低。没有修复之前, 我们是无法用烹饪台直接制作酱油和红辣椒的:

自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第1张图片


我们可以制作一个数据包来修复这一情况。

创建一个文件夹,这个文件夹是你的数据包的名字。

进入新建的文件夹,新建 pack.mcmeta 。具体的方式请参照教程顶部制作数据包的教程。

按照这种方式新建文件夹:

{$数据包名称}/data/{$随便起名}/cookingforblockheads/compat/

!注意!所有的文件夹都只能包括半角英文和数字!不能含中文!

在compat下新建一个json文件(名称随意,但推荐使用mod名称),使用记事本或你喜欢的IDE打开编辑。

{
    "modid": "croptopia",
    "foods": {
        "INGREDIENTS": [
            "croptopia:soy_sauce",
            "croptopia:paprika"
        ]
    }
}

相关的键名和键值代表的含义可以在文末找到。

把数据包文件打包成zip,添加到数据包文件夹,在游戏内输入/reload重载,输入/datapack list确认是否添加成功:

自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第2张图片

再进入烹饪台看一看:

自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第3张图片


自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第4张图片


成功添加原料。Enjoy!


2. 添加其他mod的支持


糕蛋(ekaC) 为例。

自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第5张图片

与Vanilla的蛋糕一致,糕蛋只能被放下食用,无法拿在手里直接食用。所以无法被懒人厨房直接合成:自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第6张图片

我们也可以如法炮制。新建一个数据包,在 json 文件内添加以下内容:

{
    "modid": "ekac",
    "foods": {
        "GENERAL": [
            "ekac:ekac"
        ]
    }
}

添加数据包:自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第7张图片

看看效果:自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!-第8张图片


你可以将多个 json 文件集成到一个数据包内,方便分发与载入。

你也可以进入 Github 将 json 上传并提交 PR,帮助原作者兼容更多的 mod !

附录:json 键名的含义



键名
描述
modid

要与 CB 整合的 mod 的 id。

只有加载了这个 id 所代表的 mod,json 文件才会被加载。

foods

定义命名数组对象,

用来指定无法被自动添加的物品(例如,因为是原材料或调料而无法食用的物品,

或者如蛋糕一样只能被放下食用的物品)。

现在只接受 "GENERAL" 和 "INGREDIENTS" 的子键值。

tools

定义物品注册表名数组对象,指定作为工具或厨具的物品。

如果缺失工具,不会不显示合成表,而会显示为“缺少厨具”。

water

定义物品数组对象,指定可以等同于水桶的物品。

水槽可以代替提供这些物品的水源需求。

milk

定义物品数组对象,指定可以等同于奶桶的物品。

奶罐和罐中奶牛可以代替提供这些物品的奶源需求。

toaster

定义包括子键值"input","output"的数组对象,

指定可被吐司机烤制的物品。input输入, output输出。

(人话:input是放进吐司机的东西,output是吐司机吐出来的东西)

kitchenConnectors

定义方块实体或方块注册表名的数组对象,可指定用来

装饰或隔开厨房地板,但与厨房地板有相同的连接功能的方块。

(人话:跟厨房地板一样)

kitchenItemProviders

定义方块实体注册表名的数组对象,

实体中的物品可直接被多方块厨房所使用。

请务必谨慎添加,因为不是所有的物品栏都是正常工作的。

(人话:把这些东西变成像冰箱橱柜之类的存储物件)