Exemplo n.º 1
0
        public Map GenerateMapFromBlueprint()
        {
            var map = new Map(_width * 2 + 1, _height * 2 + 1);

            for (int x = 0; x < _width; ++x)
            {
                for (int y = 0; y < _height; ++y)
                {
                    var room = _roomsArray[x, y];
                    if (room == null)
                    {
                        continue;
                    }

                    var point = new Point(x, y);
                    var px    = 1 + x * 2;
                    var py    = 1 + y * 2;

                    if (x == 0 || _roomsArray[x - 1, y] != room)
                    {
                        map.AddMapEntity(MapWall.WestWall(point));
                    }
                    if (x == _width - 1 || _roomsArray[x + 1, y] != room)
                    {
                        map.AddMapEntity(MapWall.EastWall(point));
                    }
                    if (y == 0 || _roomsArray[x, y - 1] != room)
                    {
                        map.AddMapEntity(MapWall.NorthWall(point));
                    }
                    if (y == _height - 1 || _roomsArray[x, y + 1] != room)
                    {
                        map.AddMapEntity(MapWall.SouthWall(point));
                    }

                    map.AddMapEntity(new MapTile(new Point(px, py), TileType.Empty));
                }
            }
            return(map);
        }