summaryrefslogtreecommitdiff
path: root/src/mapgen_v5.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2016-05-20 03:37:31 -0400
committerkwolekr <kwolekr@minetest.net>2016-05-27 23:23:58 -0400
commit0df5c01a8ce927c33ae9b67f459365505b980c33 (patch)
tree17d4e39a61afc9a37257c969b23630e99b8c89f1 /src/mapgen_v5.cpp
parentc5968049bbf73ceff08a2b1d35bb34192fa3f315 (diff)
downloadminetest-0df5c01a8ce927c33ae9b67f459365505b980c33.tar.gz
minetest-0df5c01a8ce927c33ae9b67f459365505b980c33.tar.bz2
minetest-0df5c01a8ce927c33ae9b67f459365505b980c33.zip
Mapgen: Remove calculateNoise from most mapgens
This commit moves noise calculation to the functions where the noise is actually required, increasing the separation of concerns and level of interdependency for each mapgen method. Valleys Mapgen is left unmodified.
Diffstat (limited to 'src/mapgen_v5.cpp')
-rw-r--r--src/mapgen_v5.cpp27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/mapgen_v5.cpp b/src/mapgen_v5.cpp
index 0c063dc6f..85df34353 100644
--- a/src/mapgen_v5.cpp
+++ b/src/mapgen_v5.cpp
@@ -225,9 +225,6 @@ void MapgenV5::makeChunk(BlockMakeData *data)
// Create a block-specific seed
blockseed = getBlockSeed2(full_node_min, seed);
- // Make some noise
- calculateNoise();
-
// Generate base terrain
s16 stone_surface_max_y = generateBaseTerrain();
@@ -312,26 +309,6 @@ void MapgenV5::makeChunk(BlockMakeData *data)
}
-void MapgenV5::calculateNoise()
-{
- //TimeTaker t("calculateNoise", NULL, PRECISION_MICRO);
- s16 x = node_min.X;
- s16 y = node_min.Y - 1;
- s16 z = node_min.Z;
-
- noise_factor->perlinMap2D(x, z);
- noise_height->perlinMap2D(x, z);
- noise_ground->perlinMap3D(x, y, z);
-
- // Cave noises are calculated in generateCaves()
- // only if solid terrain is present in mapchunk
-
- noise_filler_depth->perlinMap2D(x, z);
-
- //printf("calculateNoise: %dus\n", t.stop());
-}
-
-
//bool is_cave(u32 index) {
// double d1 = contour(noise_cave1->result[index]);
// double d2 = contour(noise_cave2->result[index]);
@@ -355,6 +332,10 @@ int MapgenV5::generateBaseTerrain()
u32 index2d = 0;
int stone_surface_max_y = -MAX_MAP_GENERATION_LIMIT;
+ noise_factor->perlinMap2D(node_min.X, node_min.Z);
+ noise_height->perlinMap2D(node_min.X, node_min.Z);
+ noise_ground->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z);
+
for (s16 z=node_min.Z; z<=node_max.Z; z++) {
for (s16 y=node_min.Y - 1; y<=node_max.Y + 1; y++) {
u32 vi = vm->m_area.index(node_min.X, y, z);