From 02c035c548787a589c2bb813112b080a638e2972 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Thu, 29 Mar 2012 00:28:48 +0300 Subject: Reduce EnvRef:set_node() time tenfold by postponing the dayNightDiff update until it is actually needed --- src/mapblock.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/mapblock.h') diff --git a/src/mapblock.h b/src/mapblock.h index 272da8ce3..4f61d6aa7 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -360,10 +360,17 @@ public: Sets m_day_night_differs to appropriate value. These methods don't care about neighboring blocks. */ - void updateDayNightDiff(); + void actuallyUpdateDayNightDiff(); + /* + Call this to schedule what the previous function does to be done + when the value is actually needed. + */ + void expireDayNightDiff(); - bool dayNightDiffed() + bool getDayNightDiff() { + if(m_day_night_differs_expired) + actuallyUpdateDayNightDiff(); return m_day_night_differs; } @@ -517,6 +524,7 @@ private: // Whether day and night lighting differs bool m_day_night_differs; + bool m_day_night_differs_expired; bool m_generated; -- cgit v1.2.3