Example #1
0
        public BLevel(string mapname)
        {
            try
            {
                if (!Directory.Exists("Content/Maps"))
                {
                    Directory.CreateDirectory("Content/Maps");
                }
                if (!File.Exists($"Content/Maps/{mapname}.ls"))
                {
                    throw new FileNotFoundException($"No map found with name '{mapname}'.");
                }
                var Map = BLevelFile.FromJson(File.ReadAllText($"Content/Maps/{mapname}.ls"));

                int width  = Map.Width;
                int height = Map.Height;

                grid           = new BBlock[width, height];
                entities       = new List <BEntity>();
                this.mapname   = mapname;
                playerStartPos = new Point(1, 1);

                int[] Tiles = Map.Layers[0].Data;
                int   x     = 0;
                int   y     = 0;
                for (int i = 0; i < Tiles.Length; i++)
                {
                    BBlockTemplate block = BBlocks.GetBlock(Tiles[i]);
                    grid[x, y] = new BBlock(block.Name, block.Type, block.TexturePosition, x, y);

                    x++;
                    if (x >= width)
                    {
                        x = 0;
                        y++;
                    }
                }

                playerStartPos = new Point(width / 2, height / 2);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);

                int width  = 20;
                int height = 20;
                grid           = new BBlock[width, height];
                entities       = new List <BEntity>();
                this.mapname   = "none";
                playerStartPos = new Point(1, 1);

                for (int x = 0; x < width; x++)
                {
                    for (int y = 0; y < height; y++)
                    {
                        if (x == 0 || y == 0 || x == width - 1 || y == height - 1)
                        {
                            BBlockTemplate block = BBlocks.GetBlock(1);
                            grid[x, y] = new BBlock(block.Name, block.Type, block.TexturePosition, x, y);
                        }
                        else
                        {
                            BBlockTemplate block = BBlocks.GetBlock(2);
                            grid[x, y] = new BBlock(block.Name, block.Type, block.TexturePosition, x, y);
                        }
                    }
                }
            }
        }
Example #2
0
 public static string ToJson(this BLevelFile self) => JsonConvert.SerializeObject(self, Converter.Settings);