void Erode() {
Random erodeRand = new Random( random.Next() );
FilteredNoise erodeNoise1 = new FilteredNoise( new PerlinNoise( erodeRand, genParams.TerrainDetailOctaves ),
new PerlinNoise( erodeRand, genParams.TerrainDetailOctaves ) );
FilteredNoise erodeNoise2 = new FilteredNoise( new PerlinNoise( erodeRand, genParams.TerrainDetailOctaves ),
new PerlinNoise( erodeRand, genParams.TerrainDetailOctaves ) );
for( int x = 0; x < genParams.MapWidth; x++ ) {
for( int y = 0; y < genParams.MapLength; y++ ) {
double d1 = erodeNoise1.GetNoise( x*2, y*2 )/8;
int i7 = erodeNoise2.GetNoise( x*2, y*2 ) > 0 ? 1 : 0;
if( d1 <= 2 )
continue;
int i19 = ((heightmap[(x + y*genParams.MapWidth)] - i7)/2*2) + i7;
heightmap[(x + y*genParams.MapWidth)] = i19;
}
}
}