本篇教程来自MC百科(mcmod.cn) 使用 CC BY-NC-SA 协议。

(转自wiki)

此教程适用于Beta 2.0.2之前的TBL版本

写在前面

这篇文章涉及到json文件的编写

阅读起来需要一定的编程基础

可能是编程术语 或者本身就是json需要使用的英语内容予以保留

参考原文中的解释以及译者的注释来理解即可

当然 在尝试修改json文件之前请记得准备一个合适的json编辑器


TBL添加的这几种机器可以添加自定义的合成表:净化器:研磨器、堆肥箱、活化器、黑暗德鲁伊祭坛

在你的config文件夹里有个 "thebetweenlands" 文件夹,里面应当有个recipes.json文件。编辑这个文件and put some basic stuff in there(疑为编程术语?暂保留) 就可以添加新的配方。讲解细节之前,有一些东西预先讲解比较容易。

有一些tag(以下称为标签)几乎被所有配方使用, 它们是:

output amount

input/output type

input/output item

meta input/output

Input/output type标签可以填三种东西: "id", "oredictionary" 或mod id.

  • "id" 就是你希望使用的合成材料的物品ID(不建议使用)

  • "oredictionary" 就是你希望在合成中使用的矿物词典

  • mod id就是合成材料所在模组的名称,例如 "minecraft", "thebetweenlands"等等

  • Input/output item:这个标签应当写的内容取决于相应的input/output type

    如果type中是"id" ,就填上物品ID;

    如果是"oredictionary" ,就填矿物词典的entry name(如果有了解矿物词典的dalao麻烦讲解一下这个是什么 非常感谢);

    如果是mod id,就填上物品名称.

  • Meta input/output: 这个标签不一定要填,如果有需要,就填物品的metadata value(元数据值).

  • Output amount: 表示这个配方产出物品的数量;要填一个正数.

理解以上内容我们就可以分析实例了。第一次打开这个json文件,里面默认只有一对大括号 "{}".你填入的任何东西都必须填在这对括号里面。



堆肥箱配方的编写

堆肥配方很容易写。你要用到的标签是inputType,inputItem, compostAmount, compostTime和meta value(可选)。

  • Compost time 决定每个物品转化为堆肥的时间,单位是刻(tick),20 刻 = 1 秒

  • Compost amount是产出堆肥的数量。堆肥箱最多能存放100个堆肥,最多放置20个用于堆肥的物品。

要添加你自己的堆肥配方, 开头先写上"compost": {}

然后在括号之间加上recipe标签,像这样 "recipe": {}

在这对括号之间写自定义配方。以下是用原版钻石来堆肥的例子。

"compost": {

  "recipe": {

    "inputType": "minecraft",

    "inputItem": "diamond",

    "compostAmount": 5,

    "compostTime": 1000,

    "meta": 1

  }

}



研磨器配方的编写

研磨器的配方只需要几个基本的标签: inputType, inputItem, outputType, outputItem, outputAmount 以及可选的metaInput和metaOuput.

添加自定义研磨器配方”

开头写上"pestleAndMortar": {}  也可以简写为 "pam": {} 用法是一样的。

与堆肥箱配方类似,写上"recipe": {} 再在这对括号之间编写自定义配方。

下面是一个实例。

"pestleAndMortar": {

  "recipe": {

    "inputType": "id",

    "inputItem": 5,

    "outputType": "minecraft",

    "outputItem": "dirt",

    "outputAmount": 2,

    "metaInput": 1,

    "metaOutput": 2

  }

}



净化器配方的编写

会用到这些标签: inputType, inputItem, outputType, outputItem, outputAmount以及可选的metaInput和metaOuput.

要添加净化器配方,先写"purifier": {} 再在括号之间写上"recipe": {}然后在这对括号中写入配方。

下面是一个净化钻石使其变为泥土的例子。

"purifier": {

  "recipe": {

    "inputType": "minecraft",

    "inputItem": "diamond",

    "outputType": "minecraft",

    "outputItem": "dirt",

    "outputAmount": 2,

    "metaInput": 1,

    "metaOutput": 2

  }

}



活化器配方的编写

用到inputType, inputItem, outputType, outputItem, outputAmount, lifeAmount, fuelAmount这几个标签,还有可选的标签metaInput和metaOuput.

其中,Life amount是消耗的生命水晶耐久数,fuel amount是配方消耗的硫磺的数量。 

自然,开头是"animator":{"recipe": {}}然后在括号里编写配方。

下面是消耗8点生命水晶耐久和8个硫磺,活化钻石得到泥土的例子。

