mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
split scriptapi.cpp
Remerge some files in order to reduce number of additional files Make necessary changes for split, rename files, reorganize some bits
This commit is contained in:
parent
038529c763
commit
bdbdeab005
29 changed files with 8454 additions and 6899 deletions
214
src/scriptapi_object.h
Normal file
214
src/scriptapi_object.h
Normal file
|
@ -0,0 +1,214 @@
|
|||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LUA_OBJECT_H_
|
||||
#define LUA_OBJECT_H_
|
||||
|
||||
extern "C" {
|
||||
#include <lua.h>
|
||||
#include <lauxlib.h>
|
||||
}
|
||||
|
||||
#include "serverobject.h"
|
||||
#include "content_sao.h"
|
||||
#include "player.h"
|
||||
|
||||
/*
|
||||
ObjectRef
|
||||
*/
|
||||
|
||||
class ObjectRef
|
||||
{
|
||||
private:
|
||||
ServerActiveObject *m_object;
|
||||
|
||||
static const char className[];
|
||||
static const luaL_reg methods[];
|
||||
public:
|
||||
static ObjectRef *checkobject(lua_State *L, int narg);
|
||||
|
||||
static ServerActiveObject* getobject(ObjectRef *ref);
|
||||
private:
|
||||
static LuaEntitySAO* getluaobject(ObjectRef *ref);
|
||||
|
||||
static PlayerSAO* getplayersao(ObjectRef *ref);
|
||||
|
||||
static Player* getplayer(ObjectRef *ref);
|
||||
|
||||
// Exported functions
|
||||
|
||||
// garbage collector
|
||||
static int gc_object(lua_State *L);
|
||||
|
||||
// remove(self)
|
||||
static int l_remove(lua_State *L);
|
||||
|
||||
// getpos(self)
|
||||
// returns: {x=num, y=num, z=num}
|
||||
static int l_getpos(lua_State *L);
|
||||
|
||||
// setpos(self, pos)
|
||||
static int l_setpos(lua_State *L);
|
||||
|
||||
// moveto(self, pos, continuous=false)
|
||||
static int l_moveto(lua_State *L);
|
||||
|
||||
// punch(self, puncher, time_from_last_punch, tool_capabilities, dir)
|
||||
static int l_punch(lua_State *L);
|
||||
|
||||
// right_click(self, clicker); clicker = an another ObjectRef
|
||||
static int l_right_click(lua_State *L);
|
||||
|
||||
// set_hp(self, hp)
|
||||
// hp = number of hitpoints (2 * number of hearts)
|
||||
// returns: nil
|
||||
static int l_set_hp(lua_State *L);
|
||||
|
||||
// get_hp(self)
|
||||
// returns: number of hitpoints (2 * number of hearts)
|
||||
// 0 if not applicable to this type of object
|
||||
static int l_get_hp(lua_State *L);
|
||||
|
||||
// get_inventory(self)
|
||||
static int l_get_inventory(lua_State *L);
|
||||
|
||||
// get_wield_list(self)
|
||||
static int l_get_wield_list(lua_State *L);
|
||||
|
||||
// get_wield_index(self)
|
||||
static int l_get_wield_index(lua_State *L);
|
||||
|
||||
// get_wielded_item(self)
|
||||
static int l_get_wielded_item(lua_State *L);
|
||||
|
||||
// set_wielded_item(self, itemstack or itemstring or table or nil)
|
||||
static int l_set_wielded_item(lua_State *L);
|
||||
|
||||
// set_armor_groups(self, groups)
|
||||
static int l_set_armor_groups(lua_State *L);
|
||||
|
||||
// set_animation(self, frame_range, frame_speed, frame_blend)
|
||||
static int l_set_animation(lua_State *L);
|
||||
|
||||
// set_bone_position(self, std::string bone, v3f position, v3f rotation)
|
||||
static int l_set_bone_position(lua_State *L);
|
||||
|
||||
// set_attach(self, parent, bone, position, rotation)
|
||||
static int l_set_attach(lua_State *L);
|
||||
|
||||
// set_detach(self)
|
||||
static int l_set_detach(lua_State *L);
|
||||
|
||||
// set_properties(self, properties)
|
||||
static int l_set_properties(lua_State *L);
|
||||
|
||||
/* LuaEntitySAO-only */
|
||||
|
||||
// setvelocity(self, {x=num, y=num, z=num})
|
||||
static int l_setvelocity(lua_State *L);
|
||||
|
||||
// getvelocity(self)
|
||||
static int l_getvelocity(lua_State *L);
|
||||
|
||||
// setacceleration(self, {x=num, y=num, z=num})
|
||||
static int l_setacceleration(lua_State *L);
|
||||
|
||||
// getacceleration(self)
|
||||
static int l_getacceleration(lua_State *L);
|
||||
|
||||
// setyaw(self, radians)
|
||||
static int l_setyaw(lua_State *L);
|
||||
|
||||
// getyaw(self)
|
||||
static int l_getyaw(lua_State *L);
|
||||
|
||||
// settexturemod(self, mod)
|
||||
static int l_settexturemod(lua_State *L);
|
||||
|
||||
// setsprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2,
|
||||
// select_horiz_by_yawpitch=false)
|
||||
static int l_setsprite(lua_State *L);
|
||||
|
||||
// DEPRECATED
|
||||
// get_entity_name(self)
|
||||
static int l_get_entity_name(lua_State *L);
|
||||
|
||||
// get_luaentity(self)
|
||||
static int l_get_luaentity(lua_State *L);
|
||||
|
||||
/* Player-only */
|
||||
|
||||
// is_player(self)
|
||||
static int l_is_player(lua_State *L);
|
||||
|
||||
// get_player_name(self)
|
||||
static int l_get_player_name(lua_State *L);
|
||||
|
||||
// get_look_dir(self)
|
||||
static int l_get_look_dir(lua_State *L);
|
||||
|
||||
// get_look_pitch(self)
|
||||
static int l_get_look_pitch(lua_State *L);
|
||||
|
||||
// get_look_yaw(self)
|
||||
static int l_get_look_yaw(lua_State *L);
|
||||
|
||||
// set_inventory_formspec(self, formspec)
|
||||
static int l_set_inventory_formspec(lua_State *L);
|
||||
|
||||
// get_inventory_formspec(self) -> formspec
|
||||
static int l_get_inventory_formspec(lua_State *L);
|
||||
|
||||
// get_player_control(self)
|
||||
static int l_get_player_control(lua_State *L);
|
||||
|
||||
// get_player_control_bits(self)
|
||||
static int l_get_player_control_bits(lua_State *L);
|
||||
|
||||
public:
|
||||
ObjectRef(ServerActiveObject *object);
|
||||
|
||||
~ObjectRef();
|
||||
|
||||
// Creates an ObjectRef and leaves it on top of stack
|
||||
// Not callable from Lua; all references are created on the C side.
|
||||
static void create(lua_State *L, ServerActiveObject *object);
|
||||
|
||||
static void set_null(lua_State *L);
|
||||
|
||||
static void Register(lua_State *L);
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/* scriptapi internal */
|
||||
/*****************************************************************************/
|
||||
// Creates a new anonymous reference if cobj=NULL or id=0
|
||||
void objectref_get_or_create(lua_State *L,
|
||||
ServerActiveObject *cobj);
|
||||
void objectref_get(lua_State *L, u16 id);
|
||||
void read_object_properties(lua_State *L, int index,
|
||||
ObjectProperties *prop);
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Minetest interface */
|
||||
/*****************************************************************************/
|
||||
void scriptapi_add_object_reference(lua_State *L, ServerActiveObject *cobj);
|
||||
void scriptapi_rm_object_reference(lua_State *L, ServerActiveObject *cobj);
|
||||
|
||||
#endif /* LUA_OBJECT_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue