using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

public class PlayerMovement : MonoBehaviour
{
    private PlayerInput inputActions;
    private PlayerInput.OnFootActions onFoot;

    private CharacterController controller;
    private Camera cam;

    Vector2 moveDirection;

    float Speed;
    float walkingSpeed = 10f;
    float runningSpeed = 15f;
    float crouchingSpeed = 5f;

    //1 is crouching, 2 is walking, 3 is sprinting
    [Range(1, 3)] int speedManager;
    bool isSprinting;
    bool isWalking;
    bool isCrouching;

    float jumpHeight = 3f;
    float gravity = -9.8f;

    bool isGrounded;


    private void OnEnable()
    {
        onFoot.Enable();
    }

    private void OnDisable()
    {
        onFoot.Disable();
    }

    // Start is called before the first frame update
    void Start()
    {
        onFoot.Enable();

        inputActions = new PlayerInput();
        onFoot = inputActions.OnFoot;
        controller = GetComponent<CharacterController>();
        cam = GetComponentInChildren<Camera>(); 
    }

    // Update is called once per frame
    void Update()
    {
        isGrounded = controller;

        isSprinting = inputActions.OnFoot.Sprint.ReadValue<float>() > 0.1f;
        isCrouching = inputActions.OnFoot.Crouch.ReadValue<float>() > 0.1f;
        if (!isCrouching && !isSprinting)
            isWalking = true;
        else
            isWalking = false; 

        ManageInput();
        ControlSpeed();
    }

    private void FixedUpdate()
    {
        Move();
    }

    void ManageInput()
    {

    }

    void ControlSpeed()
    {
        if (isSprinting)
            speedManager = 3;
        else if (isCrouching)
            speedManager = 1;
        else if (!isSprinting && !isCrouching && isWalking)
            speedManager = 2;
    }

    void Move()
    {

    }
   

}