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();
static void Register(lua_State *L);
};
-
-#endif // L_VMANIP_H_