refactor: prevent desert from generation adjacent to mountain in biome generation

This commit is contained in:
2026-04-17 22:22:18 +08:00
parent e69d38ad94
commit f2328d19fd
5 changed files with 38 additions and 28 deletions

View File

@@ -280,16 +280,10 @@ void Chunk::resolve_blocks() {
float world_x = static_cast<float>(x + m_chunk_pos.x * CHUCK_SIZE);
float world_z = static_cast<float>(z + m_chunk_pos.z * CHUCK_SIZE);
float biome_noise = PerlinNoise::noise(
world_x * BIOME_NOISE_FREQUENCY,
0.5f,
world_z * BIOME_NOISE_FREQUENCY
);
float temp = PerlinNoise::noise(world_x * BIOME_NOISE_FREQUENCY, 0.0f, world_z * BIOME_NOISE_FREQUENCY);
float humid = PerlinNoise::noise(world_x * BIOME_NOISE_FREQUENCY, 1.0f, world_z * BIOME_NOISE_FREQUENCY);
int height = Math::get_interpolated_height(world_x, world_z, biome_noise, temp, humid);
int height = Math::get_interpolated_height(world_x, world_z, temp, humid);
auto biome = get_biome_from_noise(temp, humid);
for (int y = 5; y < height - 5; y++) {
m_blocks[get_index(x, y, z)] = 3;