// Constructor public Cloud(Stage stage, string label, string meshFile, int nClouds) : base(stage, label, meshFile) { random = new Random(); // add nClouds random cloud instances for (int i = 0; i < nClouds; i++) { int x = (0 + random.Next(512)) * stage.Spacing; // 128 .. 384 int z = (0 + random.Next(512)) * stage.Spacing; addObject( new Vector3(x, stage.surfaceHeight(x, z) + 4000, z), new Vector3(0, 1, 0), (random.Next(5)) * 0.01f, new Vector3(4 + random.Next(3), random.Next(4) + 1, 3 + random.Next(2))); } }
private Vector3 corner(Vector3 vector, int i) // corner calculations for lerping { int x_spacing = 0; int z_spacing = 0; Vector3 Base = new Vector3( vector.X - (vector.X % stage.Terrain.Spacing), stage.surfaceHeight(vector.X - (vector.X % stage.Terrain.Spacing), vector.Z - (vector.Z % stage.Terrain.Spacing)), vector.Z - (vector.Z % stage.Terrain.Spacing)); if (i % 2 == 1) { x_spacing = stage.Terrain.Spacing; } if (i > 1) { z_spacing = stage.Terrain.Spacing; } return(new Vector3( Base.X + x_spacing, stage.surfaceHeight(Base.X + x_spacing, Base.Z + z_spacing), Base.Z + z_spacing )); }