using System.Linq; using Microsoft.Xna.Framework; using MonoGameLibrary.Graphics; namespace ONDClient.GUI; public class EnemyUIElement : UIElement { private readonly int unlitTexturesId; private bool currentlyLit = true; public EnemyUIElement(TextureRegion litTexture, TextureRegion unlitTexture, Point position, int drawPriority = 0) : base([litTexture, unlitTexture], position, drawPriority) { unlitTexturesId = 1; } public EnemyUIElement(TextureRegion[] litTextures, TextureRegion[] unlitTextures, Point position, int drawPriority = 0) : base(litTextures.Concat(unlitTextures).ToArray(), position, drawPriority) { unlitTexturesId = litTextures.Length; } public void SetTexture(bool lit, int id) { currentlyLit = lit; base.SetTexture(lit ? id : id + unlitTexturesId); } public override void SetTexture(int id) { base.SetTexture(currentlyLit ? id : id + unlitTexturesId); } public void SetTexture(bool lit) { if(lit == currentlyLit) return; currentlyLit = lit; SetTexture(lit ? CurrentTextureId - unlitTexturesId : CurrentTextureId); } }