diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index eefd3490c..8b508cf59 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1384,9 +1384,6 @@ mapgen_limit (Map generation limit) int 31000 0 31000 # and junglegrass, in all other mapgens this flag controls all decorations. mg_flags (Mapgen flags) flags caves,dungeons,light,decorations,biomes caves,dungeons,light,decorations,biomes,nocaves,nodungeons,nolight,nodecorations,nobiomes -# Whether dungeons occasionally project from the terrain. -projecting_dungeons (Projecting dungeons) bool true - [*Biome API temperature and humidity noise parameters] # Temperature variation for biomes. diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 0c51610c9..01ee97a33 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -421,7 +421,6 @@ void set_default_settings(Settings *settings) settings->setDefault("mg_flags", "caves,dungeons,light,decorations,biomes"); settings->setDefault("fixed_map_seed", ""); settings->setDefault("max_block_generate_distance", "8"); - settings->setDefault("projecting_dungeons", "true"); settings->setDefault("enable_mapgen_debug_info", "false"); // Server list announcing diff --git a/src/mapgen/dungeongen.cpp b/src/mapgen/dungeongen.cpp index efc3acc51..acdb1a0f0 100644 --- a/src/mapgen/dungeongen.cpp +++ b/src/mapgen/dungeongen.cpp @@ -86,8 +86,6 @@ void DungeonGen::generate(MMVManip *vm, u32 bseed, v3s16 nmin, v3s16 nmax) //TimeTaker t("gen dungeons"); - static const bool preserve_ignore = !g_settings->getBool("projecting_dungeons"); - this->vm = vm; this->blockseed = bseed; random.seed(bseed + 2); @@ -96,9 +94,10 @@ void DungeonGen::generate(MMVManip *vm, u32 bseed, v3s16 nmin, v3s16 nmax) vm->clearFlag(VMANIP_FLAG_DUNGEON_INSIDE | VMANIP_FLAG_DUNGEON_PRESERVE); if (dp.only_in_ground) { - // Set all air and liquid drawtypes to be untouchable to make dungeons - // open to air and liquids. - // Optionally set ignore to be untouchable to prevent projecting dungeons. + // Set all air and liquid drawtypes to be untouchable to make dungeons generate + // in ground only. + // Set 'ignore' to be untouchable to prevent generation in ungenerated neighbor + // mapchunks, to avoid dungeon rooms generating outside ground. // Like randomwalk caves, preserve nodes that have 'is_ground_content = false', // to avoid dungeons that generate out beyond the edge of a mapchunk destroying // nodes added by mods in 'register_on_generated()'. @@ -109,8 +108,7 @@ void DungeonGen::generate(MMVManip *vm, u32 bseed, v3s16 nmin, v3s16 nmax) content_t c = vm->m_data[i].getContent(); NodeDrawType dtype = ndef->get(c).drawtype; if (dtype == NDT_AIRLIKE || dtype == NDT_LIQUID || - (preserve_ignore && c == CONTENT_IGNORE) || - !ndef->get(c).is_ground_content) + c == CONTENT_IGNORE || !ndef->get(c).is_ground_content) vm->m_flags[i] |= VMANIP_FLAG_DUNGEON_PRESERVE; i++; }