mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
* squashed: [Client-sided scripting] Don't register functions that don't work. (#5091)
This commit is contained in:
parent
2efae3ffd7
commit
cb3a61f8db
10 changed files with 66 additions and 6 deletions
|
@ -37,6 +37,12 @@ Server *ModApiBase::getServer(lua_State *L)
|
|||
return getScriptApiBase(L)->getServer();
|
||||
}
|
||||
|
||||
#ifndef SERVER
|
||||
Client *ModApiBase::getClient(lua_State *L)
|
||||
{
|
||||
return getScriptApiBase(L)->getClient();
|
||||
}
|
||||
#endif
|
||||
Environment *ModApiBase::getEnv(lua_State *L)
|
||||
{
|
||||
return getScriptApiBase(L)->getEnv();
|
||||
|
|
|
@ -28,6 +28,10 @@ extern "C" {
|
|||
#include <lauxlib.h>
|
||||
}
|
||||
|
||||
#ifndef SERVER
|
||||
#include "client.h"
|
||||
#endif
|
||||
|
||||
class ScriptApiBase;
|
||||
class Server;
|
||||
class Environment;
|
||||
|
@ -38,6 +42,10 @@ class ModApiBase {
|
|||
public:
|
||||
static ScriptApiBase* getScriptApiBase(lua_State *L);
|
||||
static Server* getServer(lua_State *L);
|
||||
#ifndef SERVER
|
||||
static Client* getClient(lua_State *L);
|
||||
#endif // !SERVER
|
||||
|
||||
static Environment* getEnv(lua_State *L);
|
||||
static GUIEngine* getGuiEngine(lua_State *L);
|
||||
// When we are not loading the mod, this function returns "."
|
||||
|
|
|
@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
#include "l_client.h"
|
||||
#include "l_internal.h"
|
||||
#include "util/string.h"
|
||||
|
||||
int ModApiClient::l_get_current_modname(lua_State *L)
|
||||
{
|
||||
|
@ -27,7 +28,18 @@ int ModApiClient::l_get_current_modname(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
// display_chat_message(message)
|
||||
int ModApiClient::l_display_chat_message(lua_State *L)
|
||||
{
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
|
||||
std::string message = luaL_checkstring(L, 1);
|
||||
getClient(L)->pushToChatQueue(utf8_to_wide(message));
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ModApiClient::Initialize(lua_State *L, int top)
|
||||
{
|
||||
API_FCT(get_current_modname);
|
||||
API_FCT(display_chat_message);
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ class ModApiClient : public ModApiBase
|
|||
private:
|
||||
// get_current_modname()
|
||||
static int l_get_current_modname(lua_State *L);
|
||||
static int l_display_chat_message(lua_State *L);
|
||||
|
||||
public:
|
||||
static void Initialize(lua_State *L, int top);
|
||||
|
|
|
@ -526,6 +526,32 @@ void ModApiUtil::Initialize(lua_State *L, int top)
|
|||
API_FCT(get_version);
|
||||
}
|
||||
|
||||
void ModApiUtil::InitializeClient(lua_State *L, int top)
|
||||
{
|
||||
API_FCT(log);
|
||||
|
||||
API_FCT(setting_set);
|
||||
API_FCT(setting_get);
|
||||
API_FCT(setting_setbool);
|
||||
API_FCT(setting_getbool);
|
||||
API_FCT(setting_save);
|
||||
|
||||
API_FCT(parse_json);
|
||||
API_FCT(write_json);
|
||||
|
||||
API_FCT(is_yes);
|
||||
|
||||
API_FCT(get_builtin_path);
|
||||
|
||||
API_FCT(compress);
|
||||
API_FCT(decompress);
|
||||
|
||||
API_FCT(encode_base64);
|
||||
API_FCT(decode_base64);
|
||||
|
||||
API_FCT(get_version);
|
||||
}
|
||||
|
||||
void ModApiUtil::InitializeAsync(AsyncEngine& engine)
|
||||
{
|
||||
ASYNC_API_FCT(log);
|
||||
|
|
|
@ -110,6 +110,8 @@ private:
|
|||
public:
|
||||
static void Initialize(lua_State *L, int top);
|
||||
|
||||
static void InitializeClient(lua_State *L, int top);
|
||||
|
||||
static void InitializeAsync(AsyncEngine& engine);
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue