private void Run( MapGeneratorOptions options, IMapTerrainGenerator mapTerrainGenerator, Action <string> generationUpdated, Action <IMap> mapCompleted ) { generationUpdated("Map generation started."); generationUpdated("Initializing map."); IMap map = _mapFactory.Create( options.Columns, options.Rows, mapTerrainGenerator.Initialize ); generationUpdated("Map initialized."); generationUpdated("Building terrain."); mapTerrainGenerator.Build(map); generationUpdated("Terrain completed."); generationUpdated("Map generation completed."); mapCompleted(map); }
public CellInitializer( ITerrainManager terrainManager, MapGeneratorOptions mapOptions, MountainsideTerrainGeneratorOptions terrainOptions ) { _terrainManager = terrainManager; _mapOptions = mapOptions; _terrainOptions = terrainOptions; }
public MountainsideTerrainGenerator( IRandom random, ITerrainManager terrainManager, MapGeneratorOptions options, MountainsideTerrainGeneratorOptions terrainOptions ) { _random = random; _terrainManager = terrainManager; _mapOptions = options; _terrainOptions = terrainOptions; }
public void Build( MapGeneratorOptions options, IMapTerrainGenerator terrainGenerator, Action <string> generationUpdated, Action <IMap> mapCompleted ) { Thread thread = new Thread(() => { Run( options, terrainGenerator, generationUpdated, mapCompleted ); }) { Name = "Map Generator Thread" }; thread.Start(); // Thread will terminate when the Run completes which is the // completion of the map generation. }