]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_object.h
Implement adding velocity to player from Lua
[dragonfireclient.git] / src / script / lua_api / l_object.h
index 2c9aa559a87d43602f01a95c2b9128212d022bee..2390c51958371eaceb9ae7e3074a73dc20dd40f2 100644 (file)
@@ -17,8 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef L_OBJECT_H_
-#define L_OBJECT_H_
+#pragma once
 
 #include "lua_api/l_base.h"
 #include "irrlichttypes.h"
@@ -33,16 +32,28 @@ class RemotePlayer;
 */
 
 class ObjectRef : public ModApiBase {
-private:
-       ServerActiveObject *m_object;
-
-       static const char className[];
-       static const luaL_reg methods[];
 public:
+       ObjectRef(ServerActiveObject *object);
+
+       ~ObjectRef() = default;
+
+       // 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);
+
        static ObjectRef *checkobject(lua_State *L, int narg);
 
        static ServerActiveObject* getobject(ObjectRef *ref);
 private:
+       ServerActiveObject *m_object = nullptr;
+       static const char className[];
+       static luaL_Reg methods[];
+
+
        static LuaEntitySAO* getluaobject(ObjectRef *ref);
 
        static PlayerSAO* getplayersao(ObjectRef *ref);
@@ -105,7 +116,7 @@ class ObjectRef : public ModApiBase {
        static int l_get_armor_groups(lua_State *L);
 
        // set_physics_override(self, physics_override_speed, physics_override_jump,
-       //                      physics_override_gravity, sneak, sneak_glitch)
+       //                      physics_override_gravity, sneak, sneak_glitch, new_move)
        static int l_set_physics_override(lua_State *L);
 
        // get_physics_override(self)
@@ -114,6 +125,9 @@ class ObjectRef : public ModApiBase {
        // set_animation(self, frame_range, frame_speed, frame_blend, frame_loop)
        static int l_set_animation(lua_State *L);
 
+       // set_animation_frame_speed(self, frame_speed)
+       static int l_set_animation_frame_speed(lua_State *L);
+
        // get_animation(self)
        static int l_get_animation(lua_State *L);
 
@@ -146,6 +160,9 @@ class ObjectRef : public ModApiBase {
        // set_velocity(self, {x=num, y=num, z=num})
        static int l_set_velocity(lua_State *L);
 
+       // add_velocity(self, {x=num, y=num, z=num})
+       static int l_add_velocity(lua_State *L);
+
        // get_velocity(self)
        static int l_get_velocity(lua_State *L);
 
@@ -155,6 +172,12 @@ class ObjectRef : public ModApiBase {
        // get_acceleration(self)
        static int l_get_acceleration(lua_State *L);
 
+       // set_rotation(self, {x=num, y=num, z=num})
+       static int l_set_rotation(lua_State *L);
+
+       // get_rotation(self)
+       static int l_get_rotation(lua_State *L);
+
        // set_yaw(self, radians)
        static int l_set_yaw(lua_State *L);
 
@@ -189,6 +212,9 @@ class ObjectRef : public ModApiBase {
        // get_player_velocity(self)
        static int l_get_player_velocity(lua_State *L);
 
+       // add_player_velocity(self, {x=num, y=num, z=num})
+       static int l_add_player_velocity(lua_State *L);
+
        // get_look_dir(self)
        static int l_get_look_dir(lua_State *L);
 
@@ -232,12 +258,21 @@ class ObjectRef : public ModApiBase {
        // get_attribute(self, attribute)
        static int l_get_attribute(lua_State *L);
 
+       // get_meta(self)
+       static int l_get_meta(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);
 
+       // set_formspec_prepend(self, formspec)
+       static int l_set_formspec_prepend(lua_State *L);
+
+       // get_formspec_prepend(self) -> formspec
+       static int l_get_formspec_prepend(lua_State *L);
+
        // get_player_control(self)
        static int l_get_player_control(lua_State *L);
 
@@ -283,12 +318,18 @@ class ObjectRef : public ModApiBase {
        // hud_get_hotbar_selected_image(self)
        static int l_hud_get_hotbar_selected_image(lua_State *L);
 
-       // set_sky(self, type, list)
+       // set_sky(self, bgcolor, type, list, clouds = true)
        static int l_set_sky(lua_State *L);
 
-       // get_sky(self, type, list)
+       // get_sky(self)
        static int l_get_sky(lua_State *L);
 
+       // set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=})
+       static int l_set_clouds(lua_State *L);
+
+       // get_clouds(self)
+       static int l_get_clouds(lua_State *L);
+
        // override_day_night_ratio(self, type)
        static int l_override_day_night_ratio(lua_State *L);
 
@@ -313,18 +354,6 @@ class ObjectRef : public ModApiBase {
        // get_nametag_attributes(self)
        static int l_get_nametag_attributes(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);
+       // send_mapblock(pos)
+       static int l_send_mapblock(lua_State *L);
 };
-
-#endif /* L_OBJECT_H_ */