summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_camera.h
diff options
context:
space:
mode:
authorbigfoot547 <bigfoot547@users.noreply.github.com>2017-05-05 15:07:36 -0500
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-05-05 22:07:36 +0200
commitde028fc056b26e03ee00324888f870f64e28c756 (patch)
treeba0bdcc2bf2b94bf321aad7a38311c778f6f7606 /src/script/lua_api/l_camera.h
parente8b00fdf987e9c689f3dbf9c22c0a6269250c3b5 (diff)
downloadminetest-de028fc056b26e03ee00324888f870f64e28c756.tar.gz
minetest-de028fc056b26e03ee00324888f870f64e28c756.tar.bz2
minetest-de028fc056b26e03ee00324888f870f64e28c756.zip
[CSM] Add camera API (#5609)
* [CSM] Add camera API roper rebase & squash * Address nerzhul's review
Diffstat (limited to 'src/script/lua_api/l_camera.h')
-rw-r--r--src/script/lua_api/l_camera.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/script/lua_api/l_camera.h b/src/script/lua_api/l_camera.h
new file mode 100644
index 000000000..82ab6a47f
--- /dev/null
+++ b/src/script/lua_api/l_camera.h
@@ -0,0 +1,46 @@
+#ifndef L_CAMERA_H
+#define L_CAMERA_H
+
+#include "l_base.h"
+
+class Camera;
+
+class LuaCamera : public ModApiBase {
+private:
+
+ static const char className[];
+ static const luaL_Reg methods[];
+
+ // garbage collector
+ static int gc_object(lua_State *L);
+
+ static int l_set_camera_mode(lua_State *L);
+ static int l_get_camera_mode(lua_State *L);
+
+ static int l_get_fov(lua_State *L);
+
+ static int l_get_pos(lua_State *L);
+ static int l_get_offset(lua_State *L);
+ static int l_get_look_dir(lua_State *L);
+ static int l_get_look_vertical(lua_State *L);
+ static int l_get_look_horizontal(lua_State *L);
+ static int l_get_aspect_ratio(lua_State *L);
+
+ Camera *m_camera;
+
+public:
+
+ LuaCamera(Camera *m);
+ ~LuaCamera() {}
+
+ static void create(lua_State *L, Camera *m);
+
+ static LuaCamera *checkobject(lua_State *L, int narg);
+ static Camera *getobject(LuaCamera *ref);
+ static Camera *getobject(lua_State *L, int narg);
+
+ static void Register(lua_State *L);
+
+};
+
+#endif // L_CAMERA_H