Luanti 5.18.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:361
static int l_set_light_data(lua_State *L)
Definition l_vmanip.cpp:283
static int l_get_param2_data(lua_State *L)
Definition l_vmanip.cpp:307
LuaVoxelManip(MMVManip *mmvm, bool is_mapgen_vm)
Definition l_vmanip.cpp:401
MMVManip * vm
Definition l_vmanip.h:55
static int l_set_node_at(lua_State *L)
Definition l_vmanip.cpp:188
static int l_initialize(lua_State *L)
Definition l_vmanip.cpp:57
static int l_set_lighting(lua_State *L)
Definition l_vmanip.cpp:230
static int l_update_map(lua_State *L)
Definition l_vmanip.cpp:356
static int l_get_emerged_area(lua_State *L)
Definition l_vmanip.cpp:376
static void Register(lua_State *L)
Definition l_vmanip.cpp:483
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:146
bool is_mapgen_vm
Definition l_vmanip.h:20
static int l_get_node_at(lua_State *L)
Definition l_vmanip.cpp:177
static const char className[]
Definition l_vmanip.h:73
static int l_close(lua_State *L)
Definition l_vmanip.cpp:388
~LuaVoxelManip()
Definition l_vmanip.cpp:413
static int l_set_param2_data(lua_State *L)
Definition l_vmanip.cpp:332
static int gc_object(lua_State *L)
Definition l_vmanip.cpp:27
static int l_set_data(lua_State *L)
Definition l_vmanip.cpp:116
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:200
static int l_get_data(lua_State *L)
Definition l_vmanip.cpp:91
static void * packIn(lua_State *L, int idx)
Definition l_vmanip.cpp:458
static int l_get_light_data(lua_State *L)
Definition l_vmanip.cpp:258
static int l_read_from_map(lua_State *L)
Definition l_vmanip.cpp:34
static void create(lua_State *L, MMVManip *mmvm, bool is_mapgen_vm)
Definition l_vmanip.cpp:450
static int create_object(lua_State *L)
Definition l_vmanip.cpp:426
static const luaL_Reg methods[]
Definition l_vmanip.h:498
static int l_calc_lighting(lua_State *L)
Definition l_vmanip.cpp:207
static void packOut(lua_State *L, void *ptr)
Definition l_vmanip.cpp:467
Definition map.h:308
Definition map.h:105
Definition l_base.h:29
#define idx(x, y)
Definition noise.cpp:495