前言

1.该教程应当也同样适用于Tetra全家桶系列的其他模组。

2.此外基本的数据包知识,主要是数据包的文件结构,这里就不复述了。

3.Tetra自己定义的名词,如硬度等不加以解释。

4.教程只是讲解如何自行配置,不是词典,不会将Tetra乃至附属的全部部件命名方式讲解一遍,但是就目前而言,所有Tetra全家桶的格式都符合教程的分析,学到方法后可以根据需求自行查找;授人以鱼不如授人以渔,Tetra的附属会越来越多的,要做出更好的整合包,学会方法更重要。

正文

首先来到\data\tetra,即在tetra这个命名空间中进行配置,不要用自己的命名空间,我们关注这三个文件夹,按照方便理解的顺序介绍

自行配置材料强化属性教程-第1张图片

1.materials文件夹

这是我们配置材料的地方,我们能在这里修改、创建材料的数值数据(比如耐久、韧性、密度和硬度)和强化属性,以及使用的材料和所需工具等级等等,打开文件夹内

自行配置材料强化属性教程-第2张图片

有以下若干文件夹,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附属的数据包

自行配置材料强化属性教程-第3张图片这是示例Json对应的材料

2.modules文件夹

该文件夹决定了强化属性可以在什么工具上生效,打开文件夹自行配置材料强化属性教程-第4张图片

double指双头工具,single指单头工具,sword指剑,打开sword文件夹自行配置材料强化属性教程-第5张图片

这代表了剑的五个部件,其他附属,例如AoF的部件可以自行翻找数据包。

打开Json文件,

自行配置材料强化属性教程-第6张图片replace填false即可,因为我们的修改在tetra的命名空间下进行,所有同名文件都是覆盖作用,这里我们只想增加属性而非移除原本的属性,因此填false

improvements列表里是可以在该部件生效的强化属性

综上,当且仅当materials中对应材料的Json文件的improvements项 & modules中对应部件的Json文件的improvements项 均含有该强化属性时,tetra锻造产物才会拥有该强化属性

这里我们拿tetra原版的大剑和AoF的行刑剑示例说明,同样的材料,因为AoF对应部件没有加入modules文件夹,强化属性无效。

自行配置材料强化属性教程-第7张图片自行配置材料强化属性教程-第8张图片


3.improvements文件夹

这个文件夹几乎不会被修改,但是为了读者能完整理解tetra的运行逻辑,这里做简单介绍。

来到\data\tetra\improvements\vvaddon内,自行配置材料强化属性教程-第9张图片

我们发现每一个强化属性都对应一个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就给予夜视效果



以上就是教程的全部内容,有任何困惑欢迎评论区提问,有不严谨的地方也敬请指教