forked from Mirrorlandia_minetest/minetest
Correct overflowing rivers in Valleys mapgen.
This commit is contained in:
parent
13e7589fec
commit
eb6e2c11b1
@ -670,8 +670,8 @@ int MapgenValleys::generateTerrain()
|
|||||||
|
|
||||||
for (s16 z = node_min.Z; z <= node_max.Z; z++)
|
for (s16 z = node_min.Z; z <= node_max.Z; z++)
|
||||||
for (s16 x = node_min.X; x <= node_max.X; x++, index_2d++) {
|
for (s16 x = node_min.X; x <= node_max.X; x++, index_2d++) {
|
||||||
s16 river_y = round(noise_rivers->result[index_2d]);
|
s16 river_y = floor(noise_rivers->result[index_2d]);
|
||||||
s16 surface_y = round(noise_terrain_height->result[index_2d]);
|
s16 surface_y = floor(noise_terrain_height->result[index_2d]);
|
||||||
float slope = noise_inter_valley_slope->result[index_2d];
|
float slope = noise_inter_valley_slope->result[index_2d];
|
||||||
|
|
||||||
heightmap[index_2d] = surface_y;
|
heightmap[index_2d] = surface_y;
|
||||||
@ -703,7 +703,7 @@ int MapgenValleys::generateTerrain()
|
|||||||
} else if (river && y < river_y) {
|
} else if (river && y < river_y) {
|
||||||
// river
|
// river
|
||||||
vm->m_data[index_data] = n_river_water;
|
vm->m_data[index_data] = n_river_water;
|
||||||
} else if ((!fast_terrain) && (!river) && fill * slope > y - surface_y) {
|
} else if ((!fast_terrain) && (!river) && round(fill * slope) >= y - surface_y) {
|
||||||
// ground (slow method)
|
// ground (slow method)
|
||||||
vm->m_data[index_data] = n_stone;
|
vm->m_data[index_data] = n_stone;
|
||||||
heightmap[index_2d] = surface_max_y = y;
|
heightmap[index_2d] = surface_max_y = y;
|
||||||
|
Loading…
Reference in New Issue
Block a user