Exemple #1
0
        internal static Dictionary <int, TerrainMap> CollectTerrains(bool onlyAutoConnectedTerrains = true)
        {
            if (!ValidTerrainsExist())
            {
                return(null);
            }

            // Collect by groups
            Dictionary <int, TerrainMap> groups = new Dictionary <int, TerrainMap>();

            foreach (Terrain t in Terrain.activeTerrains)
            {
                if (onlyAutoConnectedTerrains && !t.allowAutoConnect)
                {
                    continue;
                }

                if (!groups.ContainsKey(t.groupingID))
                {
                    TerrainMap map = TerrainMap.CreateFromPlacement(t, (x => (x.groupingID == t.groupingID) && !(onlyAutoConnectedTerrains && !x.allowAutoConnect)));
                    if (map != null)
                    {
                        groups.Add(t.groupingID, map);
                    }
                }
            }
            return((groups.Count != 0) ? groups : null);
        }