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);