Improve default sorting

master
Wuzzy 2018-05-17 23:48:40 +02:00
parent f2706fb38b
commit b25a14188a
1 changed files with 16 additions and 1 deletions

View File

@ -56,8 +56,23 @@ local get_items = function(filter)
table.insert(it, {itemstring=itemstring, itemdef=itemdef})
end
end
-- Sort alphabetically by itemstring
-- Default sorting: Move description-less items and
-- items not_in_creative_inventory=1 to the end, then sort by itemstring.
local compare = function(t1, t2)
local t1d = minetest.registered_items[t1.itemstring].description
local t2d = minetest.registered_items[t2.itemstring].description
local t1g = minetest.get_item_group(t1.itemstring, "not_in_creative_inventory")
local t2g = minetest.get_item_group(t2.itemstring, "not_in_creative_inventory")
if (t1d == "" and t2d ~= "") then
return false
elseif (t1d ~= "" and t2d == "") then
return true
end
if (t1g == 1 and t2g == 0) then
return false
elseif (t1g == 0 and t2g == 1) then
return true
end
return t1.itemstring < t2.itemstring
end
table.sort(it, compare)