diff options
-rw-r--r-- | src/mapnode.cpp | 14 | ||||
-rw-r--r-- | src/mapnode.h | 5 |
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) { |