mirror of
https://github.com/minetest/minetest.git
synced 2024-11-23 16:13:46 +01:00
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:
parent
900db31063
commit
452c88308c
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user