diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp index db172e097..f1e268866 100644 --- a/src/client/content_mapblock.cpp +++ b/src/client/content_mapblock.cpp @@ -127,7 +127,7 @@ void MapblockMeshGenerator::drawQuad(const TileSpec &tile, v3f *coords, const v3 if (data->m_smooth_lighting) vertices[j].Color = blendLightColor(coords[j]); else - vertices[j].Color = cur_node.color; + vertices[j].Color = cur_node.lcolor; if (shade_face) applyFacesShading(vertices[j].Color, normal2); vertices[j].TCoords = tcoords[j]; @@ -239,16 +239,16 @@ void MapblockMeshGenerator::drawCuboid(const aabb3f &box, void MapblockMeshGenerator::getSmoothLightFrame() { for (int k = 0; k < 8; ++k) - cur_node.frame.sunlight[k] = false; + cur_node.lframe.sunlight[k] = false; for (int k = 0; k < 8; ++k) { LightPair light(getSmoothLightTransparent(blockpos_nodes + cur_node.p, light_dirs[k], data)); - cur_node.frame.lightsDay[k] = light.lightDay; - cur_node.frame.lightsNight[k] = light.lightNight; + cur_node.lframe.lightsDay[k] = light.lightDay; + cur_node.lframe.lightsNight[k] = light.lightNight; // If there is direct sunlight and no ambient occlusion at some corner, // mark the vertical edge (top and bottom corners) containing it. if (light.lightDay == 255) { - cur_node.frame.sunlight[k] = true; - cur_node.frame.sunlight[k ^ 2] = true; + cur_node.lframe.sunlight[k] = true; + cur_node.lframe.sunlight[k ^ 2] = true; } } } @@ -271,9 +271,9 @@ LightInfo MapblockMeshGenerator::blendLight(const v3f &vertex_pos) f32 dy = (k & 2) ? y : 1 - y; f32 dz = (k & 1) ? z : 1 - z; // Use direct sunlight (255), if any; use daylight otherwise. - f32 light_boosted = cur_node.frame.sunlight[k] ? 255 : cur_node.frame.lightsDay[k]; - lightDay += dx * dy * dz * cur_node.frame.lightsDay[k]; - lightNight += dx * dy * dz * cur_node.frame.lightsNight[k]; + f32 light_boosted = cur_node.lframe.sunlight[k] ? 255 : cur_node.lframe.lightsDay[k]; + lightDay += dx * dy * dz * cur_node.lframe.lightsDay[k]; + lightNight += dx * dy * dz * cur_node.lframe.lightsNight[k]; lightBoosted += dx * dy * dz * light_boosted; } return LightInfo{lightDay, lightNight, lightBoosted}; @@ -379,7 +379,7 @@ void MapblockMeshGenerator::drawAutoLightedCuboid(aabb3f box, }); } else { drawCuboid(box, tiles, tile_count, txc, mask, [&] (int face, video::S3DVertex vertices[4]) { - video::SColor color = cur_node.color; + video::SColor color = cur_node.lcolor; if (!cur_node.f->light_source) applyFacesShading(color, vertices[0].Normal); for (int j = 0; j < 4; j++) { @@ -555,7 +555,7 @@ void MapblockMeshGenerator::prepareLiquidNodeDrawing() } cur_liquid.color_top = encode_light(light, cur_node.f->light_source); - cur_node.color = encode_light(light, cur_node.f->light_source); + cur_node.lcolor = encode_light(light, cur_node.f->light_source); } void MapblockMeshGenerator::getLiquidNeighborhood() @@ -702,7 +702,7 @@ void MapblockMeshGenerator::drawLiquidSides() if (data->m_smooth_lighting) color = blendLightColor(pos); else - color = cur_node.color; + color = cur_node.lcolor; pos += cur_node.origin; @@ -1269,7 +1269,7 @@ void MapblockMeshGenerator::drawPlantlikeRootedNode() } else { MapNode ntop = data->m_vmanip.getNodeNoEx(blockpos_nodes + cur_node.p); auto light = LightPair(getInteriorLight(ntop, 0, nodedef)); - cur_node.color = encode_light(light, cur_node.f->light_source); + cur_node.lcolor = encode_light(light, cur_node.f->light_source); } drawPlantlike(tile, true); cur_node.p.Y--; @@ -1713,7 +1713,7 @@ void MapblockMeshGenerator::drawMeshNode() bool is_light_source = cur_node.f->light_source != 0; for (u32 k = 0; k < vertex_count; k++) { video::S3DVertex &vertex = vertices[k]; - video::SColor color = cur_node.color; + video::SColor color = cur_node.lcolor; if (!is_light_source) applyFacesShading(color, vertex.Normal); vertex.Color = color; @@ -1750,7 +1750,7 @@ void MapblockMeshGenerator::drawNode() getSmoothLightFrame(); } else { auto light = LightPair(getInteriorLight(cur_node.n, 0, nodedef)); - cur_node.color = encode_light(light, cur_node.f->light_source); + cur_node.lcolor = encode_light(light, cur_node.f->light_source); } switch (cur_node.f->drawtype) { case NDT_FLOWINGLIQUID: drawLiquidNode(); break; diff --git a/src/client/content_mapblock.h b/src/client/content_mapblock.h index bc9e86e8a..8302cd2a7 100644 --- a/src/client/content_mapblock.h +++ b/src/client/content_mapblock.h @@ -59,12 +59,12 @@ private: // current node struct { - v3s16 p; - v3f origin; + v3s16 p; // relative to blockpos_nodes + v3f origin; // p in BS space MapNode n; const ContentFeatures *f; - LightFrame frame; - video::SColor color; + LightFrame lframe; // smooth lighting + video::SColor lcolor; // unsmooth lighting } cur_node; // lighting