#include "scripting_pause_menu.h"
#include "client/client.h"
#include "cpp_api/s_internal.h"
#include "filesys.h"
#include "lua_api/l_client_common.h"
#include "lua_api/l_menu_common.h"
#include "lua_api/l_pause_menu.h"
#include "lua_api/l_settings.h"
#include "lua_api/l_util.h"
PauseMenuScripting::PauseMenuScripting(Client *client):
ScriptApiBase(ScriptingType::PauseMenu)
{
setGameDef(client);
SCRIPTAPI_PRECHECKHEADER
initializeSecurity();
lua_getglobal(L, "core");
int top = lua_gettop(L);
initializeModApi(L, top);
lua_pop(L, 1);
lua_pushstring(L, "pause_menu");
lua_setglobal(L, "INIT");
infostream << "SCRIPTAPI: Initialized pause menu modules" << std::endl;
}
void PauseMenuScripting::initializeModApi(lua_State *L, int top)
{
LuaSettings::Register(L);
ModApiPauseMenu::Initialize(L, top);
ModApiMenuCommon::Initialize(L, top);
ModApiClientCommon::Initialize(L, top);
ModApiUtil::Initialize(L, top);
}
void PauseMenuScripting::loadBuiltin()
{
loadScript(Client::getBuiltinLuaPath() + DIR_DELIM "init.lua");
checkSetByBuiltin();
}
bool PauseMenuScripting::checkPathInternal(const std::string &abs_path, bool write_required,
bool *write_allowed)
{
if (write_required)
return false;
std::string path_builtin = fs::AbsolutePath(Client::getBuiltinLuaPath());
return !path_builtin.empty() && fs::PathStartsWith(abs_path, path_builtin);
}