Exemple #1
0
        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());
        }
Exemple #2
0
        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();
        }