diff options
author | sapier <sapier at gmx dot net> | 2012-02-04 12:41:25 +0100 |
---|---|---|
committer | sapier <sapier at gmx dot net> | 2012-02-04 12:41:25 +0100 |
commit | 77df09540c4d7eadef760779e123af88a48aafaa (patch) | |
tree | febf1009328d30c31a14a1a1ca1600e99b4c3e6b /src/serverobject.cpp | |
parent | 3454e6779337d8523ae76c7fa16eb8c565aa2381 (diff) | |
parent | a1eb2836c0764829ebad1462432bb3c5f32750df (diff) | |
download | minetest-77df09540c4d7eadef760779e123af88a48aafaa.tar.xz |
Merge remote branch 'upstream/master' into sapier_experimental
Conflicts:
src/scriptapi.cpp
Diffstat (limited to 'src/serverobject.cpp')
-rw-r--r-- | src/serverobject.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/serverobject.cpp b/src/serverobject.cpp index b5fd6fc3a..76a70ca5b 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 <fstream> #include "inventory.h" -#include "tooldef.h" +#include "materials.h" ServerActiveObject::ServerActiveObject(ServerEnvironment *env, v3f pos): ActiveObject(0), @@ -67,10 +67,31 @@ void ServerActiveObject::registerType(u8 type, Factory f) ServerActiveObject::getTypes().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; +} |