2026-03-16 20:43:53 +01:00
|
|
|
using System.Linq;
|
|
|
|
|
using Microsoft.Xna.Framework;
|
|
|
|
|
using MonoGameLibrary.Graphics;
|
|
|
|
|
|
2026-03-22 18:31:05 +01:00
|
|
|
namespace ONDClient.GUI;
|
2026-03-16 20:43:53 +01:00
|
|
|
|
|
|
|
|
public class EnemyUIElement : UIElement {
|
|
|
|
|
private 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);
|
|
|
|
|
}
|
|
|
|
|
}
|