diff options
| author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2022-12-10 15:31:22 +0100 |
|---|---|---|
| committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-03-07 18:18:18 +0100 |
| commit | 925309eba69a95bcd2a49233125ce32e530fa663 (patch) | |
| tree | 5d9cb1b30c4a3f24a681a46fdc731f7b6238b926 /src/server | |
| parent | 1f0d042377ed506ad460067495e5911b2fc2aacc (diff) | |
| download | minetest-925309eba69a95bcd2a49233125ce32e530fa663.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 9aa7ce39f..16983ef4d 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -531,6 +531,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()); @@ -541,6 +546,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 bd190d323..eeaab6370 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 |
