Skip to content
Snippets Groups Projects
Commit 452c8830 authored by paramat's avatar paramat
Browse files

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
parent 900db310
No related branches found
No related tags found
No related merge requests found
...@@ -65,6 +65,9 @@ DungeonGen::DungeonGen(Mapgen *mapgen, DungeonParams *dparams) ...@@ -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) ...@@ -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); ...@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment