members: private Texture2D heightMapTexture; private float[,] vertexHeightData; private int vertexMapSize; private float[,] collisionHeightData; private int collisionMapSize; private VertexBuffer vertexBuffer; private VertexPositionNormalTexture[] vertices; private VertexDeclaration vertexDeclaration; private IndexBuffer meshIndexBuffer; private int[] meshIndices; private float groundWaveRadius = 0.0f; private float fireWaveRadius = 0.0f; private Matrix matrixView, matrixProjection; private float[] materialDiffuse = { 1.0f, 1.0f, 1.0f, 1.0f }; private float[] materialSpecular = { 0.3f, 0.3f, 0.3f, 1.0f }; private Matrix lightInfo1 = new Matrix(256.0f, 500.0f, 256.0f, 0.0f, 0.3f, 0.3f, 0.3f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f); private Matrix lightInfo2 = new Matrix(256.0f, 500.0f, -256.0f, 0.0f, 0.3f, 0.3f, 0.3f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f); private int terrainScaleFactor = 8; private float terrainHeightScale = 1.0f; private int terrainModRange = 70; private bool terrainChanged = false; functions: public Terrain() public void Initialize(GraphicsDeviceManager graphics, ContentManager content) private void CreateTerrain(GraphicsDeviceManager graphics) public void ModTerrain(float modFactor, GameObject player) private void AdjustHeightValueByBrush(int x, int z, float modFactor, int brushSize) private BasicEffect CreateEffect(GraphicsDeviceManager graphics) public void Update() public void Draw()