summaryrefslogtreecommitdiff
path: root/src/mapgen_v7.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-01-04 02:34:33 -0500
committerkwolekr <kwolekr@minetest.net>2015-01-04 02:42:31 -0500
commit7233a1228eb161cbcbb46c6e801cabd89ef3d2ab (patch)
treeaf3b728cb6052e3bd409ac39cd6b2db7c633076d /src/mapgen_v7.cpp
parent060ae29eafbca089824cfbcedc9bc36b7fda5d5e (diff)
downloadminetest-7233a1228eb161cbcbb46c6e801cabd89ef3d2ab.tar.gz
minetest-7233a1228eb161cbcbb46c6e801cabd89ef3d2ab.tar.bz2
minetest-7233a1228eb161cbcbb46c6e801cabd89ef3d2ab.zip
Lighting: Fix nearly all issues
The cause of a single light source seemingly being lit without spread was due to its creation in the +Y mapblock boundary layer during map generation, which was ignored as the overtop. This overtop explicitly needs to be omitted during sunlight propagation, however. To accomplish this, Mapgen::calcLighting() was split into separate functions taking separate parameters. Additionally, do not diminish light too early during spread. This fixes the output inconsistency between Map::updateLighting and Mapgen::calcLighting.
Diffstat (limited to 'src/mapgen_v7.cpp')
-rw-r--r--src/mapgen_v7.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/mapgen_v7.cpp b/src/mapgen_v7.cpp
index 3b7c20b96..a7a56f378 100644
--- a/src/mapgen_v7.cpp
+++ b/src/mapgen_v7.cpp
@@ -260,8 +260,7 @@ void MapgenV7::makeChunk(BlockMakeData *data)
updateLiquid(&data->transforming_liquid, full_node_min, full_node_max);
if (flags & MG_LIGHT)
- calcLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
- node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE);
+ calcLighting(node_min, node_max);
//setLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
// node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, 0xFF);