diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-21 15:38:57 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-21 15:38:57 +1100 |
commit | e2fd804f554d991b4ac0139ce9d80d349d60ce79 (patch) | |
tree | 861b72422875a3f8694b76ed2ac0a4860f22adbc | |
parent | 330fc938f327476509973c5fed7cf5d6fbcdb0b4 (diff) | |
parent | 868216a992c5d2d721ce457bbc0ac9843b121a0f (diff) |
Merge pull request #46 from ErodeesFleurs/luaFunc
Add parseJson and clientWorld functions to LuaBindings
4 files changed, 12 insertions, 0 deletions
diff --git a/source/core/scripting/StarUtilityLuaBindings.cpp b/source/core/scripting/StarUtilityLuaBindings.cpp index ed04fa7..5ab6e19 100644 --- a/source/core/scripting/StarUtilityLuaBindings.cpp +++ b/source/core/scripting/StarUtilityLuaBindings.cpp @@ -113,6 +113,7 @@ LuaCallbacks LuaBindings::makeUtilityCallbacks() { callbacks.registerCallback("logWarn", UtilityCallbacks::logWarn); callbacks.registerCallback("logError", UtilityCallbacks::logError); callbacks.registerCallback("setLogMap", UtilityCallbacks::setLogMap); + callbacks.registerCallback("parseJson", UtilityCallbacks::parseJson); callbacks.registerCallback("printJson", UtilityCallbacks::printJson); callbacks.registerCallback("print", UtilityCallbacks::print); callbacks.registerCallback("interpolateSinEase", UtilityCallbacks::interpolateSinEase); @@ -192,6 +193,10 @@ void LuaBindings::UtilityCallbacks::setLogMap(String const& key, String const& v LogMap::set(key, formatLua(value, args)); } +Json LuaBindings::UtilityCallbacks::parseJson(String const& str) { + return Json::parse(str); +} + String LuaBindings::UtilityCallbacks::printJson(Json const& arg, Maybe<int> pretty) { return arg.repr(pretty.value()); } diff --git a/source/core/scripting/StarUtilityLuaBindings.hpp b/source/core/scripting/StarUtilityLuaBindings.hpp index 8435ecd..67d1f9c 100644 --- a/source/core/scripting/StarUtilityLuaBindings.hpp +++ b/source/core/scripting/StarUtilityLuaBindings.hpp @@ -16,6 +16,7 @@ namespace LuaBindings { void logWarn(String const& str, LuaVariadic<LuaValue> const& args); void logError(String const& str, LuaVariadic<LuaValue> const& args); void setLogMap(String const& key, String const& value, LuaVariadic<LuaValue> const& args); + Json parseJson(String const& str); String printJson(Json const& arg, Maybe<int> pretty); String print(LuaValue const& arg); LuaValue interpolateSinEase(LuaEngine& engine, double offset, LuaValue const& value1, LuaValue const& value2); diff --git a/source/game/scripting/StarUniverseServerLuaBindings.cpp b/source/game/scripting/StarUniverseServerLuaBindings.cpp index 99b1a7a..c68f138 100644 --- a/source/game/scripting/StarUniverseServerLuaBindings.cpp +++ b/source/game/scripting/StarUniverseServerLuaBindings.cpp @@ -22,6 +22,7 @@ LuaCallbacks LuaBindings::makeUniverseServerCallbacks(UniverseServer* universe) callbacks.registerCallbackWithSignature<StringList>("activeWorlds", bind(UniverseServerCallbacks::activeWorlds, universe)); callbacks.registerCallbackWithSignature<RpcThreadPromise<Json>, String, String, LuaVariadic<Json>>("sendWorldMessage", bind(UniverseServerCallbacks::sendWorldMessage, universe, _1, _2, _3)); callbacks.registerCallbackWithSignature<void, ConnectionId, String, Json>("sendPacket", bind(UniverseServerCallbacks::sendPacket, universe, _1, _2, _3)); + callbacks.registerCallbackWithSignature<String, ConnectionId>("clientWorld", bind(UniverseServerCallbacks::clientWorld, universe, _1)); return callbacks; } @@ -133,4 +134,8 @@ void LuaBindings::UniverseServerCallbacks::sendPacket(UniverseServer* universe, universe->sendPacket(clientId, packet); } +String LuaBindings::UniverseServerCallbacks::clientWorld(UniverseServer* universe, ConnectionId clientId) { + return printWorldId(universe->clientWorld(clientId)); +} + } diff --git a/source/game/scripting/StarUniverseServerLuaBindings.hpp b/source/game/scripting/StarUniverseServerLuaBindings.hpp index 18dca7d..b5ce8b9 100644 --- a/source/game/scripting/StarUniverseServerLuaBindings.hpp +++ b/source/game/scripting/StarUniverseServerLuaBindings.hpp @@ -26,6 +26,7 @@ namespace LuaBindings { StringList activeWorlds(UniverseServer* universe); RpcThreadPromise<Json> sendWorldMessage(UniverseServer* universe, String const& worldId, String const& message, LuaVariadic<Json> args); void sendPacket(UniverseServer* universe, ConnectionId clientId, String const& packetTypeName, Json const& args); + String clientWorld(UniverseServer* universe, ConnectionId clientId); } } } |