mirror of
https://github.com/minetest-mods/unified_inventory.git
synced 2025-07-05 01:40:28 +02:00
Allow for sorting of recipe lists by customizable sorting functions
This commit is contained in:
15
api.lua
15
api.lua
@ -133,7 +133,11 @@ minetest.after(0.01, function()
|
||||
end
|
||||
end
|
||||
end
|
||||
for _, recipes in pairs(ui.crafts_for.recipe) do
|
||||
for item_name, recipes in pairs(ui.crafts_for.recipe) do
|
||||
local craft_sorter = ui.craft_sorters[item_name] or ui.craft_sorters._default_
|
||||
if craft_sorter then
|
||||
table.sort(recipes, craft_sorter)
|
||||
end
|
||||
for _, recipe in ipairs(recipes) do
|
||||
local ingredient_items = {}
|
||||
for _, spec in pairs(recipe.items) do
|
||||
@ -309,6 +313,15 @@ function ui.register_button(name, def)
|
||||
table.insert(ui.buttons, def)
|
||||
end
|
||||
|
||||
ui.craft_sorters = {}
|
||||
function ui.register_craft_sorter(method, item_name)
|
||||
if type(method) ~= "function" then
|
||||
error(("Craft sorter method must be a function, %s given."):format(type(method)))
|
||||
end
|
||||
if not item_name then item_name = "_default_" end
|
||||
craft_sorters[item_name] = method
|
||||
end
|
||||
|
||||
function ui.is_creative(playername)
|
||||
return minetest.check_player_privs(playername, {creative=true})
|
||||
or minetest.settings:get_bool("creative_mode")
|
||||
|
Reference in New Issue
Block a user