using VoxelEngine.World.Blocks; namespace VoxelEngine.World.WorldGen; public interface IBiome { string Name { get; } // Absolute target surface height at the column (continuous, pre-rounding). float SampleHeight(NoiseSource noise, float worldX, float worldZ); SurfacePalette Surface { get; } // Surface block for a given height; lets biomes vary the top by altitude // (e.g. Mountains use Snow above the snow line). Defaults to Surface.Top. IBlock TopBlock(int worldY); }