Класс ModItem
Базовый класс для создания пользовательских предметов, оружия, инструментов и аксессуаров.
Обзор
Класс ModItem используется для определения пользовательских предметов в tModLoader. Наследуя этот класс, вы можете создавать оружие, аксессуары, расходуемые материалы и любые другие типы предметов. Практические примеры смотрите в нашем руководстве по созданию предметов.
Пространство имён
Terraria.ModLoader
Основные методы
SetDefaults()
Установка свойств предмета: урон, размер, время использования и т.д.
public override void SetDefaults()
{
Item.damage = 50;
Item.width = 40;
Item.height = 40;
Item.useTime = 20;
}
AddRecipes()
Определение рецептов крафта для вашего предмета.
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.Wood, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.Register();
}
Продвинутые примеры предметов
Создание дальнобойного оружия
public class ExampleBow : ModItem
{
public override void SetDefaults()
{
Item.damage = 30;
Item.DamageType = DamageClass.Ranged;
Item.width = 16;
Item.height = 32;
Item.useTime = 25;
Item.useAnimation = 25;
Item.useStyle = ItemUseStyleID.Shoot;
Item.noMelee = true; // Don't deal melee damage
Item.knockBack = 2;
Item.value = Item.sellPrice(silver: 30);
Item.rare = ItemRarityID.Green;
Item.UseSound = SoundID.Item5;
Item.autoReuse = true;
Item.shoot = ProjectileID.WoodenArrowFriendly;
Item.shootSpeed = 10f;
Item.useAmmo = AmmoID.Arrow; // Uses arrows as ammo
}
}
Создание расходуемого предмета
public class ExamplePotion : ModItem
{
public override void SetDefaults()
{
Item.width = 20;
Item.height = 26;
Item.useStyle = ItemUseStyleID.DrinkLiquid;
Item.useAnimation = 15;
Item.useTime = 15;
Item.useTurn = true;
Item.UseSound = SoundID.Item3;
Item.maxStack = 30;
Item.consumable = true; // Item is consumed on use
Item.rare = ItemRarityID.Orange;
Item.value = Item.buyPrice(gold: 1);
Item.buffType = BuffID.Ironskin; // Grants buff
Item.buffTime = 5 * 60 * 60; // 5 minutes
}
}
Создание аксессуара
public class ExampleAccessory : ModItem
{
public override void SetDefaults()
{
Item.width = 24;
Item.height = 24;
Item.value = Item.sellPrice(gold: 1);
Item.rare = ItemRarityID.Orange;
Item.accessory = true; // Mark as accessory
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.moveSpeed += 0.15f; // +15% movement speed
player.jumpSpeedBoost += 1.5f; // Better jumps
player.GetDamage(DamageClass.Generic) += 0.08f; // +8% all damage
}
}
Полный справочник свойств
| Свойство | Тип | Описание | Пример |
|---|---|---|---|
| damage | int | Базовое значение урона | 50 |
| useTime | int | Кадры между использованиями | 20 |
| knockBack | float | Сила отбрасывания | 6.5f |
| autoReuse | bool | Автоатака при удержании | true |
| maxStack | int | Макс. размер стака | 999 |
| consumable | bool | Расходуется при использовании | true |