From 7233a1228eb161cbcbb46c6e801cabd89ef3d2ab Mon Sep 17 00:00:00 2001 From: kwolekr Date: Sun, 4 Jan 2015 02:34:33 -0500 Subject: 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. --- src/mapgen_v6.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/mapgen_v6.cpp') diff --git a/src/mapgen_v6.cpp b/src/mapgen_v6.cpp index b97512535..3d9f4c517 100644 --- a/src/mapgen_v6.cpp +++ b/src/mapgen_v6.cpp @@ -534,7 +534,7 @@ void MapgenV6::makeChunk(BlockMakeData *data) } // Add top and bottom side of water to transforming_liquid queue - updateLiquid(&data->transforming_liquid, full_node_min, full_node_max); + //updateLiquid(&data->transforming_liquid, full_node_min, full_node_max); // Grow grass growGrass(); @@ -551,8 +551,7 @@ void MapgenV6::makeChunk(BlockMakeData *data) // Calculate lighting if (flags & MG_LIGHT) - calcLighting(node_min - v3s16(1, 1, 1) * MAP_BLOCKSIZE, - node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE); + calcLighting(node_min, node_max); this->generating = false; } -- cgit v1.2.3