public IMap CreateMap(Structure structure, int seed, MapSettings settings) { var map = new Map(structure.Width, structure.Height); new FormPolygons(structure, new NoiseLineGenerator()).Build(map, settings); new CalculateDistanceFromEdgeBuilderComponent().Build(map, settings); new PerlinNoiseLandGenerator(seed, new PerlinNoiseGeneratorOld()).Build(map, settings); new DefineOcean().Build(map, settings); new AssignCoastBuilderComponent().Build(map, settings); new StructureLakes().Build(map, settings); new PerlinNoiseElevation(new PerlinNoiseGeneratorOld()).Build(map, settings); //new DistanceFromWaterElevation(new PerlinNoiseGenerator()).Build(map, settings); new AddRiversBuilderComponent(new CommonAddRiverStrategy()).Build(map, settings); new MoistureGenerator().Build(map, settings); new SetTerranTypeFromSite().Build(map, settings); return map; }
public IMap CreateMap(Structure structure, int seed, MapSettings settings) { var map = new Map(structure.Width, structure.Height); var report = new StringBuilder(); var stopwatch = new Stopwatch(); foreach (var component in m_ComponentsRegistry) { stopwatch.Reset(); stopwatch.Start(); component.Build(map, settings); stopwatch.Stop(); report.AppendLine(string.Format("{0}: {1} ms", component.GetType().Name, stopwatch.ElapsedMilliseconds)); } map.CreationReport = report.ToString(); return map; }