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:
parent
bb59a8543d
commit
caf8d2a9d1
3 changed files with 36 additions and 17 deletions
|
@ -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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue