public void MoveRoom(string door)
    {
        Vector2    moveto   = Vector2.zero;
        Vector2    plmove   = Vector2.zero;
        Vector2Int nextRoom = currentRoom;

        DoorTrigger.Direction entrance = DoorTrigger.Direction.UP;
        switch (door)
        {
        case "UP": moveto = Vector2.up * roomSpaceY; plmove = Vector2.up * 1.5f; nextRoom += Vector2Int.up; entrance = DoorTrigger.Direction.DOWN; break;

        case "DOWN": moveto = Vector2.down * roomSpaceY; plmove = Vector2.down * 1.5f; nextRoom += Vector2Int.down; entrance = DoorTrigger.Direction.UP; break;

        case "LEFT": moveto = Vector2.left * roomSpaceX; plmove = Vector2.left * 1.5f; nextRoom += Vector2Int.left; entrance = DoorTrigger.Direction.RIGHT; break;

        case "RIGHT": moveto = Vector2.right * roomSpaceX; plmove = Vector2.right * 1.5f; nextRoom += Vector2Int.right; entrance = DoorTrigger.Direction.LEFT; break;
        }
        GenerateRoom(nextRoom);
        currentRoom = nextRoom;
        //Move collision tiles
        activeRoom.localPosition = activeRoom.localPosition + (Vector3)moveto;

        UnblockExits();
        BlockExit(entrance);
        //Move the camera and Player into the new room
        mainCamera.DOMove(activeRoom.localPosition, 0.3f);
        player.DOMove(player.position + (Vector3)plmove, 0.25f);
    }
    public void BlockExit(DoorTrigger.Direction door)
    {
        switch (door)
        {
        case DoorTrigger.Direction.UP: doorUp.gameObject.SetActive(true); break;

        case DoorTrigger.Direction.DOWN: doorDown.gameObject.SetActive(true); break;

        case DoorTrigger.Direction.LEFT: doorLeft.gameObject.SetActive(true); break;

        case DoorTrigger.Direction.RIGHT: doorRight.gameObject.SetActive(true); break;
        }
    }