Exemplo n.º 1
0
        public void AddGrassToTop(RegionController ownerWorld, Vector3i origin)
        {
            Vector3i currentPosition;
            Block    currentBlock;

            bool recentAir;

            recentAir = false;
            for (int x = 0; x < generatorSettings.RegionSize.X; x++)
            {
                for (int z = 0; z < generatorSettings.RegionSize.Z; z++)
                {
                    for (int y = generatorSettings.RegionSize.Y - 1; y > 0; y--)
                    {
                        currentPosition = origin + new Vector3i(x, y, z);

                        currentBlock = ownerWorld.GetBlock(currentPosition);

                        if (currentBlock.Type != BlockType.Air && recentAir)
                        {
                            ownerWorld.ChangeBlock(currentPosition, BlockType.Grass);
                            recentAir = false;
                        }
                        else if (currentBlock.Type == BlockType.Air)
                        {
                            recentAir = true;
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void FakeGenerator(RegionController ownerWorld, Vector3i origin)
        {
            float     density;
            BlockType blockType;

            for (int x = 0; x < generatorSettings.RegionSize.X; x++)
            {
                for (int y = 0; y < generatorSettings.RegionSize.Y - 1; y++)
                {
                    for (int z = 0; z < generatorSettings.RegionSize.Z; z++)
                    {
                        density   = 0;
                        blockType = GetBlockFromNoise(density, y);
                        if (blockType != BlockType.Air)
                        {
                            ownerWorld.ChangeBlock(origin + new Vector3i(x, y, z), blockType);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void PlaceBlocks(RegionController ownerWorld, Vector3i origin, float[] noise)
        {
            float     density;
            BlockType blockType;

            for (int x = 0; x < generatorSettings.RegionSize.X; x++)
            {
                for (int y = 0; y < generatorSettings.RegionSize.Y - 1; y++)
                {
                    for (int z = 0; z < generatorSettings.RegionSize.Z; z++)
                    {
                        density = noise[x * generatorSettings.RegionSize.Y * generatorSettings.RegionSize.Z +
                                        y * generatorSettings.RegionSize.Z +
                                        z];

                        blockType = GetBlockFromNoise(density, y);
                        if (blockType != BlockType.Air)
                        {
                            ownerWorld.ChangeBlock(origin + new Vector3i(x, y, z), blockType);
                        }
                    }
                }
            }
        }