Exemple #1
0
        public static void AutoConnect()
        {
            if (!ValidTerrainsExist())
            {
                return;
            }

            ClearConnectivity();

            Dictionary <int, TerrainMap> terrainGroups = CollectTerrains();

            if (terrainGroups == null)
            {
                return;
            }

            foreach (var group in terrainGroups)
            {
                TerrainMap terrains = group.Value;

                foreach (var tile in terrains.terrainTiles)
                {
                    TerrainTileCoord coords = tile.Key;

                    Terrain center = terrains.GetTerrain(coords.tileX, coords.tileZ);

                    Terrain left   = terrains.GetTerrain(coords.tileX - 1, coords.tileZ);
                    Terrain right  = terrains.GetTerrain(coords.tileX + 1, coords.tileZ);
                    Terrain top    = terrains.GetTerrain(coords.tileX, coords.tileZ + 1);
                    Terrain bottom = terrains.GetTerrain(coords.tileX, coords.tileZ - 1);

                    center.SetNeighbors(left, top, right, bottom);
                }
            }
        }