diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-10-21 16:55:59 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-21 16:55:59 +1100 |
commit | 250869e2155c1c7b0a5df106948e493ef054433e (patch) | |
tree | 5e5d5c60aaee1deeb12207365953f32412df9f3a /source/game/scripting/StarPlayerLuaBindings.cpp | |
parent | 5c669f4b3a772fee96c8e4e10ecc6d32984e890a (diff) | |
parent | 2796e8ed1035c12a6645c3130b1c43d4e4c68784 (diff) |
Merge pull request #131 from KrashV/main
player.teamMembers callback
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarPlayerLuaBindings.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index ea902ab..bf14c2c 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,6 +29,20 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { } }); + callbacks.registerCallback("teamMembers", [player]() -> Maybe<JsonArray> { + if (auto client = player->universeClient()) { + return client->teamClient()->members().transformed([](TeamClient::Member const& 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)); }); |