using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;

public class GameManager : MonoBehaviour
{
    [Header("Interfejs")]
    public GameObject startUI;       // Twój Canvas z napisem

    [Header("Skrypty Gracza")]
    public PlayerMove playerMove;    // Skrypt poruszania fasolką
    public MouseLook mouseLook;      // Skrypt obracania kamerą

    [Header("Moduł MQTT")]
    public MqttCollector mqttCollector; // Skrypt MQTTnet

    private bool hasStarted = false;

    void Start()
    {
        // 1. Upewnij się, że na starcie wszystko jest zablokowane
        if (playerMove != null) playerMove.enabled = false;
        if (mouseLook != null) mouseLook.canLook = false;

        // 2. Kursor musi być widoczny i wolny, żeby gracz wiedział, że gra jeszcze nie ruszyła
        Cursor.lockState = CursorLockMode.None;
        Cursor.visible = true;

        // 3. Czekamy na "Any Key" (dowolny przycisk klawiatury, myszy lub kontrolera VR)
        InputSystem.onAnyButtonPress.CallOnce(ctrl => StartGame());

        Debug.Log("GameManager: Oczekiwanie na start...");
    }

    void StartGame()
    {
        if (hasStarted) return;
        hasStarted = true;

        // 1. Ukrywamy UI
        if (startUI != null)
            startUI.SetActive(false);

        // 2. Odblokowujemy ruch i kamerę
        if (playerMove != null)
            playerMove.enabled = true;

        if (mouseLook != null)
            mouseLook.EnableLooking(); // Ta funkcja schowa też kursor

        // 3. Odpalamy zbieranie danych MQTT
        if (mqttCollector != null)
        {
            mqttCollector.BeginSession();
        }

        Debug.Log("<color=green>SYSTEM: Gra i logowanie danych uruchomione!</color>");
    }
}