using UnityEngine;
using UnityEngine.InputSystem;

public class GameManager : MonoBehaviour
{
    [SerializeField] private PlayerInput _controls;
    [SerializeField, ReadOnly] private GameState _state;

    public static GameManager Instance { get; private set; }

    private void Awake()
    {
        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
            _state = GameState.InGame;
        }
    }

    public void TriggerGameOver(int dimensionID)
    {
        if (_state == GameState.Loss) return;
        
        // Stop controls
        _controls.SwitchCurrentActionMap("UI");
        
        // Show Game Over Message
        Debug.Log("Game Over: Dimension " + dimensionID + " has been destroyed");
        
        // Show Options (Return to Menu / Retry)
        _state = GameState.Loss;
    }
}

public enum GameState
{
    InGame,
    Loss
}