aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-16 16:47:20 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:47 +0200
commiteabfb370acfcaf4c9be680419d7c97cf7418faf4 (patch)
treedc52c5e4dfee33793c45c8b873b8955b7469d1b7
parent62164d955ce739e87165bb90b1439807aca5ca55 (diff)
downloadminetest-eabfb370acfcaf4c9be680419d7c97cf7418faf4.tar.gz
minetest-eabfb370acfcaf4c9be680419d7c97cf7418faf4.tar.bz2
minetest-eabfb370acfcaf4c9be680419d7c97cf7418faf4.zip
MapNode constructor to allow ndef+name
-rw-r--r--src/mapnode.cpp14
-rw-r--r--src/mapnode.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/src/mapnode.cpp b/src/mapnode.cpp
index c5756e8ba..a757149b1 100644
--- a/src/mapnode.cpp
+++ b/src/mapnode.cpp
@@ -155,6 +155,20 @@ v3s16 unpackDir(u8 b)
MapNode
*/
+// Create directly from a nodename
+// If name is unknown, sets CONTENT_IGNORE
+MapNode::MapNode(INodeDefManager *ndef, const std::string &name,
+ u8 a_param1, u8 a_param2)
+{
+ content_t id = CONTENT_IGNORE;
+ ndef->getId(name, id);
+ param1 = a_param1;
+ param2 = a_param2;
+ // Set content (param0 and (param2&0xf0)) after other params
+ // because this needs to override part of param2
+ setContent(id);
+}
+
void MapNode::setLight(enum LightBank bank, u8 a_light, INodeDefManager *nodemgr)
{
// If node doesn't contain light data, ignore this
diff --git a/src/mapnode.h b/src/mapnode.h
index 285f197db..e287ea54f 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -147,6 +147,11 @@ struct MapNode
// because this needs to override part of param2
setContent(content);
}
+
+ // Create directly from a nodename
+ // If name is unknown, sets CONTENT_IGNORE
+ MapNode(INodeDefManager *ndef, const std::string &name,
+ u8 a_param1=0, u8 a_param2=0);
bool operator==(const MapNode &other)
{