void Start() { Planete = FindObjectOfType <Planete>(); ResteSurTerre = GetComponent <ResteSurTerre>(); GenerateTerrainTypes = FindObjectOfType <GenerateTerrainTypes>(); CouleurDesert = GenerateTerrainTypes.TerrainVariationColors[0].Color; CouleurHerbe = GenerateTerrainTypes.TerrainVariationColors[1].Color; }
void SpreadFlaque(int[] triangles, int t0, Vector3[] vertices, Color[] colors) { GenerateTerrainTypes = FindObjectOfType <GenerateTerrainTypes>(); // Watch out for threading if (GenerateTerrainTypes.VertexToSimilarVertices == null || GenerateTerrainTypes.VertexToTriangleIndex == null) { return; } var colored = new HashSet <int>(); var newColored = new HashSet <int>(); SetFlaque(triangles, t0, colors, colored); var spread = SpreadCount - 1; while (spread > 0) { bool worked = false; foreach (var t in colored) { foreach (var t2 in GenerateTerrainTypes.VertexToSimilarVertices[t]) { if (IsDesert(colors[t2])) { newColored.Add(t2); } else { SetFlaque(triangles, GenerateTerrainTypes.VertexToTriangleIndex[t2] / 3 * 3, colors, newColored); worked = true; if (--spread <= 0) { break; } } } } if (!worked) { break; } foreach (var t in newColored) { colored.Add(t); } } }