Exemple #1
0
    void GenerateChunk()
    {
        for (int x = chunk.ChunkPosition.x; x < chunk.ChunkPosition.x + Chunk.ChunkSize; x++)
        {
            for (int z = chunk.ChunkPosition.z; z < chunk.ChunkPosition.z + Chunk.ChunkSize; z++)
            {
                int stoneHeight = Mathf.FloorToInt(stoneBaseHeight);
                stoneHeight += GetNoise(x, 0, z, stoneMountainFrequency, Mathf.FloorToInt(stoneMountainHeight));

                if (stoneHeight < stoneMinHeight)
                {
                    stoneHeight = Mathf.FloorToInt(stoneMinHeight);
                }

                stoneHeight += GetNoise(x, 0, z, stoneBaseNoise, Mathf.FloorToInt(stoneBaseNoiseHeight));

                for (int y = chunk.ChunkPosition.y; y < chunk.ChunkPosition.y + Chunk.ChunkSize; y++)
                {
                    if (y <= stoneHeight)
                    {
                        if (chunk.GetVoxel(x, y, z) == null)
                        {
                            chunk.AddVoxel(x, y, z, new Voxel());
                        }
                    }
                }
            }
        }
        chunk.generated = true;
    }
Exemple #2
0
    public void SetVoxel(int x, int y, int z, Voxel voxel)
    {
        Chunk tempChunk = GetChunk(x, y, z);

        if (tempChunk != null)
        {
            tempChunk.AddVoxel(x, y, z, voxel);
        }
    }