From 6a76c226e10e92c3e3339096f07f8ab065e2098b Mon Sep 17 00:00:00 2001 From: Kahrl Date: Thu, 12 Jan 2012 06:10:39 +0100 Subject: The huge item definition and item namespace unification patch (itemdef), see http://c55.me/minetest/wiki/doku.php?id=changes:itemdef --- src/serverobject.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'src/serverobject.cpp') diff --git a/src/serverobject.cpp b/src/serverobject.cpp index ca3d2c3b9..2609e3015 100644 --- a/src/serverobject.cpp +++ b/src/serverobject.cpp @@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serverobject.h" #include #include "inventory.h" -#include "tooldef.h" +#include "materials.h" ServerActiveObject::ServerActiveObject(ServerEnvironment *env, v3f pos): ActiveObject(0), @@ -67,10 +67,31 @@ void ServerActiveObject::registerType(u16 type, Factory f) m_types.insert(type, f); } -void ServerActiveObject::getWieldDiggingProperties(ToolDiggingProperties *dst) +ItemStack ServerActiveObject::getWieldedItem() const { - *dst = ToolDiggingProperties(); + const Inventory *inv = getInventory(); + if(inv) + { + const InventoryList *list = inv->getList(getWieldList()); + if(list) + return list->getItem(getWieldIndex()); + } + return ItemStack(); } - +bool ServerActiveObject::setWieldedItem(const ItemStack &item) +{ + Inventory *inv = getInventory(); + if(inv) + { + InventoryList *list = inv->getList(getWieldList()); + if (list) + { + list->changeItem(getWieldIndex(), item); + setInventoryModified(); + return true; + } + } + return false; +} -- cgit v1.2.3