using UnityEngine;
public class Door : MonoBehaviour
{
[SerializeField] private bool isOpen;
[SerializeField] private bool isLocked;
[SerializeField] private float rotateSpeed;
[SerializeField] private Quaternion openRot;
[SerializeField] private Quaternion 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()
{
if (isOpen)
{
t += Time.deltaTime * rotateSpeed;
t = Mathf.Clamp01(t);
transform.rotation = Quaternion.Slerp(closeRot, openRot, t);
}
else
{
t += Time.deltaTime * rotateSpeed;
t = Mathf.Clamp01(t);
transform.rotation = Quaternion.Slerp(openRot, closeRot, t);
}
}
}