Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
l_settings.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2013 PilzAdam <pilzadam@minetest.net>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation; either version 2.1 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License along
16with this program; if not, write to the Free Software Foundation, Inc.,
1751 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20#pragma once
21
22#include "common/c_content.h"
23#include "lua_api/l_base.h"
24
25class Settings;
26
27class LuaSettings : public ModApiBase
28{
29private:
30 static const luaL_Reg methods[];
31
32 // garbage collector
33 static int gc_object(lua_State *L);
34
35 // get(self, key) -> value
36 static int l_get(lua_State *L);
37
38 // get_bool(self, key) -> boolean
39 static int l_get_bool(lua_State *L);
40
41 // get_np_group(self, key) -> noiseparam
42 static int l_get_np_group(lua_State *L);
43
44 // get_flags(self, key) -> key/value table
45 static int l_get_flags(lua_State *L);
46
47 // set(self, key, value)
48 static int l_set(lua_State *L);
49
50 // set_bool(self, key, value)
51 static int l_set_bool(lua_State *L);
52
53 // set_np_group(self, key, value)
54 static int l_set_np_group(lua_State *L);
55
56 // remove(self, key) -> success
57 static int l_remove(lua_State *L);
58
59 // get_names(self) -> {key1, ...}
60 static int l_get_names(lua_State *L);
61
62 // has(self, key) -> boolean
63 static int l_has(lua_State *L);
64
65 // write(self) -> success
66 static int l_write(lua_State *L);
67
68 // to_table(self) -> {[key1]=value1,...}
69 static int l_to_table(lua_State *L);
70
71 Settings *m_settings = nullptr;
72 std::string m_filename;
73 bool m_is_own_settings = false;
74 bool m_write_allowed = true;
75
76public:
77 LuaSettings(Settings *settings, const std::string &filename);
78 LuaSettings(const std::string &filename, bool write_allowed);
80
81 static void create(lua_State *L, Settings *settings, const std::string &filename);
82
83 // LuaSettings(filename)
84 // Creates a LuaSettings and leaves it on top of the stack
85 static int create_object(lua_State *L);
86
87 static void Register(lua_State *L);
88
89 static const char className[];
90};
Definition: l_settings.h:28
Settings * m_settings
Definition: l_settings.h:71
static int l_get_names(lua_State *L)
Definition: l_settings.cpp:261
bool m_is_own_settings
Definition: l_settings.h:73
static const luaL_Reg methods[]
Definition: l_settings.h:30
static int l_to_table(lua_State *L)
Definition: l_settings.cpp:330
static int l_get_np_group(lua_State *L)
Definition: l_settings.cpp:153
static int gc_object(lua_State *L)
Definition: l_settings.cpp:106
std::string m_filename
Definition: l_settings.h:72
static int l_remove(lua_State *L)
Definition: l_settings.cpp:245
static int l_set(lua_State *L)
Definition: l_settings.cpp:195
static int l_write(lua_State *L)
Definition: l_settings.cpp:291
static int l_get_bool(lua_State *L)
Definition: l_settings.cpp:132
static int l_get_flags(lua_State *L)
Definition: l_settings.cpp:171
static void create(lua_State *L, Settings *settings, const std::string &filename)
Definition: l_settings.cpp:95
static const char className[]
Definition: l_settings.h:89
static int create_object(lua_State *L)
Definition: l_settings.cpp:354
static int l_set_bool(lua_State *L)
Definition: l_settings.cpp:212
~LuaSettings()
Definition: l_settings.cpp:88
static int l_get(lua_State *L)
Definition: l_settings.cpp:115
static int l_has(lua_State *L)
Definition: l_settings.cpp:279
bool m_write_allowed
Definition: l_settings.h:74
static int l_set_np_group(lua_State *L)
Definition: l_settings.cpp:228
Definition: l_base.h:43
Definition: settings.h:124