using AZTECHWB.Extensions; using System; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace AZTECHWB.UI { public class LibraryButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler { public Machine machine; public event Action onClickButton; private TMP_Text buttonName; private Image background; private Image PreviewImage; private Image Image_Selected; public void SettingButton(Machine machine) { this.machine = machine; buttonName = transform.GetComponentInChildren(); background = transform.GetComponent(); transform.TryGetComponentInChildren(nameof(PreviewImage), out PreviewImage); transform.TryGetComponentInChildren(nameof(Image_Selected), out Image_Selected); buttonName.SetText(machine.machineName); PreviewImage.sprite = machine.previewImage; } public void OnSelected() { buttonName.color = new Color32(251, 251, 251, 255); Image_Selected.gameObject.SetActive(true); } public void OnDeselected() { buttonName.color = new Color32(15, 17, 23, 255); Image_Selected.gameObject.SetActive(false); } public void OnPointerEnter(PointerEventData eventData) { background.color = new Color32(255, 255, 255, 255); } public void OnPointerExit(PointerEventData eventData) { background.color = new Color32(255, 255, 255, 204); } public void OnPointerClick(PointerEventData eventData) { onClickButton?.Invoke(this); } } }