Skip to content

Commit

Permalink
Main Menu: Add get_clientmodpath API (#5912)
Browse files Browse the repository at this point in the history
Add `core.get_clientmodpath` to main menu API (also possible in async calls).
  • Loading branch information
octacian authored and nerzhul committed Jun 6, 2017
1 parent b3dfe53 commit fee5171
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
4 changes: 3 additions & 1 deletion doc/menu_lua_api.txt
Expand Up @@ -35,6 +35,8 @@ core.get_builtin_path()
^ returns path to builtin root
core.get_modpath() (possible in async calls)
^ returns path to global modpath
core.get_clientmodpath() (possible in async calls)
^ returns path to global client-side modpath
core.get_modstore_details(modid) (possible in async calls)
^ modid numeric id of mod in modstore
^ returns {
Expand Down Expand Up @@ -234,7 +236,7 @@ Limitations of Async operations
-Limited set of available functions
e.g. No access to functions modifying menu like core.start,core.close,
core.file_open_dialog


Class reference
----------------
Expand Down
12 changes: 11 additions & 1 deletion src/script/lua_api/l_mainmenu.cpp
Expand Up @@ -734,6 +734,15 @@ int ModApiMainMenu::l_get_modpath(lua_State *L)
return 1;
}

/******************************************************************************/
int ModApiMainMenu::l_get_clientmodpath(lua_State *L)
{
std::string modpath = fs::RemoveRelativePathComponents(
porting::path_user + DIR_DELIM + "clientmods" + DIR_DELIM);
lua_pushstring(L, modpath.c_str());
return 1;
}

/******************************************************************************/
int ModApiMainMenu::l_get_gamepath(lua_State *L)
{
Expand Down Expand Up @@ -1120,6 +1129,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
API_FCT(set_topleft_text);
API_FCT(get_mapgen_names);
API_FCT(get_modpath);
API_FCT(get_clientmodpath);
API_FCT(get_gamepath);
API_FCT(get_texturepath);
API_FCT(get_texturepath_share);
Expand Down Expand Up @@ -1150,6 +1160,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
API_FCT(get_favorites);
API_FCT(get_mapgen_names);
API_FCT(get_modpath);
API_FCT(get_clientmodpath);
API_FCT(get_gamepath);
API_FCT(get_texturepath);
API_FCT(get_texturepath_share);
Expand All @@ -1162,4 +1173,3 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
API_FCT(get_modstore_list);
//API_FCT(gettext); (gettext lib isn't threadsafe)
}

2 changes: 2 additions & 0 deletions src/script/lua_api/l_mainmenu.h
Expand Up @@ -108,6 +108,8 @@ class ModApiMainMenu: public ModApiBase

static int l_get_modpath(lua_State *L);

static int l_get_clientmodpath(lua_State *L);

static int l_get_gamepath(lua_State *L);

static int l_get_texturepath(lua_State *L);
Expand Down

0 comments on commit fee5171

Please sign in to comment.