Fix display of group ingredients
Commit 043f6081452365daaa033c58e0738527ccb64c3d broke a couple of things in the course of its refactoring. This patch restores the "G" flag that signals group ingredients, the preference for "default:" items as group representatives (where a representative isn't specifically registered), and the built-in registration of default:cobble as representative for group:stone (because it's the most commonly-used item in that group).
This commit is contained in:
parent
7f4f0fd225
commit
dbf98cb694
@ -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
|
||||
|
@ -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", {
|
||||
|
Loading…
Reference in New Issue
Block a user