public static void Configure() { LogManager.Initialize(new LogProvider()); LogManager.GetLog(nameof(GameConfigurator)).Info($"Starting game. Version {Assembly.GetExecutingAssembly().GetName().Version}"); var config = LoadConfiguration(); ConfigurationManager.InitializeConfiguration(config); ImagesStorage.Current.Load(); IoC.Configure(); DialogsManager.Initialize(new DialogsProvider(IoC.Container.Resolve <IApplicationController>())); ItemsGeneratorManager.Initialize(new ItemsGenerator( config.ItemGenerator, ImagesStorage.Current, new AncientSpellsProvider())); DungeonMapGenerator.Initialize(ImagesStorage.Current, Settings.Current.DebugWriteMapToFile); #if DEBUG PerformanceMeter.Initialize(@".\Performance.log"); #endif }
public void Generate(DungeonMapGeneratorSettings settings) { _mapWidth = settings.Width; _mapHeight = settings.Height; _generator = new DungeonMapGenerator(settings); _generator.Generate(); var result = _generator.Result; TileLayers = new List <Tile[, ]>(); var normalMap = Core.Content.Load <Texture2D>(Content.Textures.Tileset_subtiles_test_normal); var material = new DeferredSpriteMaterial(normalMap); foreach (var tileGroup in result.Tiles) { var layer = new Tile[_mapWidth, _mapHeight]; layer.Initialize(); foreach (var tile in tileGroup) { layer[tile.TilePosition.X, tile.TilePosition.Y] = tile; } TileLayers.Add(layer); var layerRenderer = new DungeonMapLayerRenderer(); var renderLayer = DetermineRenderLayerForGroup(tileGroup.Key); layerRenderer.SetRenderLayer(renderLayer); layerRenderer.SetMaterial(material); layerRenderer.SetTiles(layer); AddComponent(layerRenderer); } foreach (var Entity in result.Entities) { Core.Scene.AddEntity(Entity); } foreach (var colliderBounds in result.ColliderBounds) { AddComponent(new BoxCollider(colliderBounds)); } Spawn = result.Entities.First(e => e is Spawn) as Spawn; Exit = result.Entities.First(e => e is Exit) as Exit; }