diff --git a/src/server.cpp b/src/server.cpp index 241826ba2..7fad623c2 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -4951,36 +4951,28 @@ v3f findSpawnPos(ServerMap &map) { s32 range = 1 + i; // We're going to try to throw the player to this position - v2s16 nodepos2d = v2s16(-range + (myrand()%(range*2)), - -range + (myrand()%(range*2))); - //v2s16 sectorpos = getNodeSectorPos(nodepos2d); - // Get ground height at point (fallbacks to heightmap function) - s16 groundheight = map.findGroundLevel(nodepos2d); - // Don't go underwater - if(groundheight <= water_level) - { - //infostream<<"-> Underwater"< water_level + 6) - { - //infostream<<"-> Underwater"< water_level + 6) // Don't go to high places + continue; + + nodepos = v3s16(nodepos2d.X, groundheight, nodepos2d.Y); bool is_good = false; s32 air_count = 0; - for(s32 i=0; i<10; i++){ + for (s32 i = 0; i < 10; i++) { v3s16 blockpos = getNodeBlockPos(nodepos); map.emergeBlock(blockpos, true); - MapNode n = map.getNodeNoEx(nodepos); - if(n.getContent() == CONTENT_AIR){ + content_t c = map.getNodeNoEx(nodepos).getContent(); + if (c == CONTENT_AIR || c == CONTENT_IGNORE) { air_count++; - if(air_count >= 2){ + if (air_count >= 2){ is_good = true; - nodepos.Y -= 1; break; } }