summaryrefslogtreecommitdiff
path: root/src/mapnode.h
diff options
context:
space:
mode:
authorDániel Juhász <juhdanad@gmail.com>2016-10-20 21:41:38 +0200
committerNer'zhul <nerzhul@users.noreply.github.com>2016-10-27 08:04:42 +0200
commitc071efaa43ad3dcba7d60a7a67e942aae2a7dc83 (patch)
tree005ca91912ba59cbe5b676b8067d82a5483ed1ce /src/mapnode.h
parent1fd9a07497c45364ed8396653501c6be2a2e2ade (diff)
downloadminetest-c071efaa43ad3dcba7d60a7a67e942aae2a7dc83.tar.gz
minetest-c071efaa43ad3dcba7d60a7a67e942aae2a7dc83.tar.bz2
minetest-c071efaa43ad3dcba7d60a7a67e942aae2a7dc83.zip
Improved lighting
This commit rewrites the procedure that is responsible for light updating. this commit -provides iterative solutions for unlighting and light spreading -introduces a new priority queue-like container for the iteration -creates per-node MapBlock caching to reduce retrieving MapBlocks from the map -calculates with map block positions and in-block relative node coordinates -skips light updating if it is not necessary since the node's new light will be the same as its old light was
Diffstat (limited to 'src/mapnode.h')
-rw-r--r--src/mapnode.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mapnode.h b/src/mapnode.h
index 2f6224f02..0bd61c554 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -191,6 +191,8 @@ struct MapNode
param2 = p;
}
+ void setLight(enum LightBank bank, u8 a_light, const ContentFeatures &f);
+
void setLight(enum LightBank bank, u8 a_light, INodeDefManager *nodemgr);
/**
@@ -202,6 +204,13 @@ struct MapNode
u8 getLight(enum LightBank bank, INodeDefManager *nodemgr) const;
+ /*!
+ * Returns the node's light level from param1.
+ * If the node emits light, it is ignored.
+ * \param f the ContentFeatures of this node.
+ */
+ u8 getLightRaw(enum LightBank bank, const ContentFeatures &f) const;
+
/**
* This function differs from getLight(enum LightBank bank, INodeDefManager *nodemgr)
* in that the ContentFeatures of the node in question are not retrieved by