feat: add biome properties for temperature, humidity, and ocean status
Signed-off-by: szdytom <szdytom@qq.com>
This commit is contained in:
parent
ad68a23629
commit
7718d3fbf4
@ -36,6 +36,11 @@ struct BiomeProperties {
|
|||||||
// Biome name for debugging
|
// Biome name for debugging
|
||||||
std::string_view name;
|
std::string_view name;
|
||||||
|
|
||||||
|
// Categories
|
||||||
|
BiomeTemperature temperature;
|
||||||
|
BiomeHumidity humidity;
|
||||||
|
bool is_ocean;
|
||||||
|
|
||||||
// Base terrain ratios (0.0 - 1.0)
|
// Base terrain ratios (0.0 - 1.0)
|
||||||
double water_ratio;
|
double water_ratio;
|
||||||
double ice_ratio;
|
double ice_ratio;
|
||||||
|
@ -33,8 +33,7 @@ class TerrainGenerator {
|
|||||||
private:
|
private:
|
||||||
GenerationConfig config_;
|
GenerationConfig config_;
|
||||||
|
|
||||||
UniformPerlinNoise
|
UniformPerlinNoise base_noise_; // For base terrain
|
||||||
base_noise_; // For base terrain generation (uniform distribution)
|
|
||||||
UniformPerlinNoise temperature_noise_; // For temperature
|
UniformPerlinNoise temperature_noise_; // For temperature
|
||||||
UniformPerlinNoise humidity_noise_; // For humidity
|
UniformPerlinNoise humidity_noise_; // For humidity
|
||||||
|
|
||||||
|
@ -11,6 +11,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Snowy Peeks (Cold & Dry)
|
// Snowy Peeks (Cold & Dry)
|
||||||
{
|
{
|
||||||
.name = "Snowy Peeks",
|
.name = "Snowy Peeks",
|
||||||
|
.temperature = BiomeTemperature::Cold,
|
||||||
|
.humidity = BiomeHumidity::Dry,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .05,
|
.water_ratio = .05,
|
||||||
.ice_ratio = .2,
|
.ice_ratio = .2,
|
||||||
.sand_ratio = .05,
|
.sand_ratio = .05,
|
||||||
@ -19,6 +22,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Snowy Plains (Cold & Moderate)
|
// Snowy Plains (Cold & Moderate)
|
||||||
{
|
{
|
||||||
.name = "Snowy Plains",
|
.name = "Snowy Plains",
|
||||||
|
.temperature = BiomeTemperature::Cold,
|
||||||
|
.humidity = BiomeHumidity::Moderate,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .05,
|
.water_ratio = .05,
|
||||||
.ice_ratio = .25,
|
.ice_ratio = .25,
|
||||||
.sand_ratio = .1,
|
.sand_ratio = .1,
|
||||||
@ -27,6 +33,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Frozen Ocean (Cold & Wet)
|
// Frozen Ocean (Cold & Wet)
|
||||||
{
|
{
|
||||||
.name = "Frozen Ocean",
|
.name = "Frozen Ocean",
|
||||||
|
.temperature = BiomeTemperature::Cold,
|
||||||
|
.humidity = BiomeHumidity::Wet,
|
||||||
|
.is_ocean = true,
|
||||||
.water_ratio = .1,
|
.water_ratio = .1,
|
||||||
.ice_ratio = .7,
|
.ice_ratio = .7,
|
||||||
.sand_ratio = .25,
|
.sand_ratio = .25,
|
||||||
@ -35,6 +44,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Plains (Temperate & Dry)
|
// Plains (Temperate & Dry)
|
||||||
{
|
{
|
||||||
.name = "Plains",
|
.name = "Plains",
|
||||||
|
.temperature = BiomeTemperature::Temperate,
|
||||||
|
.humidity = BiomeHumidity::Dry,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .05,
|
.water_ratio = .05,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .05,
|
.sand_ratio = .05,
|
||||||
@ -43,6 +55,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Forest (Temperate & Moderate)
|
// Forest (Temperate & Moderate)
|
||||||
{
|
{
|
||||||
.name = "Forest",
|
.name = "Forest",
|
||||||
|
.temperature = BiomeTemperature::Temperate,
|
||||||
|
.humidity = BiomeHumidity::Moderate,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .1,
|
.water_ratio = .1,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .05,
|
.sand_ratio = .05,
|
||||||
@ -51,6 +66,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Ocean (Temperate & Wet)
|
// Ocean (Temperate & Wet)
|
||||||
{
|
{
|
||||||
.name = "Ocean",
|
.name = "Ocean",
|
||||||
|
.temperature = BiomeTemperature::Temperate,
|
||||||
|
.humidity = BiomeHumidity::Wet,
|
||||||
|
.is_ocean = true,
|
||||||
.water_ratio = .8,
|
.water_ratio = .8,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .15,
|
.sand_ratio = .15,
|
||||||
@ -59,6 +77,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Desert (Hot & Dry)
|
// Desert (Hot & Dry)
|
||||||
{
|
{
|
||||||
.name = "Desert",
|
.name = "Desert",
|
||||||
|
.temperature = BiomeTemperature::Hot,
|
||||||
|
.humidity = BiomeHumidity::Dry,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .0,
|
.water_ratio = .0,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .8,
|
.sand_ratio = .8,
|
||||||
@ -67,6 +88,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Savanna (Hot & Moderate)
|
// Savanna (Hot & Moderate)
|
||||||
{
|
{
|
||||||
.name = "Savanna",
|
.name = "Savanna",
|
||||||
|
.temperature = BiomeTemperature::Hot,
|
||||||
|
.humidity = BiomeHumidity::Moderate,
|
||||||
|
.is_ocean = false,
|
||||||
.water_ratio = .2,
|
.water_ratio = .2,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .1,
|
.sand_ratio = .1,
|
||||||
@ -75,6 +99,9 @@ constexpr BiomeProperties biome_properties[] = {
|
|||||||
// Luke Ocean (Hot & Wet)
|
// Luke Ocean (Hot & Wet)
|
||||||
{
|
{
|
||||||
.name = "Luke Ocean",
|
.name = "Luke Ocean",
|
||||||
|
.temperature = BiomeTemperature::Hot,
|
||||||
|
.humidity = BiomeHumidity::Wet,
|
||||||
|
.is_ocean = true,
|
||||||
.water_ratio = .8,
|
.water_ratio = .8,
|
||||||
.ice_ratio = .0,
|
.ice_ratio = .0,
|
||||||
.sand_ratio = .05,
|
.sand_ratio = .05,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user