private void GrowLandSeeds(List <Point> seeds, WaterCoverage worldWaterCoverage) { int seedRadius; SeedType seedType; if (seeds.Count > 1) { seedType = SeedType.Continent; } else { seedType = SeedType.Panganea; } foreach (Point seed in seeds) { seedRadius = GetSeedSize(grid.Size, seedType); GrowSingleSeed(seed, seedRadius); switch (seedType) { case SeedType.Continent: seedType = SeedType.LandMass; break; case SeedType.Island: seedType = SeedType.TinyIsland; break; case SeedType.LandMass: seedType = SeedType.Island; break; case SeedType.TinyIsland: seedType = SeedType.Continent; break; } } }
/// <summary> /// Starts a new server session. /// </summary> /// <param name="worldSize"></param> /// <param name="age"></param> /// <param name="climate"></param> /// <param name="landmass"></param> /// <param name="temperature"></param> /// <param name="waterCoverage"></param> /// <param name="barbarianAggressiveness"></param> /// <param name="difficulty"></param> /// <param name="rules"></param> public void StartServer(WorldSize worldSize, Age age, Temperature temperature, Climate climate, Landmass landmass, WaterCoverage waterCoverage, BarbarianAggressiveness barbarianAggressiveness, Difficulty difficulty, Rules rules) { OnServerStarting(); this.rules = rules; OnStatusChanged(new StatusChangedEventArgs(ServerResources.CreatingMap, 5)); GridBuilder builder = new GridBuilder(); this.grid = builder.Build(worldSize, age, temperature, climate, landmass, waterCoverage, this.ruleset); OnStatusChanged(new StatusChangedEventArgs(ServerResources.AddingVillages, 10)); AddVillages(worldSize); this.year = -4000; OnServerStarted(); }
/// <summary> /// Generates a map with the specified parameters. /// </summary> /// <param name="worldSize"></param> /// <param name="worldAge"></param> /// <param name="worldTemperature"></param> /// <param name="worldClimate"></param> /// <param name="worldLandmass"></param> /// <param name="worldWaterCoverage"></param> /// <param name="ruleset"></param> /// <returns></returns> public Grid Build(WorldSize worldSize, Age worldAge, Temperature worldTemperature, Climate worldClimate, Landmass worldLandmass, WaterCoverage worldWaterCoverage, Ruleset ruleset) { Size size = GetDimensions(worldSize); this.grid = BuildGrid(size); this.ruleset = ruleset; List <Point> seeds = GetLandSeeds(grid, worldLandmass); GrowLandSeeds(seeds, worldWaterCoverage); GenerateHeightMap(worldAge); GenerateTemperatureMap(worldTemperature); GenerateClimateMap(worldClimate); AddTerrain(); AddRivers(); AddLakes(); AddResources(); return(grid); }