Ejemplo n.º 1
0
        /// <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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public bool ContainsTile(TileSummary summary)
        {
            for (int i = 0; i < rooms.Count; i++)
            {
                if (rooms[i].ContainsTile(summary))
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 3
0
        private bool ContainsTile(TileSummary summary)
        {
            foreach (Building building in Buildings)
            {
                if (building.ContainsTile(summary))
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public bool ContainsTile(TileSummary summary)
 {
     return(Tiles.Contains(summary));
 }