Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/base/StarAssets.cpp2
-rw-r--r--source/game/scripting/StarWorldLuaBindings.cpp5
-rw-r--r--source/game/scripting/StarWorldLuaBindings.hpp1
3 files changed, 7 insertions, 1 deletions
diff --git a/source/base/StarAssets.cpp b/source/base/StarAssets.cpp
index 2bbe509..d4b7228 100644
--- a/source/base/StarAssets.cpp
+++ b/source/base/StarAssets.cpp
@@ -111,7 +111,7 @@ Assets::Assets(Settings settings, StringList assetSources) {
auto luaEngine = LuaEngine::create();
m_luaEngine = luaEngine;
- auto pushGlobalContext = [&luaEngine](String const& name, LuaCallbacks & callbacks) {
+ auto pushGlobalContext = [&luaEngine](String const& name, LuaCallbacks && callbacks) {
auto table = luaEngine->createTable();
for (auto const& p : callbacks.callbacks())
table.set(p.first, luaEngine->createWrappedFunction(p.second));
diff --git a/source/game/scripting/StarWorldLuaBindings.cpp b/source/game/scripting/StarWorldLuaBindings.cpp
index 7d74a98..cc91ec2 100644
--- a/source/game/scripting/StarWorldLuaBindings.cpp
+++ b/source/game/scripting/StarWorldLuaBindings.cpp
@@ -375,6 +375,7 @@ namespace LuaBindings {
callbacks.registerCallback("isClient", []() { return false; });
callbacks.registerCallback("isServer", []() { return true; });
+ callbacks.registerCallbackWithSignature<String>("id", bind(ServerWorldCallbacks::id, serverWorld));
callbacks.registerCallbackWithSignature<bool, EntityId, bool>("breakObject", bind(ServerWorldCallbacks::breakObject, serverWorld, _1, _2));
callbacks.registerCallbackWithSignature<bool, RectF>("isVisibleToPlayer", bind(ServerWorldCallbacks::isVisibleToPlayer, serverWorld, _1));
callbacks.registerCallbackWithSignature<bool, RectF>("loadRegion", bind(ServerWorldCallbacks::loadRegion, serverWorld, _1));
@@ -1086,6 +1087,10 @@ namespace LuaBindings {
return world->clientWindow();
}
+ String ServerWorldCallbacks::id(WorldServer* world) {
+ return world->worldId();
+ }
+
bool ServerWorldCallbacks::breakObject(WorldServer* world, EntityId arg1, bool arg2) {
if (auto entity = world->get<Object>(arg1)) {
bool smash = arg2;
diff --git a/source/game/scripting/StarWorldLuaBindings.hpp b/source/game/scripting/StarWorldLuaBindings.hpp
index 965f025..010affd 100644
--- a/source/game/scripting/StarWorldLuaBindings.hpp
+++ b/source/game/scripting/StarWorldLuaBindings.hpp
@@ -73,6 +73,7 @@ namespace LuaBindings {
}
namespace ServerWorldCallbacks {
+ String id(WorldServer* world);
bool breakObject(WorldServer* world, EntityId arg1, bool arg2);
bool isVisibleToPlayer(WorldServer* world, RectF const& arg1);
bool loadRegion(WorldServer* world, RectF const& arg1);