Skip to content

Commit

Permalink
Add version API
Browse files Browse the repository at this point in the history
  • Loading branch information
ShadowNinja authored and sofar committed Nov 1, 2016
1 parent 70e2df4 commit 7607b0a
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 12 deletions.
3 changes: 2 additions & 1 deletion builtin/mainmenu/tab_credits.lua
Expand Up @@ -76,8 +76,9 @@ return {
caption = fgettext("Credits"),
cbf_formspec = function(tabview, name, tabdata)
local logofile = defaulttexturedir .. "logo.png"
local version = core.get_version()
return "image[0.5,1;" .. core.formspec_escape(logofile) .. "]" ..
"label[0.5,3.2;Minetest " .. core.get_version() .. "]" ..
"label[0.5,3.2;" .. version.project .. " " .. version.string .. "]" ..
"label[0.5,3.5;http://minetest.net]" ..
"tablecolumns[color;text]" ..
"tableoptions[background=#00000000;highlight=#00000000;border=false]" ..
Expand Down
11 changes: 11 additions & 0 deletions doc/lua_api.txt
Expand Up @@ -1908,6 +1908,17 @@ Helper functions
* nil: return all entries,
* true: return only subdirectory names, or
* false: return only file names.
* `minetest.get_version()`: returns a table containing components of the
engine version. Components:
* `project`: Name of the project, eg, "Minetest"
* `string`: Simple version, eg, "1.2.3-dev"
* `hash`: Full git version (only set if available), eg, "1.2.3-dev-01234567-dirty"
Use this for informational purposes only. The information in the returned
table does not represent the capabilities of the engine, nor is it
reliable or verifyable. Compatible forks will have a different name and
version entirely. To check for the presence of engine features, test
whether the functions exported by the wanted features exist. For example:
`if core.nodeupdate then ... end`.

### Logging
* `minetest.debug(...)`
Expand Down
9 changes: 0 additions & 9 deletions src/script/lua_api/l_mainmenu.cpp
Expand Up @@ -955,13 +955,6 @@ int ModApiMainMenu::l_show_file_open_dialog(lua_State *L)
return 0;
}

/******************************************************************************/
int ModApiMainMenu::l_get_version(lua_State *L)
{
lua_pushstring(L, g_version_string);
return 1;
}

/******************************************************************************/
int ModApiMainMenu::l_sound_play(lua_State *L)
{
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
2 changes: 0 additions & 2 deletions src/script/lua_api/l_mainmenu.h
Expand Up @@ -79,8 +79,6 @@ class ModApiMainMenu : public ModApiBase {

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);
Expand Down
29 changes: 29 additions & 0 deletions src/script/lua_api/l_util.cpp
Expand Up @@ -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.
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -525,5 +552,7 @@ void ModApiUtil::InitializeAsync(AsyncEngine& engine)

ASYNC_API_FCT(encode_base64);
ASYNC_API_FCT(decode_base64);

ASYNC_API_FCT(get_version);
}

3 changes: 3 additions & 0 deletions src/script/lua_api/l_util.h
Expand Up @@ -104,6 +104,9 @@ class ModApiUtil : public ModApiBase {
// 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);

Expand Down

1 comment on commit 7607b0a

@nerzhul
Copy link
Member

@nerzhul nerzhul commented on 7607b0a Nov 5, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two years to make that happen xD

Please sign in to comment.