summaryrefslogtreecommitdiff
path: root/api.lua
diff options
context:
space:
mode:
Diffstat (limited to 'api.lua')
-rw-r--r--api.lua21
1 files changed, 16 insertions, 5 deletions
diff --git a/api.lua b/api.lua
index 03705e6..3a694b4 100644
--- a/api.lua
+++ b/api.lua
@@ -1,18 +1,29 @@
-- Create detached creative inventory after loading all mods
minetest.after(0.01, function()
+ local rev_aliases = {}
+ for source, target in pairs(minetest.registered_aliases) do
+ if not rev_aliases[target] then rev_aliases[target] = {} end
+ table.insert(rev_aliases[target], source)
+ end
unified_inventory.items_list = {}
for name, def in pairs(minetest.registered_items) do
if (not def.groups.not_in_creative_inventory or
def.groups.not_in_creative_inventory == 0) and
def.description and def.description ~= "" then
table.insert(unified_inventory.items_list, name)
- local recipes = minetest.get_all_craft_recipes(name)
- if recipes then
- unified_inventory.crafts_table[name] = recipes
- else
- unified_inventory.crafts_table[name] = {}
+ local all_names = rev_aliases[name] or {}
+ table.insert(all_names, name)
+ local all_recipes = {}
+ for _, name in ipairs(all_names) do
+ local recipes = minetest.get_all_craft_recipes(name)
+ if recipes then
+ for _, recipe in ipairs(recipes) do
+ table.insert(all_recipes, recipe)
+ end
+ end
end
+ unified_inventory.crafts_table[name] = all_recipes
end
end
table.sort(unified_inventory.items_list)