]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_vmanip.h
Code modernization: subfolders (#6283)
[dragonfireclient.git] / src / script / lua_api / l_vmanip.h
index 568f7104ed74df256eddd2b22e995606a0c5a7c1..15ab9eef8c2fc8717604c038b3fa0bdefb8ae789 100644 (file)
@@ -17,39 +17,57 @@ 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>
-}
+#pragma once
 
+#include <map>
 #include "irr_v3d.h"
-#include "map.h"
+#include "lua_api/l_base.h"
+
+class Map;
+class MapBlock;
+class MMVManip;
 
 /*
   VoxelManip
  */
-class LuaVoxelManip
+class LuaVoxelManip : public ModApiBase
 {
 private:
-       ManualMapVoxelManipulator *vm;
        std::map<v3s16, MapBlock *> modified_blocks;
+       bool is_mapgen_vm = false;
 
        static const char className[];
-       static const luaL_reg methods[];
+       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_read_from_map(lua_State *L);
+       static int l_get_data(lua_State *L);
+       static int l_set_data(lua_State *L);
+       static int l_write_to_map(lua_State *L);
+
+       static int l_get_node_at(lua_State *L);
+       static int l_set_node_at(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);
+       static int l_get_light_data(lua_State *L);
+       static int l_set_light_data(lua_State *L);
+
+       static int l_get_param2_data(lua_State *L);
+       static int l_set_param2_data(lua_State *L);
+
+       static int l_was_modified(lua_State *L);
+       static int l_get_emerged_area(lua_State *L);
 
 public:
+       MMVManip *vm = nullptr;
+
+       LuaVoxelManip(MMVManip *mmvm, bool is_mapgen_vm);
+       LuaVoxelManip(Map *map, v3s16 p1, v3s16 p2);
        LuaVoxelManip(Map *map);
        ~LuaVoxelManip();
 
@@ -61,5 +79,3 @@ class LuaVoxelManip
 
        static void Register(lua_State *L);
 };
-
-#endif // L_VMANIP_H_