using UnityEngine;
using UnityEngine.InputSystem;

public class PlayerInputController : MonoBehaviour
{
    public InputActionAsset InputActions;

    private InputAction m_moveAction;
    private InputAction m_lookAction;
    private InputAction m_jumpAction;
    private InputAction m_throwAction;
    private InputAction m_shiftAction;
    private InputAction m_headInteractAction;

    public Vector2 MoveAmount { get; private set; }
    public Vector2 LookAmount { get; private set; }

    public bool JumpPressed { get; private set; }
    public bool ShiftPressed { get; private set; }
    public bool ThrowPressed { get; private set; }
    public bool HeadInteractionPressed { get; private set; }

    private void Awake()
    {
        var map = InputActions.FindActionMap("Player");

        m_moveAction = map.FindAction("Move");
        m_lookAction = map.FindAction("Look");
        m_jumpAction = map.FindAction("Jump");
        m_shiftAction = map.FindAction("Shift");
        m_throwAction = map.FindAction("Throw");
        m_headInteractAction = map.FindAction("HeadInteract");
    }

    private void OnEnable()
    {
        InputActions.FindActionMap("Player").Enable();
    }

    private void OnDisable()
    {
        InputActions.FindActionMap("Player").Disable();
    }

    private void Update()
    {
        MoveAmount = m_moveAction.ReadValue<Vector2>();
        LookAmount = m_lookAction.ReadValue<Vector2>();

        ShiftPressed = m_shiftAction.IsPressed();
        JumpPressed = m_jumpAction.WasPressedThisFrame();
        ThrowPressed = m_throwAction.WasPressedThisFrame();
        HeadInteractionPressed = m_headInteractAction.WasPressedThisFrame();
    }
}