Classe ModItem
Classe base para criar itens, armas, ferramentas e acessórios personalizados.
Visão Geral
A classe ModItem é usada para definir itens personalizados no tModLoader. Ao estender esta classe, você pode criar armas, acessórios, consumíveis e qualquer outro tipo de item. Veja exemplos práticos em nosso tutorial de Criação de Itens.
Namespace
Terraria.ModLoader
Métodos Comuns
SetDefaults()
Define propriedades do item como dano, tamanho, tempo de uso, etc.
public override void SetDefaults()
{
Item.damage = 50;
Item.width = 40;
Item.height = 40;
Item.useTime = 20;
}
AddRecipes()
Defina receitas de fabricação para seu item.
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.Wood, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.Register();
}
Exemplos Avançados de Itens
Criando uma Arma de Longo Alcance
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
}
}
Criando um Item Consumível
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
}
}
Criando um Acessório
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
}
}
Referência Completa de Propriedades
| Propriedade | Tipo | Descrição | Exemplo |
|---|---|---|---|
| damage | int | Valor base de dano | 50 |
| useTime | int | Frames entre usos | 20 |
| knockBack | float | Força de repulsão | 6.5f |
| autoReuse | bool | Ataque automático ao segurar | true |
| maxStack | int | Tamanho máximo da pilha | 999 |
| consumable | bool | Consumido ao usar | true |