using System; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace BlueWater.Uis { public class ManualCocktailButton : MonoBehaviour, ISelectHandler, IDeselectHandler { [field: SerializeField] public Button Button { get; private set; } [field: SerializeField] public Image Image { get; private set; } [field: SerializeField] public Image SelectedImage { get; private set; } private Action _onSelectedAction; private void Start() { if (EventSystem.current.currentSelectedGameObject == gameObject) return; SelectedImage.enabled = false; } private void OnDestroy() { _onSelectedAction = null; } public void OnSelect(BaseEventData eventData) { SelectedImage.enabled = true; _onSelectedAction?.Invoke(this); } public void OnDeselect(BaseEventData eventData) { SelectedImage.enabled = false; } public void SetImage(Sprite sprite) => Image.sprite = sprite; public void AddSelectedAction(Action selectedAction) { _onSelectedAction += selectedAction; } } }