本篇教程由作者设定未经允许禁止转载。
前言
匠魂3比起匠魂2来说,材料少了很多。例如有一次我想做赛特斯石英部件,结果在部件制作台上不能制作部件,甚至没有一个附属联动。正所谓“自己动手,丰衣足食”,那么,kubejs就是你的不二之选。
第一部分:注册材料
路径
在确认您装载kubejs且至少启动过一次游戏后,就让我们看注册部件的路径。,
\kubejs\data
在这个路径下先创建一个文件夹,注意名字必须为英文,然后在这个文件夹下再创建一个名为“tinkering”的文件夹,然后在这个文件夹中再创建一个名为“materials”的子文件夹,最后再在里面创建3个子文件夹,分别命名为“definition”,“stats”和“traits”。
如图,这里的第一个文件夹以kubejs为例。不要在意我为啥有versions
注册材料
首先打开你的definition文件夹,这里是存放材料定义的。在里面创建一个xxx.json文件,这里的xxx可以填写任何名字,(除了中文)例如"certus_quartz"。
{
"craftable": true,
"tier": 1,
"sortOrder": 1,
"hidden": false
}
上面的是一个定义文件的格式,我们来逐个讲解。
"craftable":是否在部件制作台上制作
"tier":材料等级
"sortOrder":材料在手册中的位置(可以随便填,最好不要过大)
"hidden":是否隐藏
材料面板
将这些填写好后,就得写面板了
在你的stats文件夹创建一个与之前名字一样的.json文件
{
"stats": {
"tconstruct:extra": {},
"tconstruct:handle": {
"durability": 1.2,
"miningSpeed": 1.0,
"attackSpeed": 0.9,
"attackDamage": 1.1
},
"tconstruct:head": {
"durability": 150,
"miningSpeed": 4,
"harvestTier": "minecraft:stone",
"attack": 2
},
"tconstruct:limb": {
"durability": 150,
"drawSpeed": -0.1,
"velocity": 0.1,
"accuracy": 0.1
},
"tconstruct:grip": {
"durability": 1.2,
"accuracy": 0,
"meleeAttack": 2
}
}
}
上面的是一个面板文件的格式,是不是很长?没事,让我们来逐个讲解:
手柄
"tconstruct:handle":手柄面板
"durability":耐久系数
"miningSpeed":挖掘速度系数
"attackSpeed":攻击速度系数
"attackDamage":攻击伤害系数
顶端
"tconstruct:head":顶端面板
"durability":耐久
"miningSpeed":挖掘速度
"harvestTier":采掘等级
"attack":攻击伤害
弓臂
"tconstruct:limb":弓臂面板
"durability":耐久
"drawSpeed":拉弓速度
"velocity": :初速度
"accuracy": 精确度
弓把
"tconstruct:grip":弓把面板
"durability":耐久系数
"accuracy":精确度
"meleeAttack":攻击伤害
假如你想要一个部件只能做近战?那就可以把弓臂和弓把删除,想只能做远程同理
材料特性
在你的traits文件夹下创建一个与之前名字一样的.json文件
特性可以填写你想要的任何特性,不限数量,附属的也可以(前提是你装了相对应的附属)
这里我以工匠匠心的晶态为例
{
"default": [
{
"name": "tinkers_ingenuity:crystalline",
"level": 1
}
]
}
"name":特性的注册名
"level":特性的等级
如果你按照前面的一步一步做了的话,那么大概率在对应的等级分区可以找到你所写的材料,但是此时的材料只有空戳戳一个面板,那么如何才能让它变成一个正常能够使用的匠魂材料呢?请看下文。
第二部分:材料的制作——部件制作台合成及浇筑
首先就是进行部件合成台合成,这个合成是与你的修复配方绑定的,不需要重新写一个修复配方的文件,如果你不想进行部件合成台合成,只想要修复的话可以将前文中所提到的“craftable”后的“true”改成“false”。
修复/部件合合成台合成
下图则为修复/部件合合成台合成的文件路径
在你的fix文件夹(这个文件夹可以改为任何名字,除了中文)下创建一个.json文件,无需与前面的名字一样,只要你能够分清楚就可以。(此后我若无特殊说明皆为与之前名字一样的.json文件)
{
"type": "tconstruct:material",
"ingredient": {
"tag":"ae2:all_certus_quartz"
},
"value": 1,
"needed": 1,
"material": "kubejs:certus_quartz"
"leftover": {
"tag": "graveyard:dark_iron_ingot"
}
}
那么这些需要注意的前缀如下:
"tag":修复/制作所需的物品tag,如无tag则改为"item"。
"value":相当于物品的“价值”,修复/制作后返还的物品数量由这个管理。
"needed":修复/制作部件所需物品的数量。
"material":前文你所注册的材料,格式为"kubejs:xxx",“xxx”则为前文你所注册的文件名。
"leftover":修复/制作后返还的相应物品。
熔融浇筑类材料合成
下图则为熔融/浇筑合成的文件路径
在此路径之下,你可以创建一个.js文件(名称无需与之前的json文件相同),接着输入以下代码
let fm = (event, modf, modm, fname, mname, amount, Tem) => {
event.custom(
{
"type": "tconstruct:material_melting",
"input": modm + ":" + mname,
"temperature": Tem,
"result": {
"fluid": modf + ":molten_" + fname,
"amount": amount
}
})
event.custom(
{
"type": "tconstruct:material_fluid",
"fluid": {
"name": modf + ':molten_' + fname,
"amount": amount
},
"temperature": Tem,
"output": modm + ':' + mname
})
}
//use it like=>fm(event,流体mod,材料mod,流体名字,材料名字,一锭数量,温度)
onEvent("recipes", event => {
//在此处输入上一个注释中的内容,具体内容按需替换
//特别感谢MC百科用户“一个锇粉”所提供的代码
})
如果你按照上述步骤完成代码的话,此时你的自创材料已经拥有面板且能够合成了,但是此材料仍然没有它的颜色,十分的难看,那么如何才可以让材料自带颜色呢?下一章节可以帮助你。
第三部分:使用匠魂自带着色器进行材料的简单着色
在下图路径创建一个名为“kubejs”的文件夹
接着在第二个kubejs文件夹之内创建一个名为“tinkering”的文件夹
再然后创建一个名为“materials”的文件夹
然后创建一个新的json文件,在里面输入以下代码
对于仅有绑定结及弓弦材料
{
"color": "BDA07F",
"luminosity": 0,
"generator": {
"transformer": {
"type": "tconstruct:recolor_sprite",
"color_mapping": {
"type": "tconstruct:grey_to_color",
"palette": [
{
"grey": 0,
"color": "FF000000"
},
{
"grey": 63,
"color": "FF3D1C10"
},
{
"grey": 102,
"color": "FF542716"
},
{
"grey": 140,
"color": "FF893B25"
},
{
"grey": 178,
"color": "FF9E492A"
},
{
"grey": 216,
"color": "FFC65C35"
},
{
"grey": 255,
"color": "FFD76B43"
}
]
}
},
"supportedStats": [
"tconstruct:repair_kit",
"tconstruct:extra"
],
"ignoreMaterialStats": false
}
}
对于正常材料
{
"fallbacks": [
"metal"
],
"color": "080808",
"luminosity": 0,
"generator": {
"transformer": {
"type": "tconstruct:recolor_sprite",
"color_mapping": {
"type": "tconstruct:grey_to_color",
"palette": [
{ "grey": 0, "color": "FFF1FEFF"},
{ "grey": 63, "color": "FF678BAB"},
{ "grey": 102, "color": "FF7DA2C4"},
{ "grey": 140, "color": "FFDFEDFB"},
{ "grey": 178, "color": "FFAFCFF2"},
{ "grey": 216, "color": "FFBADBFF"},
{ "grey": 255, "color": "FFB7DFE2"}
]
}
},
"supportedStats": [
"tconstruct:head",
"tconstruct:handle",
"tconstruct:extra",
"tconstruct:repair_kit",
"tconstruct:limb",
"tconstruct:grip",
"tconstruct:plate"
],
"ignoreMaterialStats": false
}
}
在这两个代码之中,唯二需要注意的只有两个前缀:
"colour":你所需颜色的16进制颜色码
"fallbacks":部件的视觉样式。“metal”为金属样式,"crystal"为宝石样式。
后文
如果你认真按照上述写的做了的话,那么恭喜你,完成了你的第一个使用kubejs完成的匠魂材料。即使kubejs部分只在熔融及浇筑上使用到了。希望你能在看了此教程之后拥有了制作匠魂整合包的动力
特此感谢MC百科用户dddddsj、爬行中的苦力怕、一个锇粉、米子114514啊、吕不才等对我开发路程上多多少少的帮助。以及所有匠魂3玩家对匠魂3的热爱,正是你们让匠魂3的社区生态一步步壮大。