forked from Mirrorlandia_minetest/minetest
Optimize lighting by a tiny bit
This commit is contained in:
parent
a8a82e0b21
commit
4ce6e5f0c5
@ -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
|
||||||
@ -529,11 +529,13 @@ void VoxelManipulator::spreadLight(enum LightBank bank, v3s16 p,
|
|||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
@ -634,11 +636,13 @@ void VoxelManipulator::spreadLight(enum LightBank bank,
|
|||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user