private void generate(Stopwatch watcher) { Random.Seed(Options.MapSeed); biomesData = Map5BiomesSystem.applyDefaultBiomesSystem(); nameBases = NamesGenerator.getNameBases(); Names = new NamesGenerator(this); Routes = new Map6Routes(this); grid = new Grid(); _placePoints(); Debug.Log($"1 placePoints {Random.NextDouble()} number:{Options.PointsNumber} => points:{grid.points.Count}"); _calculateVoronoi(grid, grid.points, grid.boundary); Debug.Log($"2 calculateVoronoi {Random.NextDouble()}"); new HeightmapGenerator(this).generate(); Debug.Log($"3 HeightmapGenerator {Random.NextDouble()}"); var feature = new Map1Features(this); feature.markFeatures(); Debug.Log($"4 markFeatures {Random.NextDouble()}"); feature.openNearSeaLakes(); Debug.Log($"5 openNearSeaLakes {Random.NextDouble()}"); map1OceanLayers = new Map1OceanLayers(this); map1OceanLayers.generate(); Debug.Log($"6 Map1OceanLayers {Random.NextDouble()}"); double mapSize = 0, latitude = 0; defineMapSize(Options.MapTemplate, grid, ref mapSize, ref latitude); Debug.Log($"7 defineMapSize {Random.NextDouble()}"); mapCoordinates = calculateMapCoordinates(Options.Width, Options.Height, mapSize, latitude); Debug.Log($"8 calculateMapCoordinates {Random.NextDouble()}"); map1Temperatures = new Map1Temperatures(this); map1Temperatures.calculateTemperatures(); //Debug.SaveArray("temp.txt", grid.cells.temp); map1Temperatures.generate(); Debug.Log($"9 calculateTemperatures {Random.NextDouble()} {Options.TemperatureEquator.value} {Options.TemperaturePoleInput} {Options.HeightExponentInput}"); map2Precipitation = new Map2Precipitation(this); map2Precipitation.generatePrecipitation(); Debug.Log("map2Precipitation winds => " + Debug.toString(Options.WindsInput)); Debug.Log($"10 generatePrecipitation {Random.NextDouble()} modifier:{Options.PrecipitationInput / 100d}"); //Debug.SaveArray("prec.txt", grid.cells.prec); //Debug.SaveArray("grid.cells.h.txt", grid.cells.h); pack = new Grid(); reGraph(); Debug.Log($"11 reGraph {Random.NextDouble()}"); //Debug.SaveArray("pack.cells.area.txt", pack.cells.area); new Map3Features(this).reMarkFeatures(); map4Coastline = new Map4Coastline(this); map4Coastline.generate(); Debug.Log($"12 drawCoastline {Random.NextDouble()}"); new Map4Lakes(this).elevateLakes(); Debug.Log($"13 elevateLakes {Random.NextDouble()}"); //Debug.SaveArray("Map4Lakes.h.txt", pack.cells.r_height); Random.Seed(Options.MapSeed); var rivers = new Map4Rivers(this); rivers.generate(); Debug.Log($"14 Map4Rivers {Random.NextDouble()}"); map5Biomes = new Map5BiomesSystem(this); map5Biomes.defineBiomes(); Debug.Log($"15 defineBiomes {Random.NextDouble()}"); map5Biomes.rankCells(); map5Biomes.generate(); //Debug.SaveArray("pack.cells.biome.txt", pack.cells.biome); //Debug.SaveArray("pack.cells.s.txt", pack.cells.s); //Debug.SaveArray("pack.cells.pop.txt", pack.cells.pop); Debug.Log($"16 rankCells {Random.NextDouble()} rankCells: {elapsed(watcher)}ms"); map5Cultures = new Map5Cultures(this); map5Cultures.generate(); Debug.Log($"17 Cultures {Random.NextDouble()} cultures.generate: {elapsed(watcher)}ms"); map5Cultures.expand(); Debug.Log($"18 Cultures.expand {Random.NextDouble()} neutralInput:{Options.NeutralInput}"); //Debug.SaveArray("pack.cells.culture.txt", pack.cells.culture); var burgs = map6BurgsAndStates = new Map6BurgsAndStates(this); burgs.generate(); Debug.Log($"19 Map6BurgsAndStates.generate {Random.NextDouble()} {elapsed(watcher)}ms"); map6Religions = new Map6Religions(this); map6Religions.generate(); Debug.Log($"20 Map6Religions.generate {Random.NextDouble()} {elapsed(watcher)}ms"); burgs.defineStateForms(); burgs.generateProvinces(); burgs.defineBurgFeatures(); Debug.Log($"21 Map6BurgsAndStates.defineBurgFeatures {Random.NextDouble()} {elapsed(watcher)}ms"); burgs.generateProvincesPath(); burgs.generateStatesPath(); burgs.generateStateLabels(); burgs.generateBorders(); Debug.Log($"22 Map6BurgsAndStates.drawStateLabels {Random.NextDouble()} {elapsed(watcher)}ms"); }