Mgv5: Skip calculation of filler, heat and humidity perlinmaps in underground mapchunks

This commit is contained in:
paramat 2015-01-21 11:42:13 +00:00 committed by kwolekr
parent a9f81b729b
commit aafbbcd537

@ -302,24 +302,25 @@ void MapgenV5::calculateNoise()
int y = node_min.Y - 1; int y = node_min.Y - 1;
int z = node_min.Z; int z = node_min.Z;
noise_filler_depth->perlinMap2D(x, z);
noise_factor->perlinMap2D(x, z); noise_factor->perlinMap2D(x, z);
noise_height->perlinMap2D(x, z); noise_height->perlinMap2D(x, z);
noise_ground->perlinMap3D(x, y, z);
if (flags & MG_CAVES) { if (flags & MG_CAVES) {
noise_cave1->perlinMap3D(x, y, z); noise_cave1->perlinMap3D(x, y, z);
noise_cave2->perlinMap3D(x, y, z); noise_cave2->perlinMap3D(x, y, z);
} }
noise_ground->perlinMap3D(x, y, z);
if (spflags & MGV5_BLOBS) { if (spflags & MGV5_BLOBS) {
noise_crumble->perlinMap3D(x, y, z); noise_crumble->perlinMap3D(x, y, z);
noise_wetness->perlinMap3D(x, y, z); noise_wetness->perlinMap3D(x, y, z);
} }
noise_heat->perlinMap2D(x, z); if (node_max.Y >= water_level) {
noise_humidity->perlinMap2D(x, z); noise_filler_depth->perlinMap2D(x, z);
noise_heat->perlinMap2D(x, z);
noise_humidity->perlinMap2D(x, z);
}
//printf("calculateNoise: %dus\n", t.stop()); //printf("calculateNoise: %dus\n", t.stop());
} }
@ -531,12 +532,12 @@ void MapgenV5::generateBlobs()
void MapgenV5::dustTopNodes() void MapgenV5::dustTopNodes()
{ {
if (node_max.Y < water_level)
return;
v3s16 em = vm->m_area.getExtent(); v3s16 em = vm->m_area.getExtent();
u32 index = 0; u32 index = 0;
if (water_level > node_max.Y)
return;
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++) { for (s16 x = node_min.X; x <= node_max.X; x++, index++) {
Biome *biome = (Biome *)bmgr->get(biomemap[index]); Biome *biome = (Biome *)bmgr->get(biomemap[index]);