From 582e450bad08006dff141216351b81d3eb9270b7 Mon Sep 17 00:00:00 2001 From: darkrose Date: Thu, 22 Sep 2011 19:11:48 +1000 Subject: added locking chests - clean patch --- src/map.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/map.cpp') diff --git a/src/map.cpp b/src/map.cpp index 7de79c75d..a8e7235cf 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -28,6 +28,8 @@ 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: @@ -890,7 +892,7 @@ void Map::updateLighting(core::map & a_blocks, /* */ void Map::addNodeAndUpdate(v3s16 p, MapNode n, - core::map &modified_blocks) + core::map &modified_blocks, std::string &player_name) { /*PrintInfo(m_dout); m_dout<clone(); + /* lockable chest, insert the owner's name */ + if (meta->typeId() == CONTENT_LOCKABLE_CHEST) + { + LockingChestNodeMetadata *lcm = (LockingChestNodeMetadata*)meta; + lcm->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, @@ -1290,7 +1304,8 @@ bool Map::addNodeWithEvent(v3s16 p, MapNode n) bool succeeded = true; try{ core::map modified_blocks; - addNodeAndUpdate(p, n, modified_blocks); + std::string st = std::string(""); + addNodeAndUpdate(p, n, modified_blocks, st); // Copy modified_blocks to event for(core::map::Iterator -- cgit v1.2.3