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);
}
}
}