diff options
| author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-05-12 13:24:36 +0200 |
|---|---|---|
| committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-07-23 20:11:53 +0200 |
| commit | b7767dd9aae27f0fe6b7ae3b99d0f51860979f82 (patch) | |
| tree | 0eb7414f1004f9c4d5a77c94df65220325322b5e /src/server | |
| parent | 2351c9561265d4136f78ce3dd73c0c77acfed711 (diff) | |
| download | minetest-b7767dd9aae27f0fe6b7ae3b99d0f51860979f82.tar.xz | |
Dual Wielding
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/player_sao.cpp | 15 | ||||
| -rw-r--r-- | src/server/player_sao.h | 3 |
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 |
