Luanti 5.16.0-dev
Loading...
Searching...
No Matches
MainMenuScripting Class Reference

#include <scripting_mainmenu.h>

Inheritance diagram for MainMenuScripting:
Collaboration diagram for MainMenuScripting:

Public Member Functions

 MainMenuScripting (GUIEngine *guiengine)
void step ()
u32 queueAsync (std::string &&serialized_func, std::string &&serialized_param)
Public Member Functions inherited from ScriptApiBase
 ScriptApiBase (ScriptingType type)
 ScriptApiBase ()
virtual ~ScriptApiBase ()
 DISABLE_CLASS_COPY (ScriptApiBase)
void loadMod (const std::string &script_path, const std::string &mod_name)
void loadScript (const std::string &script_path)
void runCallbacksRaw (int nargs, RunCallbacksMode mode, const char *fxn)
void addObjectReference (ServerActiveObject *cobj)
void removeObjectReference (ServerActiveObject *cobj)
ScriptingType getType ()
IGameDefgetGameDef ()
ServergetServer ()
const std::string & getOrigin ()
void setOriginDirect (const char *origin)
void setOriginFromTableRaw (int index, const char *fxn)
void clientOpenLibs (lua_State *L)
void checkSetByBuiltin ()
Public Member Functions inherited from ScriptApiMainMenu
void setMainMenuData (const MainMenuDataForScript *data)
 Hand over MainMenuDataForScript to lua to inform lua of the content.
void handleMainMenuEvent (const std::string &text)
 process events received from formspec
void handleMainMenuButtons (const StringMap &fields)
 process field data received from formspec
void beforeClose ()
 Called before the menu is closed, either to exit or to join a game.
Public Member Functions inherited from ScriptApiSecurity
void initializeSecurity ()
void initializeSecurityClient ()
void initializeSecuritySSCSM ()

Static Public Member Functions

static bool mayModifyPath (const std::string &path)
static bool checkPathAccess (const std::string &abs_path, bool write_required, bool *write_allowed)
Static Public Member Functions inherited from ScriptApiBase
static std::string getCurrentModNameInsecure (lua_State *L)
 Returns the currently running mod, only during init time.
