diff --git a/group.lua b/group.lua index d888ef0..594bed2 100644 --- a/group.lua +++ b/group.lua @@ -1,6 +1,7 @@ unified_inventory.registered_group_items = { mesecon_conductor_craftable = "mesecons:wire_00000000_off", + stone = "default:cobble", wool = "wool:white", } @@ -21,7 +22,7 @@ end -- Among equally-preferred items, we just pick the one with the -- lexicographically earliest name. -function compute_group_item(group_name) +local function compute_group_item(group_name) local candidate_items = {} for itemname, itemdef in pairs(minetest.registered_items) do if (itemdef.groups.not_in_creative_inventory or 0) == 0 and @@ -40,8 +41,10 @@ function compute_group_item(group_name) for _, item in ipairs(candidate_items) do local pref if item == unified_inventory.registered_group_items[group_name] then + pref = 4 + elseif item == "default:"..group_name then pref = 3 - elseif item:gsub("^[^:]+:", "") == group_name then + elseif item:gsub("^[^:]*:", "") == group_name then pref = 2 else pref = 1 diff --git a/register.lua b/register.lua index a471e2b..131cbe2 100644 --- a/register.lua +++ b/register.lua @@ -156,17 +156,17 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item) if name:sub(1, 6) == "group:" then local group_name = name:sub(7) local group_item = unified_inventory.get_group_item(group_name) - show_group = not group_item.sole + show_is_group = not group_item.sole displayitem = group_item.item or "unknown" selectitem = group_item.sole and displayitem or name end - -- Hackily shift the count to the bottom right - local shiftstr = "\n\n " + local label = string.format("\n\n%s%7d", show_is_group and "G" or " ", count):gsub(" 1$", " .") + if label == "\n\n ." then label = "" end return string.format("item_image_button[%u,%u;%u,%u;%s;%s;%s]", x, y, w, h, minetest.formspec_escape(displayitem), minetest.formspec_escape(buttonname_prefix..selectitem), - count ~= 1 and shiftstr..tostring(count) or "") + label) end unified_inventory.register_page("craftguide", {