summaryrefslogtreecommitdiff
path: root/src/script/cpp_api/s_player.h
diff options
context:
space:
mode:
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);
};