1 // CC0/Unlicense system32 2020
5 #include "lua_api/l_base.h"
6 #include "client/clientobject.h"
7 #include "client/content_cao.h"
9 class ClientObjectRef
: public ModApiBase
12 ClientObjectRef(ClientActiveObject
*object
);
14 ~ClientObjectRef() = default;
16 static void Register(lua_State
*L
);
18 static void create(lua_State
*L
, ClientActiveObject
*object
);
20 static void create(lua_State
*L
, s16 id
);
22 static ClientObjectRef
*checkobject(lua_State
*L
, int narg
);
25 ClientActiveObject
*m_object
= nullptr;
26 static const char className
[];
27 static luaL_Reg methods
[];
29 static ClientActiveObject
*get_cao(ClientObjectRef
*ref
);
30 static GenericCAO
*get_generic_cao(ClientObjectRef
*ref
, lua_State
*L
);
32 static int gc_object(lua_State
*L
);
34 static int l_get_id(lua_State
*L
);
37 // returns: {x=num, y=num, z=num}
38 static int l_get_pos(lua_State
*L
);
41 static int l_get_velocity(lua_State
*L
);
43 // get_acceleration(self)
44 static int l_get_acceleration(lua_State
*L
);
47 static int l_get_rotation(lua_State
*L
);
50 static int l_is_player(lua_State
*L
);
52 // is_local_player(self)
53 static int l_is_local_player(lua_State
*L
);
56 static int l_get_name(lua_State
*L
);
59 static int l_get_parent(lua_State
*L
);
62 static int l_get_nametag(lua_State
*L
);
65 static int l_get_item_textures(lua_State
*L
);
68 static int l_get_max_hp(lua_State
*L
);
70 // set_visible(self, visible)
71 static int l_set_visible(lua_State
*L
);
73 // remove_from_scene(self, permanent)
74 static int l_remove_from_scene(lua_State
*L
);
77 static int l_get_hp(lua_State
*L
);
80 static int l_punch(lua_State
*L
);
83 static int l_rightclick(lua_State
*L
);