/// <summary> /// Returns all tiles without the duplicates (for example, interior walls between rooms) /// </summary> private IEnumerable <TileSummary> GetAllTiles() { foreach (Room room in rooms) { foreach (TileSummary tileSummary in room.Tiles) { if (tileSummary.TilePart == TilePart.Everything) { yield return(tileSummary); } else { TileSummary fullTileSummary = new TileSummary(tileSummary.X, tileSummary.Y, TilePart.Everything); bool otherContainsFullTile = false; foreach (Room otherRoom in rooms) { if (otherRoom.ContainsTile(fullTileSummary)) { otherContainsFullTile = true; break; } } if (!otherContainsFullTile) { yield return(tileSummary); } } } } }
public bool ContainsTile(TileSummary summary) { for (int i = 0; i < rooms.Count; i++) { if (rooms[i].ContainsTile(summary)) { return(true); } } return(false); }
private bool ContainsTile(TileSummary summary) { foreach (Building building in Buildings) { if (building.ContainsTile(summary)) { return(true); } } return(false); }
public Room GetRoomAtTile(Tile tile) { TileSummary summary = new TileSummary(tile.X, tile.Y, TilePart.Everything); foreach (Room room in Rooms) { if (room.ContainsTile(summary)) { return(room); } } return(null); }
public Building GetBuildingAtCoords(int x, int y) { TileSummary summary = new TileSummary(x, y, TilePart.Everything); foreach (Building building in Buildings) { if (building.ContainsTile(summary)) { return(building); } } return(null); }
public bool ContainsTile(TileSummary summary) { return(Tiles.Contains(summary)); }