Private Sub flattenSurface(terrain As Terrain, position As Vector3, radius As Single, height As Single)
Dim num As Single = height / 150F
Dim terrainData As TerrainData = terrain.get_terrainData()
position -= terrain.get_transform().get_position()
Dim num2 As Single = 514F * radius / 500F
Dim num3 As Integer = Mathf.RoundToInt(num2 * 2F)
Dim num4 As Integer = Mathf.RoundToInt(257F * position.x / 500F - num2)
Dim num5 As Integer = Mathf.RoundToInt(257F * position.z / 500F - num2)
Dim num6 As Single = 1.953125F
Dim num7 As Integer = Mathf.Clamp(num4 + num3, 0, 257)
Dim num8 As Integer = Mathf.Clamp(num5 + num3, 0, 257)
num4 = Mathf.Clamp(num4, 0, 256)
num5 = Mathf.Clamp(num5, 0, 256)
Dim num9 As Integer = num7 - num4
Dim num10 As Integer = num8 - num5
Dim flag As Boolean = False
If num9 > 0 AndAlso num10 > 0 Then
Dim heights As Single(,) = terrainData.GetHeights(num4, num5, num9, num10)
Dim vector As Vector3 = New Vector3(position.x, 0F, position.z)
Dim zero As Vector3 = Vector3.get_zero()
Dim num11 As Single = 1F / radius
For i As Integer = 0 To num10 - 1
For j As Integer = 0 To num9 - 1
zero.x = CSng((j + num4)) * num6
zero.z = CSng((i + num5)) * num6
Dim num12 As Single = (zero - vector).get_magnitude() * num11
If num12 < 1F AndAlso Mathf.Abs(heights(i, j) - height) > 0.0001F Then
heights(i, j) = num
flag = True
End If
Next
Next
If flag Then
terrainData.SetHeights(num4, num5, heights)
End If
End If
End Sub
Dim num As Single = height / 150F
Dim terrainData As TerrainData = terrain.get_terrainData()
position -= terrain.get_transform().get_position()
Dim num2 As Single = 514F * radius / 500F
Dim num3 As Integer = Mathf.RoundToInt(num2 * 2F)
Dim num4 As Integer = Mathf.RoundToInt(257F * position.x / 500F - num2)
Dim num5 As Integer = Mathf.RoundToInt(257F * position.z / 500F - num2)
Dim num6 As Single = 1.953125F
Dim num7 As Integer = Mathf.Clamp(num4 + num3, 0, 257)
Dim num8 As Integer = Mathf.Clamp(num5 + num3, 0, 257)
num4 = Mathf.Clamp(num4, 0, 256)
num5 = Mathf.Clamp(num5, 0, 256)
Dim num9 As Integer = num7 - num4
Dim num10 As Integer = num8 - num5
Dim flag As Boolean = False
If num9 > 0 AndAlso num10 > 0 Then
Dim heights As Single(,) = terrainData.GetHeights(num4, num5, num9, num10)
Dim vector As Vector3 = New Vector3(position.x, 0F, position.z)
Dim zero As Vector3 = Vector3.get_zero()
Dim num11 As Single = 1F / radius
For i As Integer = 0 To num10 - 1
For j As Integer = 0 To num9 - 1
zero.x = CSng((j + num4)) * num6
zero.z = CSng((i + num5)) * num6
Dim num12 As Single = (zero - vector).get_magnitude() * num11
If num12 < 1F AndAlso Mathf.Abs(heights(i, j) - height) > 0.0001F Then
heights(i, j) = num
flag = True
End If
Next
Next
If flag Then
terrainData.SetHeights(num4, num5, heights)
End If
End If
End Sub