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