Clase ModItem
Clase base para crear objetos, armas, herramientas y accesorios personalizados.
Descripción General
La clase ModItem se utiliza para definir objetos personalizados en tModLoader. Al heredar esta clase, puedes crear armas, accesorios, consumibles y cualquier otro tipo de objeto. Consulta ejemplos prácticos en nuestro tutorial de creación de objetos.
Espacio de Nombres
Terraria.ModLoader
Métodos Comunes
SetDefaults()
Establece las propiedades del objeto como daño, tamaño, tiempo de uso, etc.
public override void SetDefaults()
{
Item.damage = 50;
Item.width = 40;
Item.height = 40;
Item.useTime = 20;
}
AddRecipes()
Define las recetas de fabricación para tu objeto.
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.Wood, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.Register();
}
Ejemplos Avanzados de Objetos
Crear un Arma a Distancia
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
}
}
Crear un Objeto Consumible
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
}
}
Crear un Accesorio
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
}
}
Referencia Completa de Propiedades
| Propiedad | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| damage | int | Valor de daño base | 50 |
| useTime | int | Fotogramas entre usos | 20 |
| knockBack | float | Fuerza de retroceso | 6.5f |
| autoReuse | bool | Uso automático al mantener | true |
| maxStack | int | Tamaño máximo de pila | 999 |
| consumable | bool | Se consume al usar | true |