using UnityEngine;
using RetroDev.Controller;

public class ControllerExample : MonoBehaviour
{
    void Start()
    {
        // Detect connected controller
        bool controllerDetected = Controller.DetectConnectedController();

        if (controllerDetected)
        {
            Debug.Log("Controller detected!");

            // Example of getting Unity Input ID based on mapped button name
            string crossButtonName = Controller.GetButtonName("Cross");
            string circleButtonName = Controller.GetButtonName("Circle");
            string squareButtonName = Controller.GetButtonName("Square");
            string triangleButtonName = Controller.GetButtonName("Triangle");

            // The above will return the correct Joystick Button ID for the matching controller input below
            Debug.Log("Cross button name: " + crossButtonName);
            Debug.Log("Circle button name: " + circleButtonName);
            Debug.Log("Square button name: " + squareButtonName);
            Debug.Log("Triangle button name: " + triangleButtonName);
        }
        else
        {
            Debug.Log("No controller detected.");
        }
    }

    private void Update()
    {
        // Alternatively you can check for input the usual way
        if (Controller.DetectConnectedController())
        {
            // Playstation
            if (Input.GetKey(PlayStation.Circle))
            {
                Debug.Log($"Playstation Mapping: {PlayStation.Circle} Pressed!");
            }
            // Xbox
            if (Input.GetKey(Xbox.A))
            {
                Debug.Log($"Xbox Mapping: {Xbox.A} Pressed!");
            }
            // Anything else - Logitech, Switch Pro, etc etc
            if (Input.GetKey(Generic.Start))
            {
                Debug.Log($"Generic Mapping: {Generic.Start} Pressed!");
            }
        }

    }
}