"animator": {

  "recipe": {

    "inputType": "minecraft",

    "inputItem": "diamond",

    "outputType": "minecraft",

    "outputItem": "dirt",

    "outputAmount": 2,

    "metaInput": 1,

    "metaOutput": 2,

    "lifeAmount": 8,

    "fuelAmount": 8

  }

}



黑暗德鲁伊祭坛配方的编写

这个稍微复杂一些。会用到的标签有下面这些:

 inputType(1 到 4), inputItem(1 到 4), outputType, outputItem, 以及可选的metaInput(1 到 4) 和meta output

这些标签与上文提到的基础标签用法、意义都一样,只是黑暗德鲁伊祭坛需要4个(1到4)输入物品

(这个可以对照黑暗德鲁伊祭坛的原本功能来理解 参阅 黑暗德鲁伊祭坛 词条) 

要添加自定义的祭坛配方,开头还是 "druidAltar": {}

然后再在括号中填入"recipe": {} 

可见,开头的部分一定是"机器名":{"recipe":{}} 然后在recipe的括号后编写配方。

然后像下面这样编写配方 注意如何依次写出4个输入物品~

这个范例仍然是钻石变泥土

"druidAltar": {

  "recipe": {

    "inputType1": "minecraft",

    "inputItem1": "diamond",

    "inputType2": "minecraft",

    "inputItem2": "diamond",

    "inputType3": "minecraft",

    "inputItem3": "diamond",

    "inputType4": "minecraft",

    "inputItem4": "diamond",

    "outputType": "minecraft",

    "outputItem": "dirt",

    "metaInput1": 1,

    "metaInput2": 0,

    "metaInput3": 1,

    "metaInput4": 1,

    "metaOutput": 2

  }

}



另外的提示

1.关于逗号

认真观察每一段范例,每写上一个标签,都要在行尾加一个英文逗号

(实际上你写进去的所有东西都要在英文(半角)下编写)

但是最后一行标签不能加逗号

为什么不能加?因为只要没有加逗号或者在最后一行标签加逗号,代码就会出错,出错就没用了。

2.同一个机器的不同配方可以写在一起

如果你想给同一个机器写不同的配方,只要再加一个recipe标签。

就像下面这样,堆肥器同时加了用钻石堆肥和用土堆肥的配方。

"compost": {

  "recipe": {

    "inputType": "minecraft",

    "inputItem": "diamond",

    "compostAmount": 5,

    "compostTime": 1000,

    "meta": 1

  },                              注意左边括号后的逗号!

  "recipe": {

    "inputType": "minecraft",

    "inputItem": "dirt",

    "compostAmount": 1,

    "compostTime": 10,

    "meta": 1

  }

}


下面是一个编写好的自定义合成表文本,可以直接复制到json文件中

注意观察写法 实际上也不难嘛~


{

  "compost": {

    "recipe": {

      "inputType": "minecraft",

      "inputItem": "diamond",

      "compostAmount": 5,

      "compostTime": 1000,

      "meta": 1

    },

"recipe": {

      "inputType": "minecraft",

      "inputItem": "dirt",

      "compostAmount": 1,

      "compostTime": 10,

      "meta": 1

    }

  },

  "pestleAndMortar": {

    "recipe": {

      "inputType": "id",

      "inputItem": 5,

      "outputType": "minecraft",

      "outputItem": "dirt",

      "outputAmount": 2,

      "metaInput": 1,

      "metaOutput": 2

    }

  },

  "purifier": {

    "recipe": {

      "inputType": "minecraft",

      "inputItem": "diamond",

      "outputType": "minecraft",

      "outputItem": "dirt",

      "outputAmount": 2,

      "metaInput": 1,

      "metaOutput": 2

    }

  },

  "animator": {

    "recipe": {

      "inputType": "minecraft",

      "inputItem": "diamond",

      "outputType": "minecraft",

      "outputItem": "dirt",

      "outputAmount": 2,

      "metaInput": 1,

      "metaOutput": 2,

      "lifeAmount": 8,

      "fuelAmount": 8

    }

  },

  "druidAltar": {

    "recipe": {

      "inputType1": "minecraft",

      "inputItem1": "diamond",

      "inputType2": "minecraft",

      "inputItem2": "diamond",

      "inputType3": "minecraft",

      "inputItem3": "diamond",

      "inputType4": "minecraft",

      "inputItem4": "diamond",

      "outputType": "minecraft",

      "outputItem": "dirt",

      "metaInput1": 1,

      "metaInput2": 0,

      "metaInput3": 1,

      "metaInput4": 1,

      "metaOutput": 2

    }

  }

}