/// <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(); } } }
public Vector3Int MazeDoorPosition(MazeDoorEnum door) { return(MazeDoors[door].DoorPosition); }