Kelas ModItem

Kelas dasar untuk membuat item, senjata, alat, dan aksesori kustom.

Ringkasan

Kelas ModItem digunakan untuk mendefinisikan item kustom di tModLoader. Dengan memperluas kelas ini, Anda dapat membuat senjata, aksesori, barang habis pakai, dan jenis item lainnya. Lihat contoh praktis di tutorial Membuat Item kami.

Namespace

Terraria.ModLoader

Metode Umum

SetDefaults()

Atur properti item seperti damage, ukuran, waktu penggunaan, dll.

public override void SetDefaults()
{
    Item.damage = 50;
    Item.width = 40;
    Item.height = 40;
    Item.useTime = 20;
}

AddRecipes()

Tentukan resep crafting untuk item Anda.

public override void AddRecipes()
{
    Recipe recipe = CreateRecipe();
    recipe.AddIngredient(ItemID.Wood, 10);
    recipe.AddTile(TileID.WorkBenches);
    recipe.Register();
}

Contoh Item Lanjutan

Membuat Senjata Jarak Jauh

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
    }
}

Membuat Item Habis Pakai

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
    }
}

Membuat Aksesori

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
    }
}

Referensi Properti Lengkap

Properti Tipe Deskripsi Contoh
damage int Nilai damage dasar 50
useTime int Frame antar penggunaan 20
knockBack float Kekuatan knockback 6.5f
autoReuse bool Otomatis ayun saat ditekan true
maxStack int Ukuran tumpukan maksimal 999
consumable bool Habis saat digunakan true

Sumber Daya Eksternal