private void DoApply()
{
if (base.terrainData != null)
{
DetailPrototype[] detailPrototypes = base.m_Terrain.terrainData.detailPrototypes;
if (this.m_PrototypeIndex == -1)
{
DetailPrototype[] destinationArray = new DetailPrototype[detailPrototypes.Length + 1];
Array.Copy(detailPrototypes, 0, destinationArray, 0, detailPrototypes.Length);
this.m_PrototypeIndex = detailPrototypes.Length;
detailPrototypes = destinationArray;
detailPrototypes[this.m_PrototypeIndex] = new DetailPrototype();
}
detailPrototypes[this.m_PrototypeIndex].renderMode = DetailRenderMode.VertexLit;
detailPrototypes[this.m_PrototypeIndex].usePrototypeMesh = true;
detailPrototypes[this.m_PrototypeIndex].prototype = this.m_Detail;
detailPrototypes[this.m_PrototypeIndex].prototypeTexture = null;
detailPrototypes[this.m_PrototypeIndex].noiseSpread = this.m_NoiseSpread;
detailPrototypes[this.m_PrototypeIndex].minWidth = this.m_MinWidth;
detailPrototypes[this.m_PrototypeIndex].maxWidth = this.m_MaxWidth;
detailPrototypes[this.m_PrototypeIndex].minHeight = this.m_MinHeight;
detailPrototypes[this.m_PrototypeIndex].maxHeight = this.m_MaxHeight;
detailPrototypes[this.m_PrototypeIndex].healthyColor = this.m_HealthyColor;
detailPrototypes[this.m_PrototypeIndex].dryColor = this.m_DryColor;
if (this.m_RenderMode == DetailMeshRenderMode.Grass)
{
detailPrototypes[this.m_PrototypeIndex].renderMode = DetailRenderMode.Grass;
}
else
{
detailPrototypes[this.m_PrototypeIndex].renderMode = DetailRenderMode.VertexLit;
}
base.m_Terrain.terrainData.detailPrototypes = detailPrototypes;
EditorUtility.SetDirty(base.m_Terrain);
}
}