feat: add WorldConstants, SurfacePalette and IBiome contract

This commit is contained in:
MDietermann
2026-05-31 21:51:57 +02:00
parent d0707fde9d
commit 294f3b82ef
3 changed files with 34 additions and 0 deletions

17
World/WorldGen/IBiome.cs Normal file
View File

@@ -0,0 +1,17 @@
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);
}