84 lines
2.3 KiB
C#
84 lines
2.3 KiB
C#
using UnityEngine;
|
|
|
|
public class DoorsManager : MonoBehaviour
|
|
{
|
|
[Header("Manage Doors In Rooms")]
|
|
[Header("Loops")]
|
|
[SerializeField] private ManageDoorsInRoom[] manageDoorsInLoop;
|
|
|
|
#region TEST
|
|
[Header("HOUSE")]
|
|
public ManageDoorsInRoom[] manageDoorsInHouse;
|
|
#endregion
|
|
|
|
[HideInInspector] public bool IsDraggingADoor;
|
|
|
|
private static DoorsManager _instance;
|
|
public static DoorsManager GetInstance() { return _instance; }
|
|
|
|
void Awake()
|
|
{
|
|
if (!_instance)
|
|
{
|
|
_instance = this;
|
|
}
|
|
}
|
|
|
|
#region DELETE ME LATER (Testing for passing ManageDoorsInRoom as a parameter)
|
|
public bool CanOpenDoorTEST(ManageDoorsInRoom[] manageDoorInRoom, int manageDoorsInRoomID, int doorID)
|
|
{
|
|
if (manageDoorInRoom[manageDoorsInRoomID].door[doorID].CanOpenDoor)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public void OpenDoorTEST(ManageDoorsInRoom[] manageDoorInRoom, int manageDoorsInLoopID, int doorID, float doorLerpSpeed)
|
|
{
|
|
manageDoorInRoom[manageDoorsInLoopID].door[doorID].OpenDoor(doorLerpSpeed);
|
|
}
|
|
|
|
#endregion
|
|
|
|
public bool CanOpenDoor(int manageDoorsInLoopID, int doorID)
|
|
{
|
|
if (manageDoorsInLoop[manageDoorsInLoopID].door[doorID].CanOpenDoor)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public void LockDoor(int manageDoorsInLoopID, int doorID)
|
|
{
|
|
manageDoorsInLoop[manageDoorsInLoopID].door[doorID].LockDoor();
|
|
#region Debugging
|
|
Debug.Log("Locks door", manageDoorsInLoop[manageDoorsInLoopID].door[doorID]);
|
|
#endregion
|
|
}
|
|
|
|
public void UnlockDoor(int manageDoorsInLoopID, int doorID)
|
|
{
|
|
manageDoorsInLoop[manageDoorsInLoopID].door[doorID].UnlockDoor();
|
|
#region Debugging
|
|
Debug.Log("Unlocks door", manageDoorsInLoop[manageDoorsInLoopID].door[doorID]);
|
|
#endregion
|
|
}
|
|
|
|
public void OpenDoor(int manageDoorsInLoopID, int doorID, float doorLerpSpeed)
|
|
{
|
|
manageDoorsInLoop[manageDoorsInLoopID].door[doorID].OpenDoor(doorLerpSpeed);
|
|
}
|
|
|
|
public void CloseDoor(int manageDoorsInLoopID, int doorID, float doorLerpSpeed)
|
|
{
|
|
manageDoorsInLoop[manageDoorsInLoopID].door[doorID].CloseDoor(doorLerpSpeed);
|
|
}
|
|
}
|