public void PaintHeightmap(global::TerrainData terrainData, Vector3 worldPostion) { this.terrainData = terrainData; int num = Mathf.CeilToInt(worldPostion.x + (float)GameScene.mainScene.terrainConfig.sceneWidth * 0.5f); int num2 = Mathf.CeilToInt(worldPostion.z + (float)GameScene.mainScene.terrainConfig.sceneHeight * 0.5f); int num3 = this.size / 2; int num4 = this.size % 2; int num5 = Mathf.Clamp(num - num3, 0, this.terrainData.heightmapResolution); int num6 = Mathf.Clamp(num2 - num3, 0, this.terrainData.heightmapResolution); int num7 = Mathf.Clamp(num + num3 + num4, 0, this.terrainData.heightmapResolution); int num8 = Mathf.Clamp(num2 + num3 + num4, 0, this.terrainData.heightmapResolution); int num9 = num7 - num5; int num10 = num8 - num6; float[,] heights = this.terrainData.GetHeights(num5, num6, num9, num10); for (int i = 0; i < num10; i++) { for (int j = 0; j < num9; j++) { int ix = num5 + j - (num - num3); int iy = num6 + i - (num2 - num3); float strengthInt = this.GetStrengthInt(ix, iy); float num11 = heights[i, j]; num11 = this.ApplyBrush(num11, strengthInt * this.strengthen, j + num5, i + num6); heights[i, j] = num11; } } terrainData.SetHeights(num5, num6, heights); }
public void CopyTo(global::TerrainData target) { float num = 0.53125f; for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { int num2 = (int)((float)i * num); int num3 = (int)((float)j * num); this.terrainData.heightmap[j, i] = this.vertices[num3 * 17 + num2].y; } } int xBase = (int)base.transform.position.x - 16 + this.terrainConfig.sceneWidth / 2; int yBase = (int)base.transform.position.z - 16 + this.terrainConfig.sceneHeight / 2; target.SetHeights(xBase, yBase, this.terrainData.heightmap); }