using UnityEngine;
using UnityEngine.Serialization;

public class GameStateController : MonoBehaviour
{
    [FormerlySerializedAs("ChangeToState")]
    [Tooltip("Selected state will be applied when the game starts or on the button press")]
    public GameState changeToState;

    private void Start() 
    {
        // Change game state to state selected in inspector when the game starts
        GameStateManager.Instance.ChangeState(changeToState);

        PlayerEvents.OnBallTouched += () => GameStateManager.Instance.ChangeState(GameState.Game);
    }

    private void OnApplicationQuit()
    {
        // Change game state back to entry state when exiting playing mode
        GameStateManager.Instance.ChangeState(GameState.Loading);
    }

    public void ChangeState(string newStateStr) => GameStateManager.Instance.ChangeState((GameState) System.Enum.Parse(typeof(GameState), newStateStr));
}