From 5d1e85b24154dea8ccf0fc98e54a5c0cbf32453c Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:47:18 +1000 Subject: player.availableRecipes and root.allRecipes --- source/game/scripting/StarPlayerLuaBindings.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp') diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index d303c94..5f12ee3 100644 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -247,6 +247,17 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { callbacks.registerCallback("blueprintKnown", [player](Json const& item) { return player->blueprintKnown(ItemDescriptor(item)); }); + callbacks.registerCallback("availableRecipes", [player](Maybe const& filter) { + auto itemDatabase = Root::singleton().itemDatabase(); + auto inventory = player->inventory(); + auto recipes = itemDatabase->recipesFromBagContents(inventory->availableItems(), inventory->availableCurrencies(), filter.value()); + JsonArray result; + result.reserve(recipes.size()); + for (auto& recipe : recipes) + result.append(recipe.toJson()); + return result; + }); + callbacks.registerCallback("makeTechAvailable", [player](String const& tech) { player->techs()->makeAvailable(tech); }); -- cgit v1.2.3