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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarPlayerLuaBindings.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-10-21 16:49:21 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-10-21 16:49:21 +1100
commite3aa302a8c86d7d33afd2ae13a2bdacee141d2bf (patch)
tree6f00cfa9838f92a323e25649ea1915f21a233992 /source/game/scripting/StarPlayerLuaBindings.cpp
parentf270c3f1686923531058badf2e33633e54929d85 (diff)
Move teamMembers impl to Lua bindings
avoiding including UniverseClient.hpp and TeamClient.hpp in StarPlayer
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarPlayerLuaBindings.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp
index 4343531..b0b44a8 100644
--- a/source/game/scripting/StarPlayerLuaBindings.cpp
+++ b/source/game/scripting/StarPlayerLuaBindings.cpp
@@ -11,6 +11,8 @@
#include "StarStatistics.hpp"
#include "StarPlayerUniverseMap.hpp"
#include "StarJsonExtra.hpp"
+#include "StarUniverseClient.hpp"
+#include "StarTeamClient.hpp"
namespace Star {
@@ -27,7 +29,19 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
}
});
- callbacks.registerCallback("teamMembers", [player]() { return player->teamMembers(); });
+ callbacks.registerCallback("teamMembers", [player]() -> Maybe<JsonArray> {
+ if (auto client = player->universeClient()) {
+ return client->teamClient()->members().transformed([](TeamClient::Member& member) -> Json {
+ return JsonObject{
+ {"name", member.name},
+ {"uuid", member.uuid.hex()},
+ {"entity", member.entity},
+ {"healthPercentage", member.healthPercentage},
+ {"energyPercentage", member.energyPercentage}};
+ });
+ }
+ return {};
+ });
callbacks.registerCallback( "humanoidIdentity", [player]() { return player->humanoid()->identity().toJson(); });
callbacks.registerCallback("setHumanoidIdentity", [player](Json const& id) { player->setIdentity(HumanoidIdentity(id)); });