From eabfb370acfcaf4c9be680419d7c97cf7418faf4 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 16 Nov 2011 16:47:20 +0200 Subject: [PATCH] MapNode constructor to allow ndef+name --- src/mapnode.cpp | 14 ++++++++++++++ src/mapnode.h | 5 +++++ 2 files changed, 19 insertions(+) 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) {