using UnityEngine;

public class Pelaajan_liike : MonoBehaviour {
    [SerializeField]
    private float speed = 20.0F;
    [SerializeField]
    private float gravity = 20.0F;
    [SerializeField]
    private float rotateSpeed = 3.0F;
    private Vector3 moveDirection = Vector3.zero;

    CharacterController m_controller;

    Pelaajan_hp m_pelaajan_hp;

    GameObject m_keskusta;
    float m_etäisyys_keskustaan;
    Vector3 m_pelaajan_alkupaikka;

    // Use this for initialization
    void Start() {
        m_pelaajan_alkupaikka = transform.position;
        m_keskusta = GameObject.Find("keskipiste");
        m_controller = GetComponent<CharacterController>();
        m_pelaajan_hp = GetComponent<Pelaajan_hp>();
    }

    // Update is called once per frame
    void Update() {
        m_etäisyys_keskustaan = Vector3.Distance(transform.position, m_keskusta.transform.position);
        // Move Player
        if (m_controller.isGrounded) {
            moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
        }
        moveDirection.y -= gravity * Time.deltaTime;
        m_controller.Move(moveDirection * Time.deltaTime);

        // Rotate Player
        transform.Rotate(0, rotateSpeed * Input.GetAxis("Horizontal"), 0);

        if (150 < m_etäisyys_keskustaan && m_etäisyys_keskustaan < 200) {
            transform.position = m_pelaajan_alkupaikka;
        }
    }

    public void setPosition(float x, float y, float z) {
        transform.position = new Vector3(x,y,z);
    }
}
