summaryrefslogtreecommitdiff
path: root/src/mapgen_v5.cpp
diff options
context:
space:
mode:
authorparamat <mat.gregory@virginmedia.com>2015-06-03 08:59:07 +0100
committerparamat <mat.gregory@virginmedia.com>2015-06-18 07:05:22 +0100
commite45ecad3ab401e169d1c8c9ba9448360b215b3e5 (patch)
tree37ee377eb171a4aeec150bc846db374f982705e1 /src/mapgen_v5.cpp
parent2da150378039371761b2f8d1a13036382228e248 (diff)
downloadminetest-e45ecad3ab401e169d1c8c9ba9448360b215b3e5.tar.gz
minetest-e45ecad3ab401e169d1c8c9ba9448360b215b3e5.tar.bz2
minetest-e45ecad3ab401e169d1c8c9ba9448360b215b3e5.zip
Biome API: Add noise defined biome blend
Diffstat (limited to 'src/mapgen_v5.cpp')
-rw-r--r--src/mapgen_v5.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mapgen_v5.cpp b/src/mapgen_v5.cpp
index 92febf43b..f748e7b86 100644
--- a/src/mapgen_v5.cpp
+++ b/src/mapgen_v5.cpp
@@ -68,13 +68,15 @@ MapgenV5::MapgenV5(int mapgenid, MapgenParams *params, EmergeManager *emerge)
noise_height = new Noise(&sp->np_height, seed, csize.X, csize.Z);
// 3D terrain noise
- noise_cave1 = new Noise(&sp->np_cave1, seed, csize.X, csize.Y + 2, csize.Z);
- noise_cave2 = new Noise(&sp->np_cave2, seed, csize.X, csize.Y + 2, csize.Z);
- noise_ground = new Noise(&sp->np_ground, seed, csize.X, csize.Y + 2, csize.Z);
+ noise_cave1 = new Noise(&sp->np_cave1, seed, csize.X, csize.Y + 2, csize.Z);
+ noise_cave2 = new Noise(&sp->np_cave2, seed, csize.X, csize.Y + 2, csize.Z);
+ noise_ground = new Noise(&sp->np_ground, seed, csize.X, csize.Y + 2, csize.Z);
// Biome noise
- noise_heat = new Noise(&params->np_biome_heat, seed, csize.X, csize.Z);
- noise_humidity = new Noise(&params->np_biome_humidity, seed, csize.X, csize.Z);
+ noise_heat = new Noise(&params->np_biome_heat, seed, csize.X, csize.Z);
+ noise_humidity = new Noise(&params->np_biome_humidity, seed, csize.X, csize.Z);
+ noise_heat_blend = new Noise(&params->np_biome_heat_blend, seed, csize.X, csize.Z);
+ noise_humidity_blend = new Noise(&params->np_biome_humidity_blend, seed, csize.X, csize.Z);
//// Resolve nodes to be used
INodeDefManager *ndef = emerge->ndef;
@@ -116,6 +118,8 @@ MapgenV5::~MapgenV5()
delete noise_heat;
delete noise_humidity;
+ delete noise_heat_blend;
+ delete noise_humidity_blend;
delete[] heightmap;
delete[] biomemap;
@@ -330,7 +334,13 @@ void MapgenV5::calculateNoise()
noise_filler_depth->perlinMap2D(x, z);
noise_heat->perlinMap2D(x, z);
noise_humidity->perlinMap2D(x, z);
+ noise_heat_blend->perlinMap2D(x, z);
+ noise_humidity_blend->perlinMap2D(x, z);
+ for (s32 i = 0; i < csize.X * csize.Z; i++) {
+ noise_heat->result[i] += noise_heat_blend->result[i];
+ noise_humidity->result[i] += noise_humidity_blend->result[i];
+ }
//printf("calculateNoise: %dus\n", t.stop());
}