clientobject: add get_id()
[waspsaliva.git] / src / script / lua_api / l_clientobject.h
blobe228d24cc65de3b27bc8e2242b84f4dc5712ff7e
1 // CC0/Unlicense system32 2020
3 #pragma once
5 #include "lua_api/l_base.h"
6 #include "client/clientobject.h"
7 #include "client/content_cao.h"
9 class ClientObjectRef : public ModApiBase
11 public:
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);
24 private:
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);
36 // get_pos(self)
37 // returns: {x=num, y=num, z=num}
38 static int l_get_pos(lua_State *L);
40 // get_velocity(self)
41 static int l_get_velocity(lua_State *L);
43 // get_acceleration(self)
44 static int l_get_acceleration(lua_State *L);
46 // get_rotation(self)
47 static int l_get_rotation(lua_State *L);
49 // is_player(self)
50 static int l_is_player(lua_State *L);
52 // is_local_player(self)
53 static int l_is_local_player(lua_State *L);
55 // get_name(self)
56 static int l_get_name(lua_State *L);
58 // get_parent(self)
59 static int l_get_parent(lua_State *L);
61 // get_nametag(self)
62 static int l_get_nametag(lua_State *L);
64 // get_textures(self)
65 static int l_get_item_textures(lua_State *L);
67 // get_hp(self)
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);
76 // get_hp(self)
77 static int l_get_hp(lua_State *L);
79 // punch(self)
80 static int l_punch(lua_State *L);
82 // rightclick(self)
83 static int l_rightclick(lua_State *L);