*/
#include "scripting_client.h"
-#include "client.h"
+#include "client/client.h"
+#include "client/game.h"
#include "cpp_api/s_internal.h"
#include "lua_api/l_client.h"
#include "lua_api/l_env.h"
+#include "lua_api/l_item.h"
+#include "lua_api/l_itemstackmeta.h"
#include "lua_api/l_minimap.h"
+#include "lua_api/l_modchannels.h"
+#include "lua_api/l_particles_local.h"
#include "lua_api/l_storage.h"
#include "lua_api/l_sound.h"
#include "lua_api/l_util.h"
#include "lua_api/l_nodemeta.h"
#include "lua_api/l_localplayer.h"
#include "lua_api/l_camera.h"
+#include "lua_api/l_settings.h"
ClientScripting::ClientScripting(Client *client):
- ScriptApiBase()
+ ScriptApiBase(ScriptingType::Client)
{
setGameDef(client);
+ setGame(g_game);
SCRIPTAPI_PRECHECKHEADER
InitializeModApi(L, top);
lua_pop(L, 1);
- LuaMinimap::create(L, client->getMinimap());
+ if (client->getMinimap())
+ LuaMinimap::create(L, client->getMinimap());
// Push builtin initialization type
lua_pushstring(L, "client");
void ClientScripting::InitializeModApi(lua_State *L, int top)
{
- ModApiUtil::InitializeClient(L, top);
- ModApiClient::Initialize(L, top);
- ModApiStorage::Initialize(L, top);
- ModApiEnvMod::InitializeClient(L, top);
-
LuaItemStack::Register(L);
+ ItemStackMetaRef::Register(L);
+ LuaRaycast::Register(L);
StorageRef::Register(L);
LuaMinimap::Register(L);
NodeMetaRef::RegisterClient(L);
LuaLocalPlayer::Register(L);
LuaCamera::Register(L);
+ ModChannelRef::Register(L);
+ LuaSettings::Register(L);
+
+ ModApiItemMod::Initialize(L, top);
+ ModApiUtil::InitializeClient(L, top);
+ ModApiClient::Initialize(L, top);
+ ModApiStorage::Initialize(L, top);
+ ModApiEnvMod::InitializeClient(L, top);
+ ModApiChannels::Initialize(L, top);
+ ModApiParticlesLocal::Initialize(L, top);
}
void ClientScripting::on_client_ready(LocalPlayer *localplayer)
{
- lua_State *L = getStack();
- LuaLocalPlayer::create(L, localplayer);
+ LuaLocalPlayer::create(getStack(), localplayer);
}
void ClientScripting::on_camera_ready(Camera *camera)