public void GenerateCluster(Vector2 center) { var sampler = new StratifiedSampler(random, 6); for (int i = 0; i < nbIslandsPerCluster; i++) { var pos = (center + (sampler.Sample() * distanceBetweenIslands)).ToXZ(); pos.Y = random.Next(-2, 3) * 5; var isl = level.CreateNewIsland(pos); var desc = new IslandDescriptor(); desc.seed = random.Next(0, 30); isl.Descriptor = desc; isl.Node.Relative = Matrix.RotationY((float)random.Next(8) * MathHelper.PiOver4) * isl.Node.Relative; } }
private void generateClusters(Vector2 offset) { int numCells = 8; var cellSize = 2 * averageIslandSize; offset *= numCells * cellSize; var sampler = new StratifiedSampler(random, numCells); var nbClusters = 6; for (int i = 0; i < nbClusters; i++) { var pos = offset + (sampler.Sample() * cellSize); GenerateCluster(pos); } }