summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorparamat <mat.gregory@virginmedia.com>2017-03-23 00:18:59 +0000
committerparamat <mat.gregory@virginmedia.com>2017-03-27 03:18:09 +0100
commitec0c4d33db9e0b7b3e541757e34c04c08c3b48c9 (patch)
treea1d31e46b60906c71c9aa29a0588d6016b63f6d3 /src/map.cpp
parent09f2cd0264993e7b81d84d77bfc670b40ef82444 (diff)
downloadminetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.tar.gz
minetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.tar.bz2
minetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.zip
Map generation limit: Make per-world
The setting limits map generation but affects nothing else. Add 'mapgen_limit' to global mapgen parameters. Move 'blockpos_over_mapgen_limit()' to the only place it is called from: map.cpp. Allow teleportation to any part of the world even if over the set mapgen limit. Simplify the reading of this limit in mgvalleys. Remove the 'map_generation_limit' setting.
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 504760d09..b690ea3b3 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1367,6 +1367,19 @@ s16 ServerMap::getWaterLevel()
return getMapgenParams()->water_level;
}
+bool ServerMap::blockpos_over_mapgen_limit(v3s16 p)
+{
+ const s16 mapgen_limit_bp = rangelim(
+ getMapgenParams()->mapgen_limit, 0, MAX_MAP_GENERATION_LIMIT) /
+ MAP_BLOCKSIZE;
+ return p.X < -mapgen_limit_bp ||
+ p.X > mapgen_limit_bp ||
+ p.Y < -mapgen_limit_bp ||
+ p.Y > mapgen_limit_bp ||
+ p.Z < -mapgen_limit_bp ||
+ p.Z > mapgen_limit_bp;
+}
+
bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data)
{
s16 csize = getMapgenParams()->chunksize;