using System; using BriarQueen.Data.Identifiers; using UnityEngine; using UnityEngine.UI; namespace BriarQueen.UI.Codex { public class CodexCategoryButton : MonoBehaviour { [SerializeField] private Button _button; [SerializeField] private Sprite _defaultBackground; [SerializeField] private Sprite _selectedBackground; public CodexType Category { get; private set; } private void Awake() { if (_button != null) _button.onClick.AddListener(HandleClicked); } private void OnDestroy() { if (_button != null) _button.onClick.RemoveListener(HandleClicked); } public event Action OnCategoryClicked; public void Initialize(CodexType category) { Category = category; SetSelected(false); } public void SetSelected(bool selected) { if (_selectedBackground != null) _button.image.sprite = selected ? _selectedBackground : _defaultBackground; } private void HandleClicked() { OnCategoryClicked?.Invoke(Category); } } }