Static Public Member Functions inherited from ScriptApiSecurity
static bool isSecure (lua_State *L)
static void getGlobalsBackup (lua_State *L)
static bool safeLoadString (lua_State *L, std::string_view code, const char *chunk_name)
 Loads a string as Lua code safely (doesn't allow bytecode).
static bool safeLoadFile (lua_State *L, const char *path, const char *display_name=nullptr)
 Loads a file as Lua code safely (doesn't allow bytecode).
static std::string getCurrentModName (lua_State *L)
 Returns the currently running mod, only during init time.
static bool checkWhitelisted (lua_State *L, const std::string &setting)
 Check if mod is whitelisted in the given setting.
static bool checkPath (lua_State *L, const char *path, bool write_required, bool *write_allowed=nullptr)
 Checks if mods are allowed to read (and optionally write) to the path.

Protected Member Functions

bool checkPathInternal (const std::string &abs_path, bool write_required, bool *write_allowed) override
 Should check if the given path may be accessed.
Protected Member Functions inherited from ScriptApiBase
lua_State * getStack ()
void realityCheck ()
void scriptError (int result, const char *fxn)
void stackDump (std::ostream &o)
void setGameDef (IGameDef *gamedef)
EnvironmentgetEnv ()
void setEnv (Environment *env)
EmergeThreadgetEmergeThread ()
void setEmergeThread (EmergeThread *emerge)
void objectrefGetOrCreate (lua_State *L, ServerActiveObject *cobj)
void pushPlayerHPChangeReason (lua_State *L, const PlayerHPChangeReason &reason)
Protected Member Functions inherited from LuaHelper
template<>
bool readParam (lua_State *L, int index)
template<>
s16 readParam (lua_State *L, int index)
template<>
int readParam (lua_State *L, int index)
template<>
float readParam (lua_State *L, int index)
template<>
v2s16 readParam (lua_State *L, int index)
template<>
v2f readParam (lua_State *L, int index)
template<>
v3f readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
template<>
std::string readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
 Read a string from Lua state L at index without copying it.
Protected Member Functions inherited from ScriptApiSecurity
virtual bool modNamesAreTrusted ()
 Specify if the mod names during init time(!) can be trusted.

Private Member Functions

void initializeModApi (lua_State *L, int top)

Static Private Member Functions

static void registerLuaClasses (lua_State *L, int top)

Private Attributes

AsyncEngine asyncEngine

Additional Inherited Members

Static Protected Member Functions inherited from LuaHelper
template<typename T>
static T readParam (lua_State *L, int index)
 Read a value using a template type T from Lua state L at index.
template<typename T>
static T readParam (lua_State *L, int index, const T &default_value)
 Read a value using a template type T from Lua state L at index.
Static Protected Member Functions inherited from ScriptApiSecurity
static bool checkPathWithGamedef (lua_State *L, const std::string &abs_path, bool write_required, bool *write_allowed)
Protected Attributes inherited from ScriptApiBase
std::recursive_mutex m_luastackmutex
std::string m_last_run_mod
int m_lock_recursion_count {}
std::thread::id m_owning_thread

Constructor & Destructor Documentation

◆ MainMenuScripting()

MainMenuScripting::MainMenuScripting ( GUIEngine * guiengine)

References ScriptApiBase::ScriptApiBase(), infostream, initializeModApi(), ScriptApiSecurity::initializeSecurity(), and SCRIPTAPI_PRECHECKHEADER.

Here is the call graph for this function:

Member Function Documentation

◆ checkPathAccess()

bool MainMenuScripting::checkPathAccess ( const std::string & abs_path,
bool write_required,
bool * write_allowed )
static

References mayModifyPath().

Referenced by AsyncWorkerThread::checkPathInternal(), and checkPathInternal().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkPathInternal()

bool MainMenuScripting::checkPathInternal ( const std::string & abs_path,
bool write_required,
bool * write_allowed )
inlineoverrideprotectedvirtual

Should check if the given path may be accessed.

If write_required is true test for write access, if false test for read access.

Parameters
abs_pathabsolute file/directory path, may not exist
write_requiredwas write access requested?
write_allowedoutput parameter (nullable): set to true if writing is allowed
Returns
true if access is allowed

Implements ScriptApiSecurity.

References checkPathAccess().

Here is the call graph for this function:

◆ initializeModApi()

void MainMenuScripting::initializeModApi ( lua_State * L,
int top )
private

References asyncEngine, ModApiHttp::Initialize(), ModApiMainMenu::Initialize(), ModApiMainMenuSound::Initialize(), ModApiMenuCommon::Initialize(), ModApiUtil::Initialize(), ModApiHttp::InitializeAsync(), ModApiMainMenu::InitializeAsync(), ModApiMenuCommon::InitializeAsync(), ModApiUtil::InitializeAsync(), MAINMENU_NUM_ASYNC_THREADS, and registerLuaClasses().

Referenced by MainMenuScripting().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mayModifyPath()

bool MainMenuScripting::mayModifyPath ( const std::string & path)
static

References fs::AbsolutePathPartial(), porting::path_cache, porting::path_user, fs::PathStartsWith(), and fs::TempPath().

Referenced by checkPathAccess().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ queueAsync()

u32 MainMenuScripting::queueAsync ( std::string && serialized_func,
std::string && serialized_param )

References asyncEngine.

Referenced by ModApiMainMenu::l_do_async_callback().

Here is the caller graph for this function:

◆ registerLuaClasses()

void MainMenuScripting::registerLuaClasses ( lua_State * L,
int top )
staticprivate

References LuaSettings::Register(), and MainMenuSoundHandle::Register().

Referenced by initializeModApi().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ step()

void MainMenuScripting::step ( )

References asyncEngine, and ScriptApiBase::getStack().

Here is the call graph for this function:

Member Data Documentation

◆ asyncEngine

AsyncEngine MainMenuScripting::asyncEngine
private

Referenced by initializeModApi(), queueAsync(), and step().


The documentation for this class was generated from the following files: