public void AddConnection(RoomConnectionInfo direction) { if (!HasConnectionOn(direction)) { connections.Add(direction); } }
void ConnectRooms(Room one, Room two, bool onMainPath = true) { Directions roomDirection = DirectionHandler.GetClosestDirection(two.DungeonPosition - one.DungeonPosition); RoomConnectionInfo rci = new RoomConnectionInfo(roomDirection, onMainPath); one.AddConnection(rci); rci = new RoomConnectionInfo(DirectionHandler.GetOppositeDirection(roomDirection), true); two.AddConnection(rci); }
public void AddDoor(RoomConnectionInfo rci) { switch (rci.direction) { case Directions.Up: topDoorSection = CreateDoor(topWall, topDoorSection, tileset.topDoor, rci.isMainPath); break; case Directions.Left: leftDoorSection = CreateDoor(leftWall, leftDoorSection, tileset.leftDoor, rci.isMainPath); break; case Directions.Down: bottomDoorSection = CreateDoor(bottomWall, bottomDoorSection, tileset.bottomDoor, rci.isMainPath); break; case Directions.Right: rightDoorSection = CreateDoor(rightWall, rightDoorSection, tileset.rightDoor, rci.isMainPath); break; } }
bool HasConnectionOn(RoomConnectionInfo direction) { return(connections.Contains(direction)); }