eye-therapy-2 / Assets / Scripts / UI / CounterEditable.cs
CounterEditable.cs
Raw
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class CounterEditable : MonoBehaviour, IListener
{
    [SerializeField] private TMP_Text countDisplay = null;
    [SerializeField] private TMP_InputField maxValue = null;
    [SerializeField] private EVENT_TYPE tickEvent = EVENT_TYPE.DUMMY;

    private void Start()
    {
        EventManager.Instance.AddListener(tickEvent, this);
    }

    public void OnMaxValueTyped(string text)
    {
        int val = 0;
        if (int.Parse(text) <= int.Parse(countDisplay.text))
        {
            val = int.Parse(countDisplay.text) + 1;
            maxValue.text = val.ToString();
        }
        else
        {
            val = int.Parse(text);
        }
        EventManager.Instance.PostNotification<int>(EVENT_TYPE.ON_FIRE_MAX_CHANGED, this, val);
    }

    public void OnEvent<T>(EVENT_TYPE eventType, Component Sender, T param = default)
    {
        if(eventType == tickEvent)
        {
            countDisplay.text = (int.Parse(countDisplay.text) + 1).ToString();
        }
    }

    public void UpdateMaxValue(int value)
    {
        maxValue.text = value.ToString();
    }
}