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; }
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); } }