Dungeongen: Also preserve river water nodes

For future river mapgens
Dungeons will not generate in river water, to
avoid dungeons filling and blocking river channels
This commit is contained in:
paramat 2015-11-28 14:51:22 +00:00
parent 900db31063
commit 452c88308c
2 changed files with 5 additions and 1 deletions

@ -65,6 +65,9 @@ DungeonGen::DungeonGen(Mapgen *mapgen, DungeonParams *dparams)
dp.np_wetness = nparams_dungeon_wetness; dp.np_wetness = nparams_dungeon_wetness;
dp.np_density = nparams_dungeon_density; dp.np_density = nparams_dungeon_density;
} }
// For mapgens using river water
dp.c_river_water = mg->ndef->getId("mapgen_river_water_source");
} }
@ -87,7 +90,7 @@ void DungeonGen::generate(u32 bseed, v3s16 nmin, v3s16 nmax)
u32 i = vm->m_area.index(nmin.X, y, z); u32 i = vm->m_area.index(nmin.X, y, z);
for (s16 x = nmin.X; x <= nmax.X; x++) { for (s16 x = nmin.X; x <= nmax.X; x++) {
content_t c = vm->m_data[i].getContent(); content_t c = vm->m_data[i].getContent();
if (c == CONTENT_AIR || c == dp.c_water) if (c == CONTENT_AIR || c == dp.c_water || c == dp.c_river_water)
vm->m_flags[i] |= VMANIP_FLAG_DUNGEON_PRESERVE; vm->m_flags[i] |= VMANIP_FLAG_DUNGEON_PRESERVE;
i++; i++;
} }

@ -40,6 +40,7 @@ int dir_to_facedir(v3s16 d);
struct DungeonParams { struct DungeonParams {
content_t c_water; content_t c_water;
content_t c_river_water;
content_t c_cobble; content_t c_cobble;
content_t c_moss; content_t c_moss;
content_t c_stair; content_t c_stair;