diff options
author | paramat <mat.gregory@virginmedia.com> | 2017-03-23 00:18:59 +0000 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-03-27 03:18:09 +0100 |
commit | ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9 (patch) | |
tree | a1d31e46b60906c71c9aa29a0588d6016b63f6d3 /src/map.cpp | |
parent | 09f2cd0264993e7b81d84d77bfc670b40ef82444 (diff) | |
download | hax-minetest-server-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.tar.gz hax-minetest-server-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 '')
-rw-r--r-- | src/map.cpp | 13 |
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; |