Icon.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using Microsoft.Xna.Framework;
  2. namespace OpenVIII.IGMDataItem
  3. {
  4. public class Icon : Base, I_Data<Icons.ID>, I_Palette
  5. {
  6. #region Fields
  7. private byte _faded_palette = 2;
  8. private byte _palette = 2;
  9. #endregion Fields
  10. #region Properties
  11. public override bool Blink
  12. {
  13. get => base.Blink; set => base.Blink = value;
  14. }
  15. public Icons.ID Data { get; set; } = Icons.ID.None;
  16. public byte Faded_Palette
  17. {
  18. get => _faded_palette; set
  19. {
  20. if (value >= Memory.Icons.PaletteCount) value = 2;
  21. _faded_palette = value;
  22. }
  23. }
  24. public byte Palette
  25. {
  26. get => _palette; set
  27. {
  28. if (value >= Memory.Icons.PaletteCount) value = 2;
  29. _palette = value;
  30. }
  31. }
  32. #endregion Properties
  33. #region Methods
  34. public override void Draw()
  35. {
  36. if (Enabled)
  37. {
  38. Rectangle pos = Pos;
  39. if (OffsetAnchor != null)
  40. pos.Offset(OffsetAnchor);
  41. if (!Blink)
  42. Memory.Icons.Draw(Data, Palette, pos, Scale, Fade, Color);
  43. else
  44. {
  45. if (Faded_Palette != Palette)
  46. {
  47. Memory.Icons.Draw(Data, Palette, pos, Scale, Fade, Color);
  48. Memory.Icons.Draw(Data, Faded_Palette, pos, Scale, Fade * Blink_Amount * Blink_Adjustment, Color);
  49. }
  50. else
  51. {
  52. Memory.Icons.Draw(Data, Faded_Palette, pos, Scale, Fade * Blink_Adjustment, Color.Lerp(Color, Faded_Color, Blink_Amount));
  53. }
  54. }
  55. }
  56. }
  57. #endregion Methods
  58. }
  59. }