summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_vmanip.h
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2013-06-25 11:02:02 -0400
committerkwolekr <kwolekr@minetest.net>2013-06-27 22:35:35 -0400
commitd6ac3d8d9a6484f2d348d1caea203de0069b6bd6 (patch)
treeaacdcb34b068a45a7f798769519632657813a554 /src/script/lua_api/l_vmanip.h
parente47f6fdfe985b8907e0aa7372bb325ceb5ed5f4c (diff)
downloadminetest-d6ac3d8d9a6484f2d348d1caea203de0069b6bd6.tar.gz
minetest-d6ac3d8d9a6484f2d348d1caea203de0069b6bd6.tar.bz2
minetest-d6ac3d8d9a6484f2d348d1caea203de0069b6bd6.zip
Add LuaVoxelManip
Diffstat (limited to 'src/script/lua_api/l_vmanip.h')
-rw-r--r--src/script/lua_api/l_vmanip.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/script/lua_api/l_vmanip.h b/src/script/lua_api/l_vmanip.h
new file mode 100644
index 000000000..568f7104e
--- /dev/null
+++ b/src/script/lua_api/l_vmanip.h
@@ -0,0 +1,65 @@
+/*
+Minetest
+Copyright (C) 2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+
+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 L_VMANIP_H_
+#define L_VMANIP_H_
+
+extern "C" {
+#include <lua.h>
+#include <lauxlib.h>
+}
+
+#include "irr_v3d.h"
+#include "map.h"
+
+/*
+ VoxelManip
+ */
+class LuaVoxelManip
+{
+private:
+ ManualMapVoxelManipulator *vm;
+ std::map<v3s16, MapBlock *> modified_blocks;
+
+ static const char className[];
+ static const luaL_reg methods[];
+
+ static int gc_object(lua_State *L);
+
+ static int l_read_chunk(lua_State *L);
+ static int l_write_chunk(lua_State *L);
+ static int l_update_map(lua_State *L);
+ static int l_update_liquids(lua_State *L);
+ static int l_calc_lighting(lua_State *L);
+ static int l_set_lighting(lua_State *L);
+
+public:
+ LuaVoxelManip(Map *map);
+ ~LuaVoxelManip();
+
+ // LuaVoxelManip()
+ // Creates a LuaVoxelManip and leaves it on top of stack
+ static int create_object(lua_State *L);
+
+ static LuaVoxelManip *checkobject(lua_State *L, int narg);
+
+ static void Register(lua_State *L);
+};
+
+#endif // L_VMANIP_H_