Lua setting getter
authorPerttu Ahola <celeron55@gmail.com>
Sat, 26 Nov 2011 01:37:09 +0000 (03:37 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Tue, 29 Nov 2011 17:13:53 +0000 (19:13 +0200)
data/mods/default/init.lua
src/scriptapi.cpp

index 6512f55ebef2487a3fd03515ad9f9476f8d2b850..c6f039385afb07ed5f9e616839bcba8d72a74222 100644 (file)
@@ -18,6 +18,8 @@
 -- minetest.register_on_newplayer(func(ObjectRef))
 -- minetest.register_on_respawnplayer(func(ObjectRef))
 -- ^ return true in func to disable regular player placement
+-- minetest.setting_get(name)
+-- minetest.setting_getbool(name)
 --
 -- Global objects:
 -- minetest.env - environment reference
@@ -1313,6 +1315,9 @@ minetest.register_on_respawnplayer(function(player)
        -- return true
 end)
 
+-- Example setting get
+print("max_users = " .. dump(minetest.setting_get("max_users")))
+
 --
 -- Done, print some random stuff
 --
index 03bdd3a7d30d23d121ebc6b7d86e41004dbcb31b..f1f0658f4232ebcdd644f4301d38c15caaa0e363 100644 (file)
@@ -38,6 +38,8 @@ extern "C" {
 #include "tooldef.h"
 #include "nodedef.h"
 #include "craftdef.h"
+#include "main.h" // For g_settings
+#include "settings.h" // For accessing g_settings
 
 /*
 TODO:
@@ -855,6 +857,24 @@ static int l_register_on_respawnplayer(lua_State *L)
        return register_lua_callback(L, "registered_on_respawnplayers");
 }
 
+// setting_get(name)
+static int l_setting_get(lua_State *L)
+{
+       const char *name = luaL_checkstring(L, 1);
+       std::string value = g_settings->get(name);
+       lua_pushstring(L, value.c_str());
+       return 1;
+}
+
+// setting_getbool(name)
+static int l_setting_getbool(lua_State *L)
+{
+       const char *name = luaL_checkstring(L, 1);
+       bool value = g_settings->getBool(name);
+       lua_pushboolean(L, value);
+       return 1;
+}
+
 static const struct luaL_Reg minetest_f [] = {
        {"register_nodedef_defaults", l_register_nodedef_defaults},
        {"register_entity", l_register_entity},
@@ -867,6 +887,8 @@ static const struct luaL_Reg minetest_f [] = {
        {"register_on_punchnode", l_register_on_punchnode},
        {"register_on_newplayer", l_register_on_newplayer},
        {"register_on_respawnplayer", l_register_on_respawnplayer},
+       {"setting_get", l_setting_get},
+       {"setting_getbool", l_setting_getbool},
        {NULL, NULL}
 };