1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Increase MapBlock::actuallyUpdateDayNightDiff() performance by 2-8x. ok @celeron55

Before patch, function consumes up to ~8% of the main server loop. After, ~0% (below level of 2 places of significance)
This commit is contained in:
Craig Robbins 2015-02-07 17:52:56 +10:00 committed by Loic Blot
parent bb59a8543d
commit caf8d2a9d1
3 changed files with 36 additions and 17 deletions

View file

@ -74,6 +74,22 @@ void MapNode::setLight(enum LightBank bank, u8 a_light, INodeDefManager *nodemgr
assert(0);
}
bool MapNode::isLightDayNightEq(INodeDefManager *nodemgr) const
{
const ContentFeatures &f = nodemgr->get(*this);
bool isEqual;
if (f.param_type == CPT_LIGHT) {
u8 day = MYMAX(f.light_source, param1 & 0x0f);
u8 night = MYMAX(f.light_source, (param1 >> 4) & 0x0f);
isEqual = day == night;
} else {
isEqual = true;
}
return isEqual;
}
u8 MapNode::getLight(enum LightBank bank, INodeDefManager *nodemgr) const
{
// Select the brightest of [light source, propagated light]