aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2022-05-12 13:24:36 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2022-07-23 20:11:53 +0200
commitb7767dd9aae27f0fe6b7ae3b99d0f51860979f82 (patch)
tree0eb7414f1004f9c4d5a77c94df65220325322b5e /src/server
parent2351c9561265d4136f78ce3dd73c0c77acfed711 (diff)
downloadminetest-b7767dd9aae27f0fe6b7ae3b99d0f51860979f82.tar.xz
Dual Wielding
Diffstat (limited to 'src/server')
-rw-r--r--src/server/player_sao.cpp15
-rw-r--r--src/server/player_sao.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp
index a58a0397f..7b134b391 100644
--- a/src/server/player_sao.cpp
+++ b/src/server/player_sao.cpp
@@ -525,6 +525,11 @@ ItemStack PlayerSAO::getWieldedItem(ItemStack *selected, ItemStack *hand) const
return m_player->getWieldedItem(selected, hand);
}
+bool PlayerSAO::getOffhandWieldedItem(ItemStack *offhand, ItemStack *place, IItemDefManager *itemdef_manager, PointedThing pointed) const
+{
+ return m_player->getOffhandWieldedItem(offhand, place, itemdef_manager, pointed);
+}
+
bool PlayerSAO::setWieldedItem(const ItemStack &item)
{
InventoryList *mlist = m_player->inventory.getList(getWieldList());
@@ -535,6 +540,16 @@ bool PlayerSAO::setWieldedItem(const ItemStack &item)
return false;
}
+bool PlayerSAO::setOffhandWieldedItem(const ItemStack &item)
+{
+ InventoryList *olist = m_player->inventory.getList("offhand");
+ if (olist) {
+ olist->changeItem(0, item);
+ return true;
+ }
+ return false;
+}
+
void PlayerSAO::disconnected()
{
m_peer_id = PEER_ID_INEXISTENT;
diff --git a/src/server/player_sao.h b/src/server/player_sao.h
index 5f48cae67..8bf64bea7 100644
--- a/src/server/player_sao.h
+++ b/src/server/player_sao.h
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "network/networkprotocol.h"
#include "unit_sao.h"
#include "util/numeric.h"
+#include "util/pointedthing.h"
/*
PlayerSAO needs some internals exposed.
@@ -130,7 +131,9 @@ public:
std::string getWieldList() const override { return "main"; }
u16 getWieldIndex() const override;
ItemStack getWieldedItem(ItemStack *selected, ItemStack *hand = nullptr) const override;
+ bool getOffhandWieldedItem(ItemStack *offhand, ItemStack *place, IItemDefManager *itemdef_manager, PointedThing pointed) const;
bool setWieldedItem(const ItemStack &item) override;
+ bool setOffhandWieldedItem(const ItemStack &item);
/*
PlayerSAO-specific