Luanti 5.16.0-dev
Loading...
Searching...
No Matches
l_vmanip.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
4
5#pragma once
6
7#include "lua_api/l_base.h"
8#include "util/basic_macros.h"
9#include <list>
10
11class Map;
12class MMVManip;
13
14/*
15 VoxelManip
16 */
18{
19private:
20 bool is_mapgen_vm = false;
21 std::list<MMVManip **>::iterator vm_ref_tracker{};
22
23 static const luaL_Reg methods[];
24
25 static LuaVoxelManip *checkObjectValid(lua_State *L, int narg);
26
27 static int gc_object(lua_State *L);
28
29 static int l_read_from_map(lua_State *L);
30 static int l_initialize(lua_State *L);
31 static int l_get_data(lua_State *L);
32 static int l_set_data(lua_State *L);
33 static int l_write_to_map(lua_State *L);
34
35 static int l_get_node_at(lua_State *L);
36 static int l_set_node_at(lua_State *L);
37
38 static int l_update_map(lua_State *L);
39 static int l_update_liquids(lua_State *L);
40
41 static int l_calc_lighting(lua_State *L);
42 static int l_set_lighting(lua_State *L);
43 static int l_get_light_data(lua_State *L);
44 static int l_set_light_data(lua_State *L);
45
46 static int l_get_param2_data(lua_State *L);
47 static int l_set_param2_data(lua_State *L);
48
49 static int l_was_modified(lua_State *L);
50 static int l_get_emerged_area(lua_State *L);
51
52 static int l_close(lua_State *L);
53
54public:
55 MMVManip *vm = nullptr;
56
58 LuaVoxelManip(Map *map);
61
62 // LuaVoxelManip()
63 // Creates a LuaVoxelManip and leaves it on top of stack
64 static int create_object(lua_State *L);
65 // Not callable from Lua
66 static void create(lua_State *L, MMVManip *mmvm, bool is_mapgen_vm);
67
68 static void *packIn(lua_State *L, int idx);
69 static void packOut(lua_State *L, void *ptr);
70
71 static void Register(lua_State *L);
72
73 static const char className[];
74};
#define DISABLE_CLASS_COPY(C)
Definition basic_macros.h:26
Definition l_vmanip.h:18
static int l_was_modified(lua_State *L)
Definition l_vmanip.cpp:362
static int l_set_light_data(lua_State *L)
Definition l_vmanip.cpp:284
static int l_get_param2_data(lua_State *L)
Definition l_vmanip.cpp:308
LuaVoxelManip(MMVManip *mmvm, bool is_mapgen_vm)
Definition l_vmanip.cpp:402
MMVManip * vm
Definition l_vmanip.h:55
static int l_set_node_at(lua_State *L)
Definition l_vmanip.cpp:189
static int l_initialize(lua_State *L)
Definition l_vmanip.cpp:58
static int l_set_lighting(lua_State *L)
Definition l_vmanip.cpp:231
static int l_update_map(lua_State *L)
Definition l_vmanip.cpp:357
static int l_get_emerged_area(lua_State *L)
Definition l_vmanip.cpp:377
static void Register(lua_State *L)
Definition l_vmanip.cpp:484
std::list< MMVManip ** >::iterator vm_ref_tracker
Definition l_vmanip.h:21
static int l_write_to_map(lua_State *L)
Definition l_vmanip.cpp:147
bool is_mapgen_vm
Definition l_vmanip.h:20
static int l_get_node_at(lua_State *L)
Definition l_vmanip.cpp:178
static const char className[]
Definition l_vmanip.h:73
static int l_close(lua_State *L)
Definition l_vmanip.cpp:389
~LuaVoxelManip()
Definition l_vmanip.cpp:414
static int l_set_param2_data(lua_State *L)
Definition l_vmanip.cpp:333
static int gc_object(lua_State *L)
Definition l_vmanip.cpp:27
static int l_set_data(lua_State *L)
Definition l_vmanip.cpp:117
static LuaVoxelManip * checkObjectValid(lua_State *L, int narg)
Definition l_vmanip.cpp:18
static int l_update_liquids(lua_State *L)
Definition l_vmanip.cpp:201
static int l_get_data(lua_State *L)
Definition l_vmanip.cpp:92
static void * packIn(lua_State *L, int idx)
Definition l_vmanip.cpp:459
static int l_get_light_data(lua_State *L)
Definition l_vmanip.cpp:259
static int l_read_from_map(lua_State *L)
Definition l_vmanip.cpp:35
static void create(lua_State *L, MMVManip *mmvm, bool is_mapgen_vm)
Definition l_vmanip.cpp:451
static int create_object(lua_State *L)
Definition l_vmanip.cpp:427
static const luaL_Reg methods[]
Definition l_vmanip.h:499
static int l_calc_lighting(lua_State *L)
Definition l_vmanip.cpp:208
static void packOut(lua_State *L, void *ptr)
Definition l_vmanip.cpp:468
Definition map.h:305
Definition map.h:104
Definition l_base.h:28
#define idx(x, y)
Definition noise.cpp:495