summaryrefslogtreecommitdiff
path: root/src/script/cpp_api/s_player.h
diff options
context:
space:
mode:
authorSmallJoker <mk939@ymail.com>2018-03-31 12:30:43 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2018-04-02 17:18:48 +0200
commitf6eff57f7cf504c715f9b58147667f2ae77732c0 (patch)
tree0c6c9abd6fb663e042bc16e63ad484df423d77a2 /src/script/cpp_api/s_player.h
parent12edb200eb0b61972418a95c704fc1c3dd6357cf (diff)
downloadminetest-f6eff57f7cf504c715f9b58147667f2ae77732c0.tar.gz
minetest-f6eff57f7cf504c715f9b58147667f2ae77732c0.tar.bz2
minetest-f6eff57f7cf504c715f9b58147667f2ae77732c0.zip
Add player inventory callbacks
Diffstat (limited to 'src/script/cpp_api/s_player.h')
-rw-r--r--src/script/cpp_api/s_player.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h
index 59e1505ae..d60dfcaf4 100644
--- a/src/script/cpp_api/s_player.h
+++ b/src/script/cpp_api/s_player.h
@@ -23,6 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "irr_v3d.h"
#include "util/string.h"
+struct InventoryLocation;
+struct ItemStack;
struct ToolCapabilities;
struct PlayerHPChangeReason;
@@ -48,4 +50,47 @@ public:
void on_playerReceiveFields(ServerActiveObject *player,
const std::string &formname, const StringMap &fields);
void on_auth_failure(const std::string &name, const std::string &ip);
+
+ // Player inventory callbacks
+ // Return number of accepted items to be moved
+ int player_inventory_AllowMove(
+ const InventoryLocation &loc,
+ const std::string &from_list, int from_index,
+ const std::string &to_list, int to_index,
+ int count, ServerActiveObject *player);
+ // Return number of accepted items to be put
+ int player_inventory_AllowPut(
+ const InventoryLocation &loc,
+ const std::string &listname, int index, const ItemStack &stack,
+ ServerActiveObject *player);
+ // Return number of accepted items to be taken
+ int player_inventory_AllowTake(
+ const InventoryLocation &loc,
+ const std::string &listname, int index, const ItemStack &stack,
+ ServerActiveObject *player);
+ // Report moved items
+ void player_inventory_OnMove(
+ const InventoryLocation &loc,
+ const std::string &from_list, int from_index,
+ const std::string &to_list, int to_index,
+ int count, ServerActiveObject *player);
+ // Report put items
+ void player_inventory_OnPut(
+ const InventoryLocation &loc,
+ const std::string &listname, int index, const ItemStack &stack,
+ ServerActiveObject *player);
+ // Report taken items
+ void player_inventory_OnTake(
+ const InventoryLocation &loc,
+ const std::string &listname, int index, const ItemStack &stack,
+ ServerActiveObject *player);
+private:
+ void pushPutTakeArguments(
+ const char *method, const InventoryLocation &loc,
+ const std::string &listname, int index, const ItemStack &stack,
+ ServerActiveObject *player);
+ void pushMoveArguments(const InventoryLocation &loc,
+ const std::string &from_list, int from_index,
+ const std::string &to_list, int to_index,
+ int count, ServerActiveObject *player);
};