Exemple #1
0
    /// <summary>
    /// UpdateDoor will update a door given a door's Enum aka ID and the required door state OPEN/CLOSED
    /// </summary>
    /// <param name="door">Door ENUM ID</param>
    /// <param name="doorState">Door State OPEN CLOSED AUTO</param>
    public void UpdateDoor(MazeDoorEnum door, MazeDoorState doorState)
    {
        switch (doorState)
        {
        case MazeDoorState.Auto:
            if (MazeDoors[door].Open)
            {
                doorState = MazeDoorState.Close;
            }
            else
            {
                doorState = MazeDoorState.Open;
            }
            MazeDoors[door].Open = !MazeDoors[door].Open;
            break;

        case MazeDoorState.Open:
            MazeDoors[door].Open = true;
            break;

        case MazeDoorState.Close:
            MazeDoors[door].Open = false;
            break;

        default:
            throw new NotImplementedException();
        }

        //Extract the DoorTiles
        List <DoorTile> doorTiles = MazeDoors[door].DoorTiles;

        //Loop through every tile in the door
        foreach (DoorTile doorTile in doorTiles)
        {
            switch (doorState)
            {
            //If the door is opening, update the doorTile to its opened state
            case MazeDoorState.Open:
                UpdateDoorTileSetter(doorTile.DoorTilePostion, doorTile.OpenTileTilemap, doorTile.OpenTile);
                break;

            //If the door is closing, update the doorTile to its closed state
            case MazeDoorState.Close:
                UpdateDoorTileSetter(doorTile.DoorTilePostion, doorTile.ClosedTileTilemap, doorTile.ClosedTile);
                break;

            default:
                throw new NotImplementedException();
            }
        }
    }
Exemple #2
0
 public Vector3Int MazeDoorPosition(MazeDoorEnum door)
 {
     return(MazeDoors[door].DoorPosition);
 }