From: paramat Date: Mon, 7 Aug 2017 05:35:34 +0000 (+0100) Subject: Mgv7: Raise spawn point by 1 node for no mountain case X-Git-Tag: 5.0.0~971 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a4048e4e2e6d3c9177270437687118b93c33bf77;p=oweals%2Fminetest.git Mgv7: Raise spawn point by 1 node for no mountain case --- diff --git a/src/mapgen_v7.cpp b/src/mapgen_v7.cpp index f254a74d8..3ce22dbb1 100644 --- a/src/mapgen_v7.cpp +++ b/src/mapgen_v7.cpp @@ -238,20 +238,21 @@ int MapgenV7::getSpawnLevelAtPoint(v2s16 p) // If mountains are disabled, terrain level is base terrain level. // Avoids mid-air spawn where mountain terrain would have been. if (!(spflags & MGV7_MOUNTAINS)) { - if (y <= water_level || y > max_spawn_y) + if (y < water_level || y > max_spawn_y) return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point else - // + 1 to not be half-buried in a potential node-deep biome 'dust' - return y + 1; + // y + 2 because y is surface level and due to biome 'dust' + return y + 2; } // Search upwards for first node without mountain terrain int iters = 256; while (iters > 0 && y <= max_spawn_y) { - if (!getMountainTerrainAtPoint(p.X, y + 1, p.Y)) { // If air above + if (!getMountainTerrainAtPoint(p.X, y + 1, p.Y)) { if (y <= water_level || y > max_spawn_y) return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point else + // y + 1 due to biome 'dust' return y + 1; } y++;