构建特性

导包

import mods.contenttweaker.tconstruct.TraitBuilder;

构建器

记得导包!

var myTrait as TraitBuilder = TraitBuilder.create(identifier as string);

可自定义参数

字段

值类型

描述

identifier

string

特性名称

color

int

特性显示的颜色

maxLevel

int

特性最高等级 (默认为 1)

hidden

bool

是否隐藏此特性

countPerLevel

int

设置升级到下一级需要多少 countPerLevel

localizedDescription

string

本地化描述

localizedName

sting

本地化名称

方法

方法

描述

addItem(ingredient as IIngredient, amountNeeded as int, amountMatched as int)

使 ingredient 可以在工具装配台为匠魂工具添加此特性, amountNeeded 为需求数量, amountMatched 为匹配数量, 后两个参数选填, 默认为 1

removeItem(itemStack as IItemStack)

使 itemStack 不能制作此特性

注册特性

最后记得调用一下 register 零参方法, 否则游戏内会无反应

本地化

本地化为上文的 localizedDescriptionlocalizedName

实例

#loader contenttweaker //别忘加这行否则无法添加特性
import mods.contenttweaker.tconstruct.TraitBuilder; // 导入 TraitBuilder 包

var testTrait = TraitBuilder.create("kindlich_test");
testTrait.color = 0xffaadd;
testTrait.maxLevel = 100;
testTrait.countPerLevel = 20;
testTrait.addItem(<item:minecraft:iron_pickaxe>); // <item:minecraft:iron_pickaxe> 为铁镐
testTrait.addItem(<item:minecraft:iron_block>, 4, 2); // <item:minecraft:iron_block> 为铁块
testTrait.localizedName = "实例特性";
testTrait.localizedDescription = "独创的特性!";
//此函数将在高级运用讲解
testTrait.afterHit = function(thisTrait, tool, attacker, target, damageDealt, wasCrit, wasHit) {
    if(!attacker.world.remote) {
        attacker.heal(damageDealt);
    }
};
testTrait.register();

上文函数内的代码为什么要用 world.remote ? 看 !world.remote保证事件只在服务端处理

最后更新于