aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/content_nodemeta.h4
-rw-r--r--src/map.cpp15
-rw-r--r--src/nodemetadata.h3
3 files changed, 6 insertions, 16 deletions
diff --git a/src/content_nodemeta.h b/src/content_nodemeta.h
index af3374124..e20334312 100644
--- a/src/content_nodemeta.h
+++ b/src/content_nodemeta.h
@@ -77,8 +77,8 @@ public:
virtual bool nodeRemovalDisabled();
virtual std::string getInventoryDrawSpecString();
- std::string getOwner(){ return m_text; }
- void setOwner(std::string t){ m_text = t; }
+ virtual std::string getOwner(){ return m_text; }
+ virtual void setOwner(std::string t){ m_text = t; }
private:
Inventory *m_inventory;
diff --git a/src/map.cpp b/src/map.cpp
index a8e7235cf..32675f08d 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -28,8 +28,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h"
#include "mapgen.h"
#include "nodemetadata.h"
-#include "content_nodemeta.h"
-#include "content_mapnode.h"
/*
SQLite format specification:
@@ -1016,20 +1014,9 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
if(meta_proto)
{
NodeMetadata *meta = meta_proto->clone();
- /* lockable chest, insert the owner's name */
- if (meta->typeId() == CONTENT_LOCKABLE_CHEST)
- {
- LockingChestNodeMetadata *lcm = (LockingChestNodeMetadata*)meta;
- lcm->setOwner(player_name);
- }
+ meta->setOwner(player_name);
setNodeMetadata(p, meta);
}
- else if (n.getContent() == CONTENT_LOCKABLE_CHEST)
- {
- LockingChestNodeMetadata *lcm = new LockingChestNodeMetadata();
- lcm->setOwner(player_name);
- setNodeMetadata(p, (NodeMetadata*)lcm);
- }
/*
If node is under sunlight and doesn't let sunlight through,
diff --git a/src/nodemetadata.h b/src/nodemetadata.h
index de682f9b6..d81ade96c 100644
--- a/src/nodemetadata.h
+++ b/src/nodemetadata.h
@@ -65,6 +65,9 @@ public:
// Used to make custom inventory menus.
// See format in guiInventoryMenu.cpp.
virtual std::string getInventoryDrawSpecString(){return "";}
+ // primarily used for locking chests, but others can play too
+ virtual std::string getOwner(){ return std::string(""); }
+ virtual void setOwner(std::string t){ }
protected:
static void registerType(u16 id, Factory f);