summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
{