From 46deaa1f1a3f770e55553c2392567eba467d08af Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:16:23 +1100 Subject: add world.loungingEntities, world.loungableAnchorCount and anchor index arg to loungeableOccupied --- source/game/scripting/StarWorldLuaBindings.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'source/game/scripting/StarWorldLuaBindings.cpp') diff --git a/source/game/scripting/StarWorldLuaBindings.cpp b/source/game/scripting/StarWorldLuaBindings.cpp index 624660f..f5d9172 100644 --- a/source/game/scripting/StarWorldLuaBindings.cpp +++ b/source/game/scripting/StarWorldLuaBindings.cpp @@ -530,7 +530,9 @@ namespace LuaBindings { callbacks.registerCallbackWithSignature, EntityId, String, LuaVariadic>("callScriptedEntity", bind(WorldEntityCallbacks::callScriptedEntity, world, _1, _2, _3)); callbacks.registerCallbackWithSignature, String>("findUniqueEntity", bind(WorldEntityCallbacks::findUniqueEntity, world, _1)); callbacks.registerCallbackWithSignature, LuaEngine&, LuaValue, String, LuaVariadic>("sendEntityMessage", bind(WorldEntityCallbacks::sendEntityMessage, world, _1, _2, _3, _4)); - callbacks.registerCallbackWithSignature, EntityId>("loungeableOccupied", bind(WorldEntityCallbacks::loungeableOccupied, world, _1)); + callbacks.registerCallbackWithSignature>, EntityId, Maybe>("loungingEntities", bind(WorldEntityCallbacks::loungingEntities, world, _1, _2)); + callbacks.registerCallbackWithSignature, EntityId, Maybe>("loungeableOccupied", bind(WorldEntityCallbacks::loungeableOccupied, world, _1, _2)); + callbacks.registerCallbackWithSignature, EntityId>("loungeableAnchorCount", bind(WorldEntityCallbacks::loungeableAnchorCount, world, _1)); callbacks.registerCallbackWithSignature>("isMonster", bind(WorldEntityCallbacks::isMonster, world, _1, _2)); callbacks.registerCallbackWithSignature, EntityId>("monsterType", bind(WorldEntityCallbacks::monsterType, world, _1)); callbacks.registerCallbackWithSignature, EntityId>("npcType", bind(WorldEntityCallbacks::npcType, world, _1)); @@ -1770,10 +1772,23 @@ namespace LuaBindings { return world->sendEntityMessage(engine.luaTo(entityId), message, JsonArray::from(std::move(args))); } - Maybe WorldEntityCallbacks::loungeableOccupied(World* world, EntityId entityId) { + Maybe> WorldEntityCallbacks::loungingEntities(World* world, EntityId entityId, Maybe anchorIndex) { + if (auto entity = world->get(entityId)) + return entity->entitiesLoungingIn(anchorIndex.value()).values(); + return {}; + } + + Maybe WorldEntityCallbacks::loungeableOccupied(World* world, EntityId entityId, Maybe anchorIndex) { auto entity = world->get(entityId); - if (entity && entity->anchorCount() > 0) - return !entity->entitiesLoungingIn(0).empty(); + size_t anchor = anchorIndex.value(); + if (entity && entity->anchorCount() > anchor) + return !entity->entitiesLoungingIn(anchor).empty(); + return {}; + } + + Maybe WorldEntityCallbacks::loungeableAnchorCount(World* world, EntityId entityId) { + if (auto entity = world->get(entityId)) + return entity->anchorCount(); return {}; } -- cgit v1.2.3