diff --git a/Content/Items/Materials/EnergyCore.cs b/Content/Items/Materials/EnergyCore.cs index 398c358..5b9f169 100644 --- a/Content/Items/Materials/EnergyCore.cs +++ b/Content/Items/Materials/EnergyCore.cs @@ -1,21 +1,54 @@ using Terraria.ID; using Terraria; using Terraria.ModLoader; +using Terraria.DataStructures; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using ReLogic.Content; +using System; +using Terraria.GameContent; using ForgottenWawiTech.Content.Rarities; namespace ForgottenWawiTech.Content.Items.Materials { public class EnergyCore : ModItem { + private const int TICKS_PER_FRAME = 12; + private const int FRAME_COUNT = 2; + + public override void SetStaticDefaults() + { + Main.RegisterItemAnimation(Type, new DrawAnimationVertical(TICKS_PER_FRAME, FRAME_COUNT)); + } public override void SetDefaults() { - Item.width = 20; - Item.height = 20; + Item.width = 64; + Item.height = 64; Item.maxStack = 9999; Item.rare = ModContent.RarityType(); Item.value = Item.buyPrice(gold: 50); } + public override bool PreDrawInWorld(SpriteBatch spriteBatch, Color lightColor, Color alphaColor, ref float rotation, ref float scale, int whoAmI) + { + Texture2D texture = Terraria.GameContent.TextureAssets.Item[Type].Value; + + // Protect against incorrect frame count + int frameHeight = texture.Height / Math.Max(1, FRAME_COUNT); + int frame = (int)((Main.GameUpdateCount / (ulong)Math.Max(1, TICKS_PER_FRAME)) % (ulong)Math.Max(1, FRAME_COUNT)); + + Rectangle source = new Rectangle(0, frame * frameHeight, texture.Width, frameHeight); + + Vector2 drawPos = Item.Center - Main.screenPosition; + Vector2 origin = new Vector2(source.Width / 2f, source.Height / 2f); + + // Use alphaColor for dropped items (includes item alpha), multiplied by light + Color drawColor = lightColor; + + spriteBatch.Draw(texture, drawPos, source, drawColor, rotation, origin, scale, SpriteEffects.None, 0f); + + return false; // we've handled the draw + } } } \ No newline at end of file diff --git a/Content/Items/Materials/EnergyCore.png b/Content/Items/Materials/EnergyCore.png index 9e0cf81..3cb5174 100644 Binary files a/Content/Items/Materials/EnergyCore.png and b/Content/Items/Materials/EnergyCore.png differ diff --git a/Content/Items/Materials/RGBAlloy.cs b/Content/Items/Materials/RGBAlloy.cs index 2d1211d..13bd349 100644 --- a/Content/Items/Materials/RGBAlloy.cs +++ b/Content/Items/Materials/RGBAlloy.cs @@ -20,7 +20,6 @@ namespace ForgottenWawiTech.Content.Items.Materials public override void SetStaticDefaults() { Main.RegisterItemAnimation(Type, new DrawAnimationVertical(TICKS_PER_FRAME, FRAME_COUNT)); - } public override void SetDefaults() diff --git a/SPRITES_TODO.md b/SPRITES_TODO.md index 993263f..427fbb4 100644 --- a/SPRITES_TODO.md +++ b/SPRITES_TODO.md @@ -132,8 +132,9 @@ Stick to 32x32 to 64x64 in my opinion - however can go up/down if needed - Niko - A cylinder shaped device (sort of like Ekko's time machine) to contain singularities - [ ] Controlled Singularity - See above, just with a singularity in -- [ ] Energy Core +- [x] Energy Core - A compact, circular power source. Imagine a small, futuristic fusion reactor. + - Completed by Neptune - [ ] Fallen Angel Feather (dev boss material) - A feather from Noctis's wings, imbued with celestial energy. - [x] Half Eaten Fish (dev boss material)