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

public class ResetCamera : MonoBehaviour
{
    private Transform CameraPosition;
    // private Vector3 CameraOrientation;

    //private Transform m_CameraRig;
    public OVRCameraRig m_OVRCameraRig;

    [SerializeField] private float CameraSpeed = 1;

    private bool flag = true;

    // Start is called before the first frame update
    void Start()
    {

        CameraPosition = this.transform;
        //CameraOrientation = new Vector3(0, 180, 0);
    }



    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.E))
        {
            CameraPosition.transform.position += new Vector3(0, CameraSpeed / 50, 0);
        }
        if (Input.GetKey(KeyCode.Q))
        {
            CameraPosition.transform.position -= new Vector3(0, CameraSpeed / 50, 0);
        }
        if (Input.GetKey(KeyCode.A))
        {
            CameraPosition.transform.position += new Vector3(CameraSpeed / 50, 0, 0);
        }
        if (Input.GetKey(KeyCode.D))
        {
            CameraPosition.transform.position -= new Vector3(CameraSpeed / 50, 0, 0);
        }
        if (Input.GetKey(KeyCode.W))
        {
            CameraPosition.transform.position += new Vector3(0, 0, CameraSpeed / 50);
        }
        if (Input.GetKey(KeyCode.S))
        {
            CameraPosition.transform.position -= new Vector3(0, 0, CameraSpeed / 50);
        }

        if (Input.GetKey(KeyCode.R))
        {
            ResetPosition();
        }

        if (m_OVRCameraRig.centerEyeAnchor.localPosition != new Vector3(0, 0, 0) && flag == true)
        {
            //print("aaaaaaaaaaaaaaa");
            ResetPosition();
            flag = false;
        }

        //this.transform = CameraPosition;
        // this.transform.eulerAngles = CameraOrientation;
    }

    void ResetPosition()
    {
        float currentRotY = m_OVRCameraRig.centerEyeAnchor.eulerAngles.y;
        float targetRotY = 0f;
        float difference = targetRotY - currentRotY;
        m_OVRCameraRig.transform.Rotate(0, difference, 0);
        Vector3 currentPosition = m_OVRCameraRig.centerEyeAnchor.localPosition;
        m_OVRCameraRig.trackingSpace.localPosition = new Vector3(OffsetValue(currentPosition.x), OffsetValue(currentPosition.y), OffsetValue(currentPosition.z));
        //m_OVRCameraRig.transform.position = new Vector3(OffsetValue(currentPosition.x - m_OVRCameraRig.transform.position.x), OffsetValue(currentPosition.y - m_OVRCameraRig.transform.position.y), OffsetValue(currentPosition.z - m_OVRCameraRig.transform.position.z));

    }

    float OffsetValue(float value)
    {
        if (value != 0)
        {
            value *= -1;
        }
        return value;
    }
}
