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.
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