public string BuildWorldInfo() { var stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"Planet Name: {Find.World.info.name}"); stringBuilder.AppendLine($"{"PlanetSeed".Translate()}: {Find.World.info.seedString}"); stringBuilder.AppendLine( $"{"PlanetCoverageShort".Translate()}: {Find.World.info.planetCoverage.ToStringPercent()}"); stringBuilder.AppendLine($"Total Tiles: {Find.World.grid.TilesCount}"); if (PrepareLanding.Instance.TileFilter != null) { if (PrepareLanding.Instance.TileFilter.AllValidTilesReadOnly != null) { stringBuilder.AppendLine( $"Settleable Tiles: {PrepareLanding.Instance.TileFilter.AllValidTilesReadOnly.Count}"); } if (PrepareLanding.Instance.TileFilter.AllTilesWithRiver != null) { stringBuilder.AppendLine( $"Tiles with Rivers: {PrepareLanding.Instance.TileFilter.AllTilesWithRiver.Count}"); } if (PrepareLanding.Instance.TileFilter.AllTilesWithRoad != null) { stringBuilder.AppendLine( $"Tiles with Roads: {PrepareLanding.Instance.TileFilter.AllTilesWithRoad.Count}"); } var allValidTiles = PrepareLanding.Instance.TileFilter.AllValidTilesReadOnly?.ToList(); if (allValidTiles != null) { stringBuilder.AppendLine("Biomes: (number of tiles)"); var biomes = _userData.BiomeDefs; //var biomeNames = biomes.Select(biome => biome.LabelCap).ToList(); //var longestBiomeName = biomeNames.Aggregate("", (max, cur) => max.Length > cur.Length ? max : cur).Length; foreach (var biome in biomes) { var count = TileFilterBiomes.NumberOfTilesByBiome(biome, allValidTiles); //stringBuilder.AppendLine($" {biome.LabelCap.PadRight(longestBiomeName)} ➠ {count}"); stringBuilder.AppendLine($" {biome.LabelCap} ➠ {count}"); } } } return(stringBuilder.ToString()); }
private void ExecuteOnWorldGeneratedOrLoaded() { WorldCoverage = Find.World.PlanetCoverage; WorldSeedString = Find.World.info.seedString; WorldSeed = Find.World.info.Seed; NumberOfTilesByBiome.Clear(); foreach (var biomeDef in _defData.BiomeDefs) { var count = TileFilterBiomes.NumberOfTilesByBiome(biomeDef); NumberOfTilesByBiome.Add(biomeDef, count); } WorldFeatures = Find.WorldFeatures.features.OrderBy(feature => feature.name).ToList(); }