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/StarRootLuaBindings.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'source/game/scripting/StarRootLuaBindings.cpp') diff --git a/source/game/scripting/StarRootLuaBindings.cpp b/source/game/scripting/StarRootLuaBindings.cpp index a08be7f..50d18e8 100644 --- a/source/game/scripting/StarRootLuaBindings.cpp +++ b/source/game/scripting/StarRootLuaBindings.cpp @@ -44,7 +44,8 @@ LuaCallbacks LuaBindings::makeRootCallbacks() { callbacks.registerCallbackWithSignature("npcConfig", bind(RootCallbacks::npcConfig, root, _1)); callbacks.registerCallbackWithSignature("projectileGravityMultiplier", bind(RootCallbacks::projectileGravityMultiplier, root, _1)); callbacks.registerCallbackWithSignature("projectileConfig", bind(RootCallbacks::projectileConfig, root, _1)); - callbacks.registerCallbackWithSignature("recipesForItem", bind(RootCallbacks::recipesForItem, root, _1)); + callbacks.registerCallbackWithSignature("recipesForItem", bind(RootCallbacks::recipesForItem, root, _1)); + callbacks.registerCallbackWithSignature("allRecipes", bind(RootCallbacks::allRecipes, root)); callbacks.registerCallbackWithSignature("itemType", bind(RootCallbacks::itemType, root, _1)); callbacks.registerCallbackWithSignature("itemTags", bind(RootCallbacks::itemTags, root, _1)); callbacks.registerCallbackWithSignature("itemHasTag", bind(RootCallbacks::itemHasTag, root, _1, _2)); @@ -308,10 +309,20 @@ Json LuaBindings::RootCallbacks::projectileConfig(Root* root, String const& arg1 return projectileDatabase->projectileConfig(arg1); } -Json LuaBindings::RootCallbacks::recipesForItem(Root* root, String const& arg1) { +JsonArray LuaBindings::RootCallbacks::recipesForItem(Root* root, String const& arg1) { auto recipes = root->itemDatabase()->recipesForOutputItem(arg1); JsonArray result; - for (auto recipe : recipes) + result.reserve(recipes.size()); + for (auto& recipe : recipes) + result.append(recipe.toJson()); + return result; +} + +JsonArray LuaBindings::RootCallbacks::allRecipes(Root* root) { + auto& recipes = root->itemDatabase()->allRecipes(); + JsonArray result; + result.reserve(recipes.size()); + for (auto& recipe : recipes) result.append(recipe.toJson()); return result; } -- cgit v1.2.3