本篇教程来自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
}
}
}