Esempio n. 1
0
            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()));
                }
            }
Esempio n. 2
0
            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;
                    }
                }
            }