private Level(GameWorld world, IMap map, Tilemap tilemap) { _world = world; _map = map; Tilemap = tilemap; _gameObjects = new List<uint>(); Width = map.Width; Height = map.Height; PathFinder = new PathFinder(map); }
public static Level Generate(GameWorld world, int width, int height, TextureAtlas atlas, int cellSize) { DungeonGenerator.Instance.GenerateHauberkDungeon(width, height, 195000, 5, 5, 50, false, true); var tileData = DungeonGenerator._dungeon; var map = new Map(width, height); var tiles = new Tile[width, height]; for (var x = 0; x < width; x++) { for (var y = 0; y < height; y++) { Color color = Color.White; switch (tileData[x, y]) { case TileType.Floor: map.SetCellProperties(x, y, true, true); color = new Color(194, 194, 194); break; case TileType.RoomFloor: map.SetCellProperties(x, y, true, true); color = new Color(35, 255, 255); break; case TileType.Wall: map.SetCellProperties(x, y, false, false); color = new Color(163, 163, 163); break; case TileType.Door: map.SetCellProperties(x, y, false, true); color = new Color(132, 81, 0); break; } tiles[x, y] = new Tile(tileData[x, y], color); tiles[x, y].Cell = map.GetCell(x, y); } } var tilemap = new Tilemap(atlas, width, height, atlas.SpriteSize, cellSize, tiles); return new Level(world, map, tilemap); }