前言
1.该教程应当也同样适用于Tetra全家桶系列的其他模组。
2.此外基本的数据包知识,主要是数据包的文件结构,这里就不复述了。
3.Tetra自己定义的名词,如硬度等不加以解释。
4.教程只是讲解如何自行配置,不是词典,不会将Tetra乃至附属的全部部件命名方式讲解一遍,但是就目前而言,所有Tetra全家桶的格式都符合教程的分析,学到方法后可以根据需求自行查找;授人以鱼不如授人以渔,Tetra的附属会越来越多的,要做出更好的整合包,学会方法更重要。
正文
首先来到\data\tetra,即在tetra这个命名空间中进行配置,不要用自己的命名空间,我们关注这三个文件夹,按照方便理解的顺序介绍
1.materials文件夹
这是我们配置材料的地方,我们能在这里修改、创建材料的数值数据(比如耐久、韧性、密度和硬度)和强化属性,以及使用的材料和所需工具等级等等,打开文件夹内
有以下若干文件夹,wood代表木质材料,metal代表金属...这些信息指的是Tetra全息球中材料的分类。
打开其中的Json文件,这是我们主要配置的文件,这里以VVAddon模组自带的测试物品为例
{
"key": "refine_ia", //键是唯一的,取名为方便理解的ID即可
"category": "metal", //材料属于什么类型,这决定了该材料能用于制作哪些部件
"primary": 8, //硬度
"secondary": 2.8, //密度
"tertiary": 3, //韧性
"durability": 850, //耐久
"integrityCost": 2, //消耗的完整度
"integrityGain": 6, //获得的完整度
"magicCapacity": 118, //魔法容量
"toolLevel": "minecraft:diamond", //工具的采收等级
"toolEfficiency": 7.8, //工具效率
"improvements":{ //强化属性
"vvaddon/nightvisioneffect": 0, //键是指improvements文件夹中的位置,如该条目指代的是/improvements/vvaddon/中的nightversioneffect.json文件 ,后面的数字没用,填0即可
"vvaddon/speedeffect": 0,
"vvaddon/strengtheffect": 0,
"vvaddon/hasteeffect": 0,
"vvaddon/bloodfull": 0,
"vvaddon/bloodlow": 0,
"vvaddon/height": 0,
"vvaddon/sniper": 0,
"vvaddon/combo": 0,
"vvaddon/hitaway": 0,
"vvaddon/charge": 0,
"vvaddon/evil": 0,
"vvaddon/honor": 0,
"vvaddon/homology": 0
},
"tints": { //材质颜色 FFD700是土黄色
"glyph": "FFD700",
"texture": "FFD700"
},
"textures": [ //材质类型,不过好像没什么效果
"metal",
"default"
],
"material": { //制作时使用的材料,这里使用的VVAddon模组中注册名为"vvaddon:refine_ia"的物品
"items": ["vvaddon:refine_ia"]
},
"requiredTools": { //制作时所需要的工具和等级,这里需要钻石级的锤子,也可以使用斧子axe_dig等
"hammer_dig": "minecraft:diamond"
}
}
这里再次强调强化属性,键是指improvements文件夹中的位置,如 "vvaddon/nightvisioneffect": 0 指代的是/improvements/vvaddon/中的nightversioneffect.json文件 ,后面的数字没用,填0即可
我们可以自行创造一个新的key,使用其他mod的material来实现与其他mod的联动
如果我们想要加入一些其他Tetra附属的强化属性,也可以去查看其他Tetra附属的数据包
这是示例Json对应的材料
2.modules文件夹
该文件夹决定了强化属性可以在什么工具上生效,打开文件夹
double指双头工具,single指单头工具,sword指剑,打开sword文件夹
这代表了剑的五个部件,其他附属,例如AoF的部件可以自行翻找数据包。
打开Json文件,
replace填false即可,因为我们的修改在tetra的命名空间下进行,所有同名文件都是覆盖作用,这里我们只想增加属性而非移除原本的属性,因此填false
improvements列表里是可以在该部件生效的强化属性
综上,当且仅当materials中对应材料的Json文件的improvements项 & modules中对应部件的Json文件的improvements项 均含有该强化属性时,tetra锻造产物才会拥有该强化属性
这里我们拿tetra原版的大剑和AoF的行刑剑示例说明,同样的材料,因为AoF对应部件没有加入modules文件夹,强化属性无效。
3.improvements文件夹
这个文件夹几乎不会被修改,但是为了读者能完整理解tetra的运行逻辑,这里做简单介绍。
来到\data\tetra\improvements\vvaddon内,
我们发现每一个强化属性都对应一个json文件,该文件的作用是为我们给材料配置强化属性的json与代码实现提供一个桥梁,
[
{
"key": "vvaddon/nightvisioneffect", //即materials中improvements项对应的键
"effects": {
"vvaddon:nightvisioneffect": 1 //代码中获取的数据,一般都写1
}
}
]
这里贴出代码
public static final ItemEffect nightvisioneffect = ItemEffect.get("vvaddon:nightvisioneffect");
final int level_nightvisioneffect = item.getEffectLevel(heldStack, nightvisioneffect); //这里就获取到1
if(level_nightvisioneffect > 0)NightVisionProcedure.execute(player); //大于0就给予夜视效果
以上就是教程的全部内容,有任何困惑欢迎评论区提问,有不严谨的地方也敬请指教,有任何问题也可加QQ群602895142