diff options
Diffstat (limited to 'src/scriptapi.h')
-rw-r--r-- | src/scriptapi.h | 139 |
1 files changed, 13 insertions, 126 deletions
diff --git a/src/scriptapi.h b/src/scriptapi.h index e94ca781f..4a0b07894 100644 --- a/src/scriptapi.h +++ b/src/scriptapi.h @@ -20,41 +20,33 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef SCRIPTAPI_HEADER #define SCRIPTAPI_HEADER -#include "irrlichttypes_bloated.h" #include <string> -#include "mapnode.h" #include <set> #include <map> +extern "C" { +#include <lua.h> +} +#include "scriptapi_inventory.h" +#include "scriptapi_nodemeta.h" +#include "scriptapi_entity.h" +#include "scriptapi_object.h" +#include "scriptapi_env.h" +#include "scriptapi_item.h" +#include "scriptapi_node.h" + +#define luamethod(class, name) {#name, class::l_##name} + class Server; -class ServerEnvironment; -class ServerActiveObject; -typedef struct lua_State lua_State; -struct ObjectProperties; -struct ItemStack; -struct PointedThing; -//class IGameDef; -struct ToolCapabilities; void scriptapi_export(lua_State *L, Server *server); bool scriptapi_loadmod(lua_State *L, const std::string &scriptpath, const std::string &modname); -void scriptapi_add_environment(lua_State *L, ServerEnvironment *env); - -void scriptapi_add_object_reference(lua_State *L, ServerActiveObject *cobj); -void scriptapi_rm_object_reference(lua_State *L, ServerActiveObject *cobj); // Returns true if script handled message bool scriptapi_on_chat_message(lua_State *L, const std::string &name, const std::string &message); -/* environment */ -// On environment step -void scriptapi_environment_step(lua_State *L, float dtime); -// After generating a piece of map -void scriptapi_environment_on_generated(lua_State *L, v3s16 minp, v3s16 maxp, - u32 blockseed); - /* server */ void scriptapi_on_shutdown(lua_State *L); @@ -77,110 +69,5 @@ void scriptapi_on_player_receive_fields(lua_State *L, 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); -bool scriptapi_item_on_place(lua_State *L, ItemStack &item, - ServerActiveObject *placer, const PointedThing &pointed); -bool scriptapi_item_on_use(lua_State *L, ItemStack &item, - ServerActiveObject *user, const PointedThing &pointed); - -/* node callbacks */ -bool scriptapi_node_on_punch(lua_State *L, v3s16 p, MapNode node, - ServerActiveObject *puncher); -bool scriptapi_node_on_dig(lua_State *L, v3s16 p, MapNode node, - ServerActiveObject *digger); -// Node constructor -void scriptapi_node_on_construct(lua_State *L, v3s16 p, MapNode node); -// Node destructor -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); - -/* 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); -// Report put items -void scriptapi_nodemeta_inventory_on_put(lua_State *L, v3s16 p, - const std::string &listname, int index, ItemStack &stack, - ServerActiveObject *player); -// 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, 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, - ObjectProperties *prop); -void scriptapi_luaentity_step(lua_State *L, u16 id, float dtime); -void scriptapi_luaentity_punch(lua_State *L, u16 id, - ServerActiveObject *puncher, float time_from_last_punch, - const ToolCapabilities *toolcap, v3f dir); -void scriptapi_luaentity_rightclick(lua_State *L, u16 id, - ServerActiveObject *clicker); - #endif |