using UnityEngine;

/// <summary>
/// Provides methods for managing terrain groups.
/// </summary>
[System.Serializable]
public class TerrainGroup : MonoBehaviour
{
	/// <summary>
	/// The terrain group's identifier.
	/// </summary>
	public int GroupID = 0;

	/// <summary>
	/// Updates the grouping ID of the parented terrains.
	/// </summary>
	public void UpdateChildTerrains()
	{
		Terrain[] childTerrains = GetComponentsInChildren<Terrain>();

		foreach (Terrain terrain in childTerrains)
		{
			GameObject existingGameObject = terrain.gameObject;
			terrain.groupingID = GroupID;
		}
	}
	
	/// <summary>
	/// Destroys all parented terrains.
	/// </summary>
	public void DestroyChildTerrains()
	{
		Terrain[] childTerrains = GetComponentsInChildren<Terrain>();

		foreach (Terrain terrain in childTerrains)
		{
			GameObject existingGameObject = terrain.gameObject;
			DestroyImmediate(existingGameObject);
		}
	}
}