Add InvRef:get_location()
[oweals/minetest.git] / src / scriptapi.h
index 12a1172a7e2149d3242356ac57ba6f80a659e548..d71b8fe41e412ccabfdc41e603df97c51ec3f5f9 100644 (file)
@@ -55,13 +55,15 @@ void scriptapi_environment_step(lua_State *L, float dtime);
 void scriptapi_environment_on_generated(lua_State *L, v3s16 minp, v3s16 maxp,
                u32 blockseed);
 
+/* server */
+void scriptapi_on_shutdown(lua_State *L);
+
 /* misc */
 void scriptapi_on_newplayer(lua_State *L, ServerActiveObject *player);
 void scriptapi_on_dieplayer(lua_State *L, ServerActiveObject *player);
 bool scriptapi_on_respawnplayer(lua_State *L, ServerActiveObject *player);
 void scriptapi_on_joinplayer(lua_State *L, ServerActiveObject *player);
 void scriptapi_on_leaveplayer(lua_State *L, ServerActiveObject *player);
-void scriptapi_get_creative_inventory(lua_State *L, ServerActiveObject *player);
 bool scriptapi_get_auth(lua_State *L, const std::string &playername,
                std::string *dst_password, std::set<std::string> *dst_privs);
 void scriptapi_create_auth(lua_State *L, const std::string &playername,
@@ -69,6 +71,12 @@ void scriptapi_create_auth(lua_State *L, const std::string &playername,
 bool scriptapi_set_password(lua_State *L, const std::string &playername,
                const std::string &password);
 
+/* player */
+void scriptapi_on_player_receive_fields(lua_State *L, 
+               ServerActiveObject *player,
+               const std::string &formname,
+               const std::map<std::string, std::string> &fields);
+
 /* item callbacks */
 bool scriptapi_item_on_drop(lua_State *L, ItemStack &item,
                ServerActiveObject *dropper, v3f pos);
@@ -88,30 +96,81 @@ void scriptapi_node_on_construct(lua_State *L, v3s16 p, MapNode node);
 void scriptapi_node_on_destruct(lua_State *L, v3s16 p, MapNode node);
 // Node post-destructor
 void scriptapi_node_after_destruct(lua_State *L, v3s16 p, MapNode node);
+// Node Timer event
+bool scriptapi_node_on_timer(lua_State *L, v3s16 p, MapNode node, f32 dtime);
 // Called when a metadata form returns values
 void scriptapi_node_on_receive_fields(lua_State *L, v3s16 p,
                const std::string &formname,
                const std::map<std::string, std::string> &fields,
                ServerActiveObject *sender);
-// Moves items
-void scriptapi_node_on_metadata_inventory_move(lua_State *L, v3s16 p,
+
+/* Node metadata inventory callbacks */
+// Return number of accepted items to be moved
+int scriptapi_nodemeta_inventory_allow_move(lua_State *L, v3s16 p,
+               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 scriptapi_nodemeta_inventory_allow_put(lua_State *L, v3s16 p,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+// Return number of accepted items to be taken
+int scriptapi_nodemeta_inventory_allow_take(lua_State *L, v3s16 p,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+// Report moved items
+void scriptapi_nodemeta_inventory_on_move(lua_State *L, v3s16 p,
                const std::string &from_list, int from_index,
                const std::string &to_list, int to_index,
                int count, ServerActiveObject *player);
-// Inserts items, returns rejected items
-ItemStack scriptapi_node_on_metadata_inventory_offer(lua_State *L, v3s16 p,
+// Report put items
+void scriptapi_nodemeta_inventory_on_put(lua_State *L, v3s16 p,
                const std::string &listname, int index, ItemStack &stack,
                ServerActiveObject *player);
-// Takes items, returns taken items
-ItemStack scriptapi_node_on_metadata_inventory_take(lua_State *L, v3s16 p,
-               const std::string &listname, int index, int count,
+// Report taken items
+void scriptapi_nodemeta_inventory_on_take(lua_State *L, v3s16 p,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+
+/* Detached inventory callbacks */
+// Return number of accepted items to be moved
+int scriptapi_detached_inventory_allow_move(lua_State *L,
+               const std::string &name,
+               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 scriptapi_detached_inventory_allow_put(lua_State *L,
+               const std::string &name,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+// Return number of accepted items to be taken
+int scriptapi_detached_inventory_allow_take(lua_State *L,
+               const std::string &name,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+// Report moved items
+void scriptapi_detached_inventory_on_move(lua_State *L,
+               const std::string &name,
+               const std::string &from_list, int from_index,
+               const std::string &to_list, int to_index,
+               int count, ServerActiveObject *player);
+// Report put items
+void scriptapi_detached_inventory_on_put(lua_State *L,
+               const std::string &name,
+               const std::string &listname, int index, ItemStack &stack,
+               ServerActiveObject *player);
+// Report taken items
+void scriptapi_detached_inventory_on_take(lua_State *L,
+               const std::string &name,
+               const std::string &listname, int index, ItemStack &stack,
                ServerActiveObject *player);
 
 /* luaentity */
 // Returns true if succesfully added into Lua; false otherwise.
 bool scriptapi_luaentity_add(lua_State *L, u16 id, const char *name);
 void scriptapi_luaentity_activate(lua_State *L, u16 id,
-               const std::string &staticdata);
+               const std::string &staticdata, u32 dtime_s);
 void scriptapi_luaentity_rm(lua_State *L, u16 id);
 std::string scriptapi_luaentity_get_staticdata(lua_State *L, u16 id);
 void scriptapi_luaentity_get_properties(lua_State *L, u16 id,