mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
Lighting: Update lighting at block loading
This commit updates mapblocks' light if necessary when they are loaded. This removes ghost lighting.
This commit is contained in:
parent
2bd10022cb
commit
f17c9c45dc
7 changed files with 274 additions and 122 deletions
|
@ -22,8 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
#include "voxel.h"
|
||||
#include "mapnode.h"
|
||||
#include <set>
|
||||
#include <map>
|
||||
#include "util/container.h"
|
||||
#include "util/cpp11_container.h"
|
||||
|
||||
class Map;
|
||||
class MapBlock;
|
||||
|
@ -69,10 +69,21 @@ SunlightPropagateResult propagateSunlight(VoxelManipulator &v, VoxelArea a,
|
|||
*/
|
||||
void update_lighting_nodes(
|
||||
Map *map,
|
||||
INodeDefManager *ndef,
|
||||
std::vector<std::pair<v3s16, MapNode> > &oldnodes,
|
||||
std::map<v3s16, MapBlock*> &modified_blocks);
|
||||
|
||||
/*!
|
||||
* Updates borders of the given mapblock.
|
||||
* Only updates if the block was marked with incomplete
|
||||
* lighting and the neighbor is also loaded.
|
||||
*
|
||||
* \param block the block to update
|
||||
* \param modified_blocks output, contains all map blocks that
|
||||
* the function modified
|
||||
*/
|
||||
void update_block_border_lighting(Map *map, MapBlock *block,
|
||||
std::map<v3s16, MapBlock*> &modified_blocks);
|
||||
|
||||
/*!
|
||||
* This class iterates trough voxels that intersect with
|
||||
* a line. The collision detection does not see nodeboxes,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue