From 8f0dd004f1c2e4590eb32f641e71f3bcfdb2933f Mon Sep 17 00:00:00 2001 From: luk3yx Date: Thu, 15 Jul 2021 16:24:17 +1200 Subject: [PATCH] Add minetest.load_translation to the main menu API --- src/gui/guiEngine.cpp | 2 ++ src/script/lua_api/l_mainmenu.cpp | 10 ++++++++++ src/script/lua_api/l_mainmenu.h | 3 +++ 3 files changed, 15 insertions(+) diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index 276d094f8..ecdafb511 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -38,6 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/fontengine.h" #include "client/guiscalingfilter.h" #include "irrlicht_changes/static_text.h" +#include "translation.h" #if ENABLE_GLES #include "client/tile.h" @@ -184,6 +185,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, infostream << "GUIEngine: Initializing Lua" << std::endl; + g_client_translations->clear(); m_script = new MainMenuScripting(this); try { diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 1c3172f59..fd7d24ad0 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -34,6 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serverlist.h" #include "mapgen/mapgen.h" #include "settings.h" +#include "translation.h" #include #include @@ -946,6 +947,14 @@ int ModApiMainMenu::l_sleep_ms(lua_State *L) return 0; } +/******************************************************************************/ +int ModApiMainMenu::l_load_translation(lua_State *L) +{ + const std::string tr_data = luaL_checkstring(L, 1); + g_client_translations->loadTranslation(tr_data); + return 0; +} + /******************************************************************************/ void ModApiMainMenu::Initialize(lua_State *L, int top) { @@ -992,6 +1001,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(open_url); API_FCT(open_dir); API_FCT(do_async_callback); + API_FCT(load_translation); } /******************************************************************************/ diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index ddc450062..21731222b 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -158,6 +158,9 @@ private: // async static int l_do_async_callback(lua_State *L); + // MultiCraft + static int l_load_translation(lua_State *L); + static int l_sleep_ms(lua_State *L); public: