Files

52 lines
1.2 KiB
C#

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<CodexType> 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);
}
}
}