using Unity.Mathematics;
using UnityEngine;

public class Door : MonoBehaviour
{
    [SerializeField] private bool isOpen;
    [SerializeField] private bool isLocked;

    [SerializeField] private float rotateSpeed;
    [SerializeField] private Vector3 openRot;
    [SerializeField] private Vector3 closeRot;

    [SerializeField] private float t;

    public int KeyID;

    [SerializeField] private InventoryManager inventoryManager;

    public void OpenDoor()
    {
        if (isLocked)
        {
            inventoryManager.OpenInventory();
            Cursor.lockState = CursorLockMode.None;
            inventoryManager.itemInteraction = this.gameObject;
        }
        else
        {
            isOpen = !isOpen;
            t = 0;
        }
    }

    public void UnlockDoor()
    {
        inventoryManager.CloseInventory();
        Cursor.lockState = CursorLockMode.Locked;
        isLocked = false;
        OpenDoor();
    }

    private void Update()
    {
        Debug.Log(isOpen);

        if (isOpen)
        {
            t += Time.deltaTime * rotateSpeed;
            t = Mathf.Clamp01(t);
            transform.rotation = Quaternion.Slerp(quaternion.EulerXYZ(closeRot), quaternion.EulerXYZ(openRot), t);

        }
        else
        {
            t += Time.deltaTime * rotateSpeed;
            t = Mathf.Clamp01(t);
            transform.rotation = Quaternion.Slerp(quaternion.EulerXYZ(openRot), quaternion.EulerXYZ(closeRot), t);
        }
    }
}