summaryrefslogtreecommitdiff
path: root/src/serverobject.cpp
diff options
context:
space:
mode:
authorsapier <sapier at gmx dot net>2012-02-04 12:41:25 +0100
committersapier <sapier at gmx dot net>2012-02-04 12:41:25 +0100
commit77df09540c4d7eadef760779e123af88a48aafaa (patch)
treefebf1009328d30c31a14a1a1ca1600e99b4c3e6b /src/serverobject.cpp
parent3454e6779337d8523ae76c7fa16eb8c565aa2381 (diff)
parenta1eb2836c0764829ebad1462432bb3c5f32750df (diff)
downloadminetest-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.cpp29
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;
+}