public void GenerateTrees(SimpleGeneratorCore sgc, Vector3i chunkPos, int Seed, int seed, int seed3, int seed4, int seed5) { Trees = new List <KeyValuePair <Vector2i, int> >(); ChunkPosition = chunkPos; CPos = chunkPos.ToLocation() * Chunk.CHUNK_SIZE; MTRandom random = new MTRandom((ulong)chunkPos.GetHashCode()); // TODO: Biome basis! int c = 0; if (random.Next(1, 5) == 1) { if (random.Next(1, 5) == 1) { if (random.Next(1, 5) == 1) { c = random.Next(1, 3); } else { c = random.Next(1, 2); } } else { c = 1; } } for (int i = 0; i < c; i++) { Trees.Add(new KeyValuePair <Vector2i, int>(new Vector2i(random.Next(Chunk.CHUNK_SIZE), random.Next(Chunk.CHUNK_SIZE)), random.Next())); } }
public void Generate(SimpleGeneratorCore sgc, Vector3i chunkPos, int Seed, int seed2, int seed3, int seed4, int seed5) { List <MountainData> mountains = sgc.GenMountainPositionsAround(new Vector2i(chunkPos.X, chunkPos.Y), Seed); ChunkPosition = chunkPos; CPos = chunkPos.ToLocation() * Chunk.CHUNK_SIZE; Heights = new double[Chunk.CHUNK_SIZE * Chunk.CHUNK_SIZE]; for (int x = 0; x < Chunk.CHUNK_SIZE; x++) { for (int y = 0; y < Chunk.CHUNK_SIZE; y++) { // Prepare basics int cx = (int)CPos.X + x; int cy = (int)CPos.Y + y; double hheight = sgc.GetHeight(Seed, seed2, seed3, seed4, seed5, cx, cy, mountains, true); Heights[y * Chunk.CHUNK_SIZE + x] = hheight; } } }