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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarRootLuaBindings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/scripting/StarRootLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarRootLuaBindings.cpp17
1 files changed, 14 insertions, 3 deletions
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<Json, String>("npcConfig", bind(RootCallbacks::npcConfig, root, _1));
callbacks.registerCallbackWithSignature<float, String>("projectileGravityMultiplier", bind(RootCallbacks::projectileGravityMultiplier, root, _1));
callbacks.registerCallbackWithSignature<Json, String>("projectileConfig", bind(RootCallbacks::projectileConfig, root, _1));
- callbacks.registerCallbackWithSignature<Json, String>("recipesForItem", bind(RootCallbacks::recipesForItem, root, _1));
+ callbacks.registerCallbackWithSignature<JsonArray, String>("recipesForItem", bind(RootCallbacks::recipesForItem, root, _1));
+ callbacks.registerCallbackWithSignature<JsonArray>("allRecipes", bind(RootCallbacks::allRecipes, root));
callbacks.registerCallbackWithSignature<String, String>("itemType", bind(RootCallbacks::itemType, root, _1));
callbacks.registerCallbackWithSignature<Json, String>("itemTags", bind(RootCallbacks::itemTags, root, _1));
callbacks.registerCallbackWithSignature<bool, String, String>("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;
}