52 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |