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

public class MackaControl : MonoBehaviour
{
    
        public float speed = 6.0f;
        public float jumpSpeed = 8.0f;
        public float gravity = 20.0f;

        private Vector3 moveDirection = Vector3.zero;
        private CharacterController controller;

        void Start()
        {
            controller = GetComponent<CharacterController>();

        // let the gameObject fall down
        //gameObject.transform.position = new Vector3(0, 5, 0);
    }

        void Update()
        {
            if (controller.isGrounded)
            {
                // We are grounded, so recalculate
                // move direction directly from axes

                moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical"));
                moveDirection = transform.TransformDirection(moveDirection);
                moveDirection = moveDirection * speed;

                if (Input.GetButton("Jump"))
                {
                    moveDirection.y = jumpSpeed;
                }
            }

            // Apply gravity
            moveDirection.y = moveDirection.y - (gravity * Time.deltaTime);

            // Move the controller
            controller.Move(moveDirection * Time.deltaTime);
        }
    
    //    public float MovementSpeed = 5.0f;
    //    public float NegativeGravity = -9.81f;
    //    private float _gravity;

    //    private CharacterController _characterController;

    //    private Vector3 _startingPosition;

    //    private float _movementH;
    //    private float _movementV;
    //    private bool _jump;
    //    private bool _isJumping = false;

    //    //private AudioSource _myAudioSource;
    //    //public AudioClip JumpSound;
    //    //public AudioClip FallSound;

    //    private Vector3 movement;

    //    private void Awake()
    //    {
    //        _characterController = GetComponent<CharacterController>();
    //        //_myAudioSource = GetComponent<AudioSource>();

    //        _gravity = NegativeGravity;

    //        _startingPosition = transform.position;
    //    }
    //    void Update()
    //    {
    //        _movementH = Input.GetAxisRaw("Horizontal");
    //        _movementV = Input.GetAxisRaw("Vertical");
    //        //_jump = Input.GetButton("Jump");

    //        //ovo je zapravo kretnja po globalnim osima, ovo su nam naša dva vektora smjera po dvije glavne globalne osi kretanja
    //        Vector3 movementX = _movementH * Vector3.right; //koristimo globalne osi (.right, vektor po X-u)
    //        Vector3 movementZ = _movementV * Vector3.forward; //koristimo globalne osi (.forward, vektor po Z-u)
    //        movement = movementX + movementZ;

    //        movement.Normalize();
    //        //dijagonalni vektor (1,0,1) duljine 1,41 pretvara u jedinični duljine 1 i vraća kao vrijednost vektora movement
    //        //(za razliku od movement.normalized, koja samo vraća normaliziranu vrijednost vektora movement)
    //        //tek sada kada smo normalizirali vektor smjera, SADA ga množimo s brzinom i time.deltatime

    //        //movement *= MovementSpeed * Time.deltaTime;
    //        //movement.x *= MovementSpeed;
    //        //movement.z *= MovementSpeed;

    //        //nama treba kretanje playera naspram njegovih lokalnih koordinata
    //        //ono što je lokalno naprijed je ono što je lokalna Z os
    //        //ono što je lokalno desno je ono što je lokalna X os
    //        //transform.TransformDirection() pretvara lokalni vektor u globalni...
    //        //...ali koristit ćemo to obrnuto...
    //        //...dat ćemo mu globalni vektor, što će Unity za TransformDirection pretpostavit da je lokalni...
    //        //...i pretvorit će ga u globalni, a to će nama sada biti naš lokalni vektor koji nam i treba
    //        //tako transform.TransformDirection funkcionira
    //        movement = transform.TransformDirection(movement);
    //    }
}
