diff options
author | ShadowNinja <shadowninja@minetest.net> | 2014-05-06 22:31:35 -0400 |
---|---|---|
committer | Auke Kok <sofar+github@foo-projects.org> | 2016-10-31 21:53:00 -0700 |
commit | 7607b0ac2065a50a9b68b22909ab40738f2d08e8 (patch) | |
tree | 5c806ccbe408463890342599b675b492d63c5162 /src/script | |
parent | 70e2df4f86cf4101a10c7e1f7a6ac5cc03992793 (diff) | |
download | minetest-7607b0ac2065a50a9b68b22909ab40738f2d08e8.tar.gz minetest-7607b0ac2065a50a9b68b22909ab40738f2d08e8.tar.bz2 minetest-7607b0ac2065a50a9b68b22909ab40738f2d08e8.zip |
Add version API
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/lua_api/l_mainmenu.cpp | 9 | ||||
-rw-r--r-- | src/script/lua_api/l_mainmenu.h | 2 | ||||
-rw-r--r-- | src/script/lua_api/l_util.cpp | 29 | ||||
-rw-r--r-- | src/script/lua_api/l_util.h | 3 |
4 files changed, 32 insertions, 11 deletions
diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 8b078eafd..4a2484613 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -956,13 +956,6 @@ int ModApiMainMenu::l_show_file_open_dialog(lua_State *L) } /******************************************************************************/ -int ModApiMainMenu::l_get_version(lua_State *L) -{ - lua_pushstring(L, g_version_string); - return 1; -} - -/******************************************************************************/ int ModApiMainMenu::l_sound_play(lua_State *L) { GUIEngine* engine = getGuiEngine(L); @@ -1157,7 +1150,6 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(extract_zip); API_FCT(get_mainmenu_path); API_FCT(show_file_open_dialog); - API_FCT(get_version); API_FCT(download_file); API_FCT(get_modstore_details); API_FCT(get_modstore_list); @@ -1188,7 +1180,6 @@ void ModApiMainMenu::InitializeAsync(AsyncEngine& engine) ASYNC_API_FCT(delete_dir); ASYNC_API_FCT(copy_dir); //ASYNC_API_FCT(extract_zip); //TODO remove dependency to GuiEngine - ASYNC_API_FCT(get_version); ASYNC_API_FCT(download_file); ASYNC_API_FCT(get_modstore_details); ASYNC_API_FCT(get_modstore_list); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 405af25e8..ad5155ac6 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -79,8 +79,6 @@ private: static int l_delete_favorite(lua_State *L); - static int l_get_version(lua_State *L); - static int l_sound_play(lua_State *L); static int l_sound_stop(lua_State *L); diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index fa2d15b03..818c1aeeb 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -33,8 +33,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "util/auth.h" #include "util/base64.h" +#include "config.h" +#include "version.h" #include <algorithm> + // log([level,] text) // Writes a line to the logger. // The one-argument version logs to infostream. @@ -302,12 +305,14 @@ int ModApiUtil::l_is_yes(lua_State *L) return 1; } +// get_builtin_path() int ModApiUtil::l_get_builtin_path(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string path = porting::path_share + DIR_DELIM + "builtin"; lua_pushstring(L, path.c_str()); + return 1; } @@ -460,6 +465,26 @@ int ModApiUtil::l_request_insecure_environment(lua_State *L) return 1; } +// get_version() +int ModApiUtil::l_get_version(lua_State *L) +{ + lua_createtable(L, 0, 3); + int table = lua_gettop(L); + + lua_pushstring(L, PROJECT_NAME_C); + lua_setfield(L, table, "project"); + + lua_pushstring(L, g_version_string); + lua_setfield(L, table, "string"); + + if (strcmp(g_version_string, g_version_hash)) { + lua_pushstring(L, g_version_hash); + lua_setfield(L, table, "hash"); + } + + return 1; +} + void ModApiUtil::Initialize(lua_State *L, int top) { @@ -496,6 +521,8 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(encode_base64); API_FCT(decode_base64); + + API_FCT(get_version); } void ModApiUtil::InitializeAsync(AsyncEngine& engine) @@ -525,5 +552,7 @@ void ModApiUtil::InitializeAsync(AsyncEngine& engine) ASYNC_API_FCT(encode_base64); ASYNC_API_FCT(decode_base64); + + ASYNC_API_FCT(get_version); } diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h index 3012d55aa..9910704b3 100644 --- a/src/script/lua_api/l_util.h +++ b/src/script/lua_api/l_util.h @@ -104,6 +104,9 @@ private: // decode_base64(string) static int l_decode_base64(lua_State *L); + // get_version() + static int l_get_version(lua_State *L); + public: static void Initialize(lua_State *L, int top); |