Mapgen: Don't spread light of nodes outside the desired area
This fixes #3935, a regression from 0338c2e
.
An 'optimization' was performed where an index for the VoxelManip being
operated on was mistakenly used for bounds checking within the incorrect
VoxelArea, namely, the area wherein light should be spread.
stable-0.4
parent
597c1d73da
commit
0115da1d63
|
@ -242,13 +242,10 @@ void Mapgen::setLighting(u8 light, v3s16 nmin, v3s16 nmax)
|
|||
|
||||
void Mapgen::lightSpread(VoxelArea &a, v3s16 p, u8 light)
|
||||
{
|
||||
if (light <= 1)
|
||||
if (light <= 1 || !a.contains(p))
|
||||
return;
|
||||
|
||||
u32 vi = vm->m_area.index(p);
|
||||
if (!a.contains(vi))
|
||||
return;
|
||||
|
||||
MapNode &n = vm->m_data[vi];
|
||||
|
||||
// Decay light in each of the banks separately
|
||||
|
|
Loading…
Reference in New Issue