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 |