aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2014-05-06 22:31:35 -0400
committerAuke Kok <sofar+github@foo-projects.org>2016-10-31 21:53:00 -0700
commit7607b0ac2065a50a9b68b22909ab40738f2d08e8 (patch)
tree5c806ccbe408463890342599b675b492d63c5162 /src/script
parent70e2df4f86cf4101a10c7e1f7a6ac5cc03992793 (diff)
downloadminetest-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.cpp9
-rw-r--r--src/script/lua_api/l_mainmenu.h2
-rw-r--r--src/script/lua_api/l_util.cpp29
-rw-r--r--src/script/lua_api/l_util.h3
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);