فئة 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 |