summaryrefslogtreecommitdiff
path: root/src/mapgen.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2013-07-06 02:21:35 -0400
committerkwolekr <kwolekr@minetest.net>2013-07-06 02:21:54 -0400
commit18d7bc7fa1f2621eb593969b7bcccfeb4918c05f (patch)
treeeaff36cef37b8a219732d7a85357f0755b608181 /src/mapgen.cpp
parent3607fae75a00a1d0fee1b5caf58d04dcd9e2bc3a (diff)
downloadminetest-18d7bc7fa1f2621eb593969b7bcccfeb4918c05f.tar.gz
minetest-18d7bc7fa1f2621eb593969b7bcccfeb4918c05f.tar.bz2
minetest-18d7bc7fa1f2621eb593969b7bcccfeb4918c05f.zip
Mapgen V7: Huge rewrite, also tweaks to cavegen et al.
Diffstat (limited to 'src/mapgen.cpp')
-rw-r--r--src/mapgen.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/mapgen.cpp b/src/mapgen.cpp
index 905e80e89..94d1a6310 100644
--- a/src/mapgen.cpp
+++ b/src/mapgen.cpp
@@ -291,7 +291,7 @@ void Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) {
continue;
int height = getHeight();
- int max_y = nmax.Y + MAP_BLOCKSIZE;
+ int max_y = nmax.Y;// + MAP_BLOCKSIZE - 1;
if (y + 1 + height > max_y) {
continue;
#if 0
@@ -859,9 +859,16 @@ void Mapgen::updateHeightmap(v3s16 nmin, v3s16 nmax) {
//TimeTaker t("Mapgen::updateHeightmap", NULL, PRECISION_MICRO);
int index = 0;
for (s16 z = nmin.Z; z <= nmax.Z; z++) {
- for (s16 x = nmin.X; x <= nmax.X; x++) {
+ for (s16 x = nmin.X; x <= nmax.X; x++, index++) {
s16 y = findGroundLevel(v2s16(x, z), nmin.Y, nmax.Y);
- heightmap[index++] = y;
+
+ // if the values found are out of range, trust the old heightmap
+ if (y == nmax.Y && heightmap[index] > nmax.Y)
+ continue;
+ if (y == nmin.Y - 1 && heightmap[index] < nmin.Y)
+ continue;
+
+ heightmap[index] = y;
}
}
//printf("updateHeightmap: %dus\n", t.stop());
@@ -1060,9 +1067,12 @@ bool MapgenV7Params::readParams(Settings *settings) {
bool success =
settings->getNoiseParams("mgv7_np_terrain_base", np_terrain_base) &&
settings->getNoiseParams("mgv7_np_terrain_alt", np_terrain_alt) &&
- settings->getNoiseParams("mgv7_np_terrain_mod", np_terrain_mod) &&
settings->getNoiseParams("mgv7_np_terrain_persist", np_terrain_persist) &&
settings->getNoiseParams("mgv7_np_height_select", np_height_select) &&
+ settings->getNoiseParams("mgv7_np_filler_depth", np_filler_depth) &&
+ settings->getNoiseParams("mgv7_np_mount_height", np_mount_height) &&
+ settings->getNoiseParams("mgv7_np_ridge_uwater", np_ridge_uwater) &&
+ settings->getNoiseParams("mgv7_np_mountain", np_mountain) &&
settings->getNoiseParams("mgv7_np_ridge", np_ridge);
return success;
}
@@ -1071,9 +1081,12 @@ bool MapgenV7Params::readParams(Settings *settings) {
void MapgenV7Params::writeParams(Settings *settings) {
settings->setNoiseParams("mgv7_np_terrain_base", np_terrain_base);
settings->setNoiseParams("mgv7_np_terrain_alt", np_terrain_alt);
- settings->setNoiseParams("mgv7_np_terrain_mod", np_terrain_mod);
settings->setNoiseParams("mgv7_np_terrain_persist", np_terrain_persist);
settings->setNoiseParams("mgv7_np_height_select", np_height_select);
+ settings->setNoiseParams("mgv7_np_filler_depth", np_filler_depth);
+ settings->setNoiseParams("mgv7_np_mount_height", np_mount_height);
+ settings->setNoiseParams("mgv7_np_ridge_uwater", np_ridge_uwater);
+ settings->setNoiseParams("mgv7_np_mountain", np_mountain);
settings->setNoiseParams("mgv7_np_ridge", np_ridge);
}