Enchantment Builder
Link to enchantment-builder
Using this package you can create custom enchantments for tools, weapons and probably everything else.
Импорт класса
Link to импорт-класса
It might be required for you to import the class if you encounter any issues (like casting an Array), so better be safe than sorry and add the import.
import mods.contenttweaker.enchantments.EnchantmentBuilder;
Creating an Enchant
Link to creating-an-enchant
First and foremost you will need to create a Material Builder.
This can be done using the static create method.
ZenScript Copy//mods.contenttweaker.enchantments.EnchantmentBuilder.create(String name);
val myChant = mods.contenttweaker.enchantments.EnchantmentBuilder.create("kindlich_chant");
Remember, that you will need to register the enchantment after you've done your changes.
This can be done with the register
method which will return a IEnchantmentDefinition of the new enchantment.
ZenScript CopymyChant.register();
Свойства
Link to свойства
You can set and get these properties using myChant.name
.
name | Тип |
---|---|
name name | Тип string |
name allowedOnBooks | Тип bool |
name applicableSlots | Тип IEntityEquipmentSlot[] (default: empty) |
name curse | Тип bool |
name domain | Тип string (default: "contenttweaker") |
name maxLevel | Тип int (default: 1) |
name minLevel | Тип int (default: 1) |
name rarity | Тип string (use the custom methods below) |
name treasure | Тип bool |
name type | Тип string (use the custom methods below) |
Calculated Properties
Link to calculated-properties
You can set and get these properties functions.
name | parameters | Возвращаемый тип |
---|---|---|
name canApply | parameters IEnchantmentDefinition thisEnchantment, IItemStack item | Возвращаемый тип bool |
name canApplyAtEnchantmentTable | parameters IEnchantmentDefinition thisEnchantment, IItemStack item | Возвращаемый тип bool |
name canApplyTogether | parameters IEnchantmentDefinition thisEnchantment, IEnchantmentDefinition other | Возвращаемый тип bool |
name calcDamageByCreature | parameters IEnchantmentDefinition thisEnchantment, int level, String creatureType | Возвращаемый тип float |
name calcEnchantabilityMin | parameters IEnchantmentDefinition thisEnchantment, int level | Возвращаемый тип int |
name calcEnchantabilityMax | parameters IEnchantmentDefinition thisEnchantment, int level | Возвращаемый тип int |
name calcModifierDamage | parameters IEnchantmentDefinition thisEnchantment, int level, IDamageSource damageSource | Возвращаемый тип int |
name calcTranslatedName | parameters IEnchantmentDefinition thisEnchantment, int level | Возвращаемый тип string |
name | parameters | Возвращаемый тип |
name onEntityDamaged | parameters IEnchantmentDefinition thisEnchantment, IEntityLivingBase user, IEntity target, int level | Возвращаемый тип void |
name onUserHurt | parameters IEnchantmentDefinition thisEnchantment, IEntityLivingBase user, IEntity attacker, int level | Возвращаемый тип void |
Rarity and Type
Link to rarity-and-type
Use these methods to be instantly notified if you made a typo.
ZenScript Copy//Rarities
myChant.setRarityCommon()
myChant.setRarityUncommon()
myChant.setRarityRare()
myChant.setRarityVeryRare()
//Types
myChant.setTypeAll()
myChant.setTypeArmor()
myChant.setTypeFeed()
myChant.setTypeLegs()
myChant.setTypeChest()
myChant.setTypeHead()
myChant.setTypeWeapon()
myChant.setTypeDigger()
myChant.setTypeFishingRod()
myChant.setTypeBreakable()
myChant.setTypeBow()
myChant.setTypeWearable()
Пример
Link to пример
ZenScript Copy#loader contenttweaker
val builder = mods.contenttweaker.enchantments.EnchantmentBuilder.create("kindlich_chant");
builder.applicableSlots = [mainHand, offhand, feet, legs, chest, head];
builder.setTypeAll();
builder.setRarityVeryRare();
builder.calcModifierDamage = function(thisEnch, level, damageSource){
return level;
};
builder.onUserHurt = function(thisEnch, entity, attacker, level) {
entity.health = entity.maxHealth;
if(entity instanceof crafttweaker.player.IPlayer) {
val player as crafttweaker.player.IPlayer = entity;
player.foodStats.addStats(100, 10.0f);
}
};
builder.register();
builder.name = "other_chant";
builder.domain = "definitely_not_cot";
builder.calcModifierDamage = null;
builder.onUserHurt = function(thisEnch, player, attacker, level) {
player.sendMessage("EARNED IT!");
};
builder.register();