summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_settings.h
diff options
context:
space:
mode:
authorPilzAdam <pilzadam@minetest.net>2013-09-09 22:50:25 +0200
committerPilzAdam <pilzadam@minetest.net>2013-09-10 18:31:38 +0200
commitd820a6bfd807b6d181a858f3ea8a0d0f5c2b1879 (patch)
tree23b6052c527213c854289b1a5ea742897a130fd4 /src/script/lua_api/l_settings.h
parent10a38a3005e420ec16a821117bf9f025b6e2c61b (diff)
downloadminetest-d820a6bfd807b6d181a858f3ea8a0d0f5c2b1879.tar.gz
minetest-d820a6bfd807b6d181a858f3ea8a0d0f5c2b1879.tar.bz2
minetest-d820a6bfd807b6d181a858f3ea8a0d0f5c2b1879.zip
Add Settings interface for Lua
Diffstat (limited to 'src/script/lua_api/l_settings.h')
-rw-r--r--src/script/lua_api/l_settings.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/script/lua_api/l_settings.h b/src/script/lua_api/l_settings.h
new file mode 100644
index 000000000..cb0c09a73
--- /dev/null
+++ b/src/script/lua_api/l_settings.h
@@ -0,0 +1,73 @@
+/*
+Minetest
+Copyright (C) 2013 PilzAdam <pilzadam@minetest.net>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef L_SETTINGS_H_
+#define L_SETTINGS_H_
+
+#include "lua_api/l_base.h"
+
+class Settings;
+
+class LuaSettings : public ModApiBase {
+private:
+ static const char className[];
+ static const luaL_reg methods[];
+
+ // garbage collector
+ static int gc_object(lua_State* L);
+
+ // get(self, key) -> value
+ static int l_get(lua_State* L);
+
+ // get_bool(self, key) -> boolean
+ static int l_get_bool(lua_State* L);
+
+ // set(self, key, value)
+ static int l_set(lua_State* L);
+
+ // remove(self, key) -> success
+ static int l_remove(lua_State* L);
+
+ // get_names(self) -> {key1, ...}
+ static int l_get_names(lua_State* L);
+
+ // write(self) -> success
+ static int l_write(lua_State* L);
+
+ // to_table(self) -> {[key1]=value1,...}
+ static int l_to_table(lua_State* L);
+
+ Settings* m_settings;
+ std::string m_filename;
+
+public:
+ LuaSettings(const char* filename);
+ ~LuaSettings();
+
+ // LuaSettings(filename)
+ // Creates an LuaSettings and leaves it on top of stack
+ static int create_object(lua_State* L);
+
+ static LuaSettings* checkobject(lua_State* L, int narg);
+
+ static void Register(lua_State* L);
+
+};
+
+#endif