using System.Collections.Generic;
using UnityEngine;
///
/// Object handling Room logic
///
///
public class RoomHandler : MonoBehaviour
{
[Header("Doors")]
[SerializeField] private GameObject wallNorth;
[SerializeField] private GameObject wallSouth;
[SerializeField] private GameObject wallEast;
[SerializeField] private GameObject wallWest;
public enum Side
{
North,
South,
East,
West
}
private readonly Dictionary doors = new();
public void RegisterDoor(Side dir, DoorAnimation doorAnim) => doors[dir] = doorAnim;
///
/// Creates entrances to corridors leading to other rooms
///
///
///
///
///
public void SetEntrances(bool northOpen, bool southOpen, bool eastOpen, bool westOpen)
{
wallNorth.SetActive(!northOpen);
wallSouth.SetActive(!southOpen);
wallEast.SetActive(!eastOpen);
wallWest.SetActive(!westOpen);
}
public void ToggleAllDoors()
{
foreach (DoorAnimation door in doors.Values)
{
door.ToggleDoor();
}
}
public void SetDoorState(Side dir, bool open)
{
if (doors.TryGetValue(dir, out DoorAnimation da))
{
da.ToggleDoor();
Debug.Log("Door " + dir + " is now " + (open ? "open" : "closed"));
}
}
}