Optimize lighting by a tiny bit

master
Perttu Ahola 2011-11-27 11:52:49 +02:00
parent a8a82e0b21
commit 4ce6e5f0c5
1 changed files with 12 additions and 8 deletions

View File

@ -310,21 +310,21 @@ void VoxelManipulator::unspreadLight(enum LightBank bank, v3s16 p, u8 oldlight,
If the neighbor is dimmer than what was specified If the neighbor is dimmer than what was specified
as oldlight (the light of the previous node) as oldlight (the light of the previous node)
*/ */
if(n2.getLight(bank, nodemgr) < oldlight) u8 light2 = n2.getLight(bank, nodemgr);
if(light2 < oldlight)
{ {
/* /*
And the neighbor is transparent and it has some light And the neighbor is transparent and it has some light
*/ */
if(nodemgr->get(n2).light_propagates && n2.getLight(bank, nodemgr) != 0) if(nodemgr->get(n2).light_propagates && light2 != 0)
{ {
/* /*
Set light to 0 and add to queue Set light to 0 and add to queue
*/ */
u8 current_light = n2.getLight(bank, nodemgr);
n2.setLight(bank, 0, nodemgr); n2.setLight(bank, 0, nodemgr);
unspreadLight(bank, n2pos, current_light, light_sources, nodemgr); unspreadLight(bank, n2pos, light2, light_sources, nodemgr);
/* /*
Remove from light_sources if it is there Remove from light_sources if it is there
@ -528,12 +528,14 @@ void VoxelManipulator::spreadLight(enum LightBank bank, v3s16 p,
continue; continue;
MapNode &n2 = m_data[n2i]; MapNode &n2 = m_data[n2i];
u8 light2 = n2.getLight(bank, nodemgr);
/* /*
If the neighbor is brighter than the current node, If the neighbor is brighter than the current node,
add to list (it will light up this node on its turn) add to list (it will light up this node on its turn)
*/ */
if(n2.getLight(bank, nodemgr) > undiminish_light(oldlight)) if(light2 > undiminish_light(oldlight))
{ {
spreadLight(bank, n2pos, nodemgr); spreadLight(bank, n2pos, nodemgr);
} }
@ -541,7 +543,7 @@ void VoxelManipulator::spreadLight(enum LightBank bank, v3s16 p,
If the neighbor is dimmer than how much light this node If the neighbor is dimmer than how much light this node
would spread on it, add to list would spread on it, add to list
*/ */
if(n2.getLight(bank, nodemgr) < newlight) if(light2 < newlight)
{ {
if(nodemgr->get(n2).light_propagates) if(nodemgr->get(n2).light_propagates)
{ {
@ -633,12 +635,14 @@ void VoxelManipulator::spreadLight(enum LightBank bank,
continue; continue;
MapNode &n2 = m_data[n2i]; MapNode &n2 = m_data[n2i];
u8 light2 = n2.getLight(bank, nodemgr);
/* /*
If the neighbor is brighter than the current node, If the neighbor is brighter than the current node,
add to list (it will light up this node on its turn) add to list (it will light up this node on its turn)
*/ */
if(n2.getLight(bank, nodemgr) > undiminish_light(oldlight)) if(light2 > undiminish_light(oldlight))
{ {
lighted_nodes.insert(n2pos, true); lighted_nodes.insert(n2pos, true);
} }
@ -646,7 +650,7 @@ void VoxelManipulator::spreadLight(enum LightBank bank,
If the neighbor is dimmer than how much light this node If the neighbor is dimmer than how much light this node
would spread on it, add to list would spread on it, add to list
*/ */
if(n2.getLight(bank, nodemgr) < newlight) if(light2 < newlight)
{ {
if(nodemgr->get(n2).light_propagates) if(nodemgr->get(n2).light_propagates)
{ {