diff options
author | Jordan Irwin <antumdeluge@gmail.com> | 2017-12-17 07:27:37 -0800 |
---|---|---|
committer | rubenwardy <rubenwardy@gmail.com> | 2017-12-17 15:27:37 +0000 |
commit | 18b921015a33c6e597f480bccc7e2974af33c4ea (patch) | |
tree | eb8a13a020e340870d772e72455cfcf3289504de | |
parent | 26c7e98e3d87446acbc0c30b3c0ea8eb8bc1f6c5 (diff) | |
download | minetest-18b921015a33c6e597f480bccc7e2974af33c4ea.tar.gz minetest-18b921015a33c6e597f480bccc7e2974af33c4ea.tar.bz2 minetest-18b921015a33c6e597f480bccc7e2974af33c4ea.zip |
Allow 'default' parameter in 'settings:get_bool' function
Default value is used when the setting key is not found in the config
file. If default value is not set, 'nil' is returned.
#6188
-rw-r--r-- | doc/lua_api.txt | 4 | ||||
-rw-r--r-- | src/script/lua_api/l_settings.cpp | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index aba01fa1d..7d568b6e1 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4131,7 +4131,9 @@ It can be created via `Settings(filename)`. #### Methods * `get(key)`: returns a value -* `get_bool(key)`: returns a boolean +* `get_bool(key, [default])`: returns a boolean + * `default` is the value returned if `key` is not found. + * Returns `nil` if `key` is not found and `default` not specified. * `get_np_group(key)`: returns a NoiseParams table * `set(key, value)` * Setting names can't contain whitespace or any of `="{}#`. diff --git a/src/script/lua_api/l_settings.cpp b/src/script/lua_api/l_settings.cpp index 141ac61d1..1d56aed5f 100644 --- a/src/script/lua_api/l_settings.cpp +++ b/src/script/lua_api/l_settings.cpp @@ -100,7 +100,11 @@ int LuaSettings::l_get_bool(lua_State* L) bool value = o->m_settings->getBool(key); lua_pushboolean(L, value); } else { - lua_pushnil(L); + // Push default value + if (lua_isboolean(L, 3)) + lua_pushboolean(L, lua_toboolean(L, 3)); + else + lua_pushnil(L); } return 1; |