Example #1
0
        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);
        }
Example #2
0
 public CellInitializer(
     ITerrainManager terrainManager,
     MapGeneratorOptions mapOptions,
     MountainsideTerrainGeneratorOptions terrainOptions
     )
 {
     _terrainManager = terrainManager;
     _mapOptions     = mapOptions;
     _terrainOptions = terrainOptions;
 }
Example #3
0
 public MountainsideTerrainGenerator(
     IRandom random,
     ITerrainManager terrainManager,
     MapGeneratorOptions options,
     MountainsideTerrainGeneratorOptions terrainOptions
     )
 {
     _random         = random;
     _terrainManager = terrainManager;
     _mapOptions     = options;
     _terrainOptions = terrainOptions;
 }
Example #4
0
        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.
        }