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