From c0a7c670a465b4c05d90a8a4e8001797ec4e628a Mon Sep 17 00:00:00 2001 From: paramat Date: Thu, 29 Oct 2015 00:17:48 +0000 Subject: findSpawnPos: Add setting for max height above water level Increase default from 6 to 16 to help with mgv7 and mgfractal Large-scale or alternative mapgens can result in a lowland spawn point not being found, causing a spawn at (0, 0, 0) possibly buried underground The max height is now settable to allow correct player spawn in any mapgen or when using custom noise parameters --- src/server.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 1e039631c..09675dae3 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3269,7 +3269,7 @@ v3f Server::findSpawnPos() } s16 water_level = map.getWaterLevel(); - + s16 vertical_spawn_range = g_settings->getS16("vertical_spawn_range"); bool is_good = false; // Try to find a good place a few times @@ -3282,9 +3282,9 @@ v3f Server::findSpawnPos() // Get ground height at point s16 groundheight = map.findGroundLevel(nodepos2d); - if (groundheight <= water_level) // Don't go underwater - continue; - if (groundheight > water_level + 6) // Don't go to high places + // Don't go underwater or to high places + if (groundheight <= water_level || + groundheight > water_level + vertical_spawn_range) continue; v3s16 nodepos(nodepos2d.X, groundheight, nodepos2d.Y); -- cgit v1.2.3