Учебник по API tModLoader для разработчиков 2025
Подробный учебник по API, охватывающий ModItem, ModNPC и продвинутые техники разработки с практическими примерами.
Обзор основных классов API
ModItem
Создание пользовательского оружия, инструментов, аксессуаров и расходных материалов
- • SetDefaults() - Define item properties
- • AddRecipes() - Create crafting recipes
- • UseItem() - Custom use behavior
ModNPC
Создание врагов, городских NPC и боссов с пользовательским ИИ
- • SetDefaults() - NPC stats and behavior
- • AI() - Custom artificial intelligence
- • ModifyNPCLoot() - Define drop tables
Пример: создание продвинутого магического оружия
public class AdvancedStaff : ModItem
{
public override void SetDefaults()
{
Item.damage = 75;
Item.DamageType = DamageClass.Magic;
Item.mana = 15;
Item.width = 40;
Item.height = 40;
Item.useTime = 30;
Item.useAnimation = 30;
Item.useStyle = ItemUseStyleID.Shoot;
Item.knockBack = 5;
Item.value = Item.buyPrice(gold: 10);
Item.rare = ItemRarityID.Pink;
Item.UseSound = SoundID.Item20;
Item.autoReuse = true;
Item.shoot = ModContent.ProjectileType<MagicBolt>();
Item.shootSpeed = 16f;
}
public override bool Shoot(Player player, EntitySource_ItemUse_WithAmmo source,
Vector2 position, Vector2 velocity, int type, int damage, float knockback)
{
// Shoot 3 projectiles in a spread
for (int i = 0; i < 3; i++)
{
Vector2 newVelocity = velocity.RotatedByRandom(MathHelper.ToRadians(15));
Projectile.NewProjectile(source, position, newVelocity, type, damage, knockback, player.whoAmI);
}
return false; // Don't shoot the default projectile
}
}
Это создаёт посох, который стреляет 3 магическими снарядами веером, демонстрируя продвинутую механику снарядов.
Лучшие практики API 2025
✅ Рекомендуется
- • Используйте ModContent.ItemType<T>() для ссылок на предметы
- • Реализуйте правильную проверку на null
- • Следуйте соглашениям об именовании C#
- • Тестируйте в мультиплеерной среде
- • Документируйте код комментариями
❌ Не рекомендуется
- • Не указывайте ID предметов жёстко
- • Не обращайтесь к Main.player напрямую в мультиплеере
- • Не игнорируйте предупреждения компилятора
- • Не используйте тяжёлые операции в AI()
- • Не изменяйте ванильный контент без необходимости
Продолжайте обучение
Этот учебник охватывает основы. Для полной документации по API и продвинутых примеров ознакомьтесь с этими ресурсами: