aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_craft.cpp
diff options
context:
space:
mode:
authorBen Deutsch <ben@bendeutsch.de>2018-04-18 20:56:01 +0200
committerSmallJoker <SmallJoker@users.noreply.github.com>2018-04-18 20:56:01 +0200
commit3eac24946418d787697077cc1806856e514ba5f4 (patch)
treeb831acb5d872cdc0f46123e92be9bb21f46d8d9f /src/script/lua_api/l_craft.cpp
parentb1e58c9c35ae3eb6167a0745086cdb0ddb1dd9d7 (diff)
downloadminetest-3eac24946418d787697077cc1806856e514ba5f4.tar.gz
minetest-3eac24946418d787697077cc1806856e514ba5f4.tar.bz2
minetest-3eac24946418d787697077cc1806856e514ba5f4.zip
PlayerSettings struct for player movement code (#7243)
Instead of calling g_settings->getBool("flag") multiple times during each movement step, the current settings are cached in a new player object member. Updated via registered callbacks.
Diffstat (limited to 'src/script/lua_api/l_craft.cpp')
0 files changed, 0 insertions, 0 deletions
n class="hl com">with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "scripting_mainmenu.h" #include "mods.h" #include "cpp_api/s_internal.h" #include "lua_api/l_base.h" #include "lua_api/l_mainmenu.h" #include "lua_api/l_sound.h" #include "lua_api/l_util.h" #include "lua_api/l_settings.h" #include "log.h" extern "C" { #include "lualib.h" } #define MAINMENU_NUM_ASYNC_THREADS 4 MainMenuScripting::MainMenuScripting(GUIEngine* guiengine) { setGuiEngine(guiengine); setType(ScriptingType::MainMenu); SCRIPTAPI_PRECHECKHEADER lua_getglobal(L, "core"); int top = lua_gettop(L); lua_newtable(L); lua_setglobal(L, "gamedata"); // Initialize our lua_api modules initializeModApi(L, top); lua_pop(L, 1); // Push builtin initialization type lua_pushstring(L, "mainmenu"); lua_setglobal(L, "INIT"); infostream << "SCRIPTAPI: Initialized main menu modules" << std::endl; } /******************************************************************************/ void MainMenuScripting::initializeModApi(lua_State *L, int top) { registerLuaClasses(L, top); // Initialize mod API modules ModApiMainMenu::Initialize(L, top); ModApiUtil::Initialize(L, top); ModApiSound::Initialize(L, top); asyncEngine.registerStateInitializer(registerLuaClasses); asyncEngine.registerStateInitializer(ModApiMainMenu::InitializeAsync); asyncEngine.registerStateInitializer(ModApiUtil::InitializeAsync); // Initialize async environment //TODO possibly make number of async threads configurable asyncEngine.initialize(MAINMENU_NUM_ASYNC_THREADS); } /******************************************************************************/ void MainMenuScripting::registerLuaClasses(lua_State *L, int top) { LuaSettings::Register(L); } /******************************************************************************/ void MainMenuScripting::step() { asyncEngine.step(getStack()); } /******************************************************************************/ unsigned int MainMenuScripting::queueAsync(const std::string &serialized_func, const std::string &serialized_param) { return asyncEngine.queueAsyncJob(serialized_func, serialized_param); }