создал новый предмет и в SetDefaults закинул строчку:
Main.itemFrame[item.type] = 3;
сам код выглядит так:
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Bug_Error.Items
{
public class Test_Bug : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Test_Bug");
Tooltip.SetDefault("This is a modded sword.");
}
public override void SetDefaults()
{
Main.itemFrame[item.type] = 3; //Проблемная строка
item.damage = 50;
item.melee = true;
item.width = 64;
item.height = 64;
item.useTime = 20;
item.useAnimation = 20;
item.useStyle = 1;
item.knockBack = 6;
item.value = 10000;
item.rare = 2;
item.UseSound = SoundID.Item1;
item.autoReuse = true;
}
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);
recipe.AddIngredient(ItemID.DirtBlock, 1);
recipe.AddTile(TileID.WorkBenches);
recipe.SetResult(this);
recipe.AddRecipe();
}
}
}
Искал во многих источниках и нашел максимум инфу по анимации для NPC и тем, не более. Вдруг кто знает, подскажите, пожалуйста.
Анимация предметов осуществляется путем подключения дополнительной библиотеки using Terraria.DataStructures;
После этого создается метод
public override DrawAnimation GetAnimation()
{
return new DrawAnimationVertical(20,6);
}
Первое значение в DrawAnimationVertical
- количество тиков на фрейм, второе значение - количество кадров в изображении использующимся для предмета
В более новых версиях, по информации из форума посвященного tModLoader, есть такой код
public override void FindFrame(int frameHeight)
{
npc.frameCounter++; // count ingame ticks before next npc frame update
if (npc.frameCounter >= 8) // if it's time to update npc frame
{
npc.frameCounter = 0; // reset ticks counter
frame++; // move frame
frame %= 6; // but keep it in range between 0 and 5
npc.frame.Y = frameHeight * (frame + rageMode ? 6 : 0); // if boss in the second phase, move frame to the second area and apply npc frame
}
}
8 -- interval between frame updates.(интервал между фреймами)
6 -- number of frames for each phase.(число фреймов на каждую фазу)
rageMode -- bool variable to track boss phase. (переменная, для отслеживания фазы босса)
Данный код используется для Глаза-Ктулху, у которого две фазы.
Также необходимо объявить переменную в классе, для работы выше представленного кода int frame = 0;
Виртуальный выделенный сервер (VDS) становится отличным выбором
В движок Unity встроен метод ScreenToWorldPoint(), который координаты точки на экране конвертирует в координаты соответствующей точки на карте(сцене/мире)Есть...
Опыт программирования небольшой, помогите, пожалуйста, разобратьсяИмеется интерфейс IPinHelper с методом PinFavoriteItem: