Класс 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

Внешние ресурсы