mirror of
https://github.com/minetest-mods/i3.git
synced 2024-11-13 06:10:21 +01:00
Show colored itemstacks the right way
This commit is contained in:
parent
dd8657ab56
commit
00a258afea
3
init.lua
3
init.lua
|
@ -111,6 +111,7 @@ i3 = {
|
|||
i3.files.common()
|
||||
i3.files.api(http)
|
||||
i3.files.compress()
|
||||
i3.files.detached()
|
||||
i3.files.groups()
|
||||
i3.files.callbacks(http, storage)
|
||||
|
||||
|
@ -120,7 +121,7 @@ end
|
|||
|
||||
if i3.settings.debug_mode then
|
||||
lf("/tests/test_tabs.lua")()
|
||||
lf("/tests/test_operators.lua")()
|
||||
-- lf("/tests/test_operators.lua")()
|
||||
lf("/tests/test_compression.lua")()
|
||||
lf("/tests/test_custom_recipes.lua")()
|
||||
end
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
local http, storage = ...
|
||||
local init_bags = i3.files.bags()
|
||||
local fill_caches = i3.files.caches(http)
|
||||
local init_detached = i3.files.detached()
|
||||
local init_hud = i3.files.hud()
|
||||
local set_fs = i3.set_fs
|
||||
|
||||
|
@ -262,7 +261,6 @@ insert(core.registered_on_joinplayers, 1, function(player)
|
|||
|
||||
init_data(player, info)
|
||||
init_bags(player)
|
||||
init_detached(player)
|
||||
init_hud(player)
|
||||
end)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
local set_fs = i3.set_fs
|
||||
IMPORT("fmt", "play_sound", "create_inventory")
|
||||
IMPORT("play_sound", "create_inventory")
|
||||
|
||||
local trash = create_inventory("i3_trash", {
|
||||
allow_put = function(_, _, _, stack)
|
||||
|
@ -22,15 +22,3 @@ local trash = create_inventory("i3_trash", {
|
|||
})
|
||||
|
||||
trash:set_size("main", 1)
|
||||
|
||||
local function init_detached(player)
|
||||
local name = player:get_player_name()
|
||||
|
||||
local output_rcp = create_inventory(fmt("i3_output_rcp_%s", name), {}, name)
|
||||
output_rcp:set_size("main", 1)
|
||||
|
||||
local output_usg = create_inventory(fmt("i3_output_usg_%s", name), {}, name)
|
||||
output_usg:set_size("main", 1)
|
||||
end
|
||||
|
||||
return init_detached
|
||||
|
|
50
src/gui.lua
50
src/gui.lua
|
@ -790,7 +790,7 @@ local function get_inventory_fs(player, data, fs)
|
|||
show_settings(fs, data)
|
||||
end
|
||||
|
||||
local function get_tooltip(item, info, pos, lang_code)
|
||||
local function get_tooltip(item, info, lang_code)
|
||||
local tooltip
|
||||
|
||||
if info.groups then
|
||||
|
@ -863,11 +863,6 @@ local function get_tooltip(item, info, pos, lang_code)
|
|||
end
|
||||
end
|
||||
|
||||
if pos then
|
||||
local btn_size = i3.settings.item_btn_size
|
||||
return fmt("tooltip", pos.x, pos.y, btn_size, btn_size, ESC(tooltip))
|
||||
end
|
||||
|
||||
return fmt("tooltip[%s;%s]", item, ESC(tooltip))
|
||||
end
|
||||
|
||||
|
@ -939,28 +934,16 @@ local function get_output_fs(fs, data, rcp, is_recipe, is_usage, shapeless, righ
|
|||
local meta = item:get_meta()
|
||||
local name = item:get_name()
|
||||
local count = item:get_count()
|
||||
local wear = item:get_wear()
|
||||
local _name = fmt("_%s", name)
|
||||
local pos
|
||||
|
||||
if meta:get_string"color" ~= "" or meta:get_string"palette_index" ~= "" then
|
||||
local rcp_usg = is_recipe and "rcp" or "usg"
|
||||
local size = BTN_SIZE * 1.2
|
||||
slot(X, Y - 0.11, size, size)
|
||||
|
||||
fs("style_type[list;size=%f]", BTN_SIZE)
|
||||
fs"listcolors[#bababa50;#bababa99]"
|
||||
fs("list[detached:i3_output_%s_%s;main;%f,%f;1,1;]", rcp_usg, data.player_name, X + 0.11, Y)
|
||||
button(X + 0.11, Y, BTN_SIZE, BTN_SIZE, _name, "")
|
||||
count = get_true_count(data, count, is_recipe, is_usage)
|
||||
item:set_count(count)
|
||||
|
||||
local inv = get_detached_inv(fmt("output_%s", rcp_usg), data.player_name)
|
||||
inv:set_stack("main", 1, item)
|
||||
pos = {x = X + 0.11, y = Y}
|
||||
else
|
||||
local size = BTN_SIZE * 1.2
|
||||
slot(X, Y - 0.11, size, size)
|
||||
|
||||
count = get_true_count(data, count, is_recipe, is_usage)
|
||||
item_image_button(X + 0.11, Y, BTN_SIZE, BTN_SIZE, fmt("%s %u %u", name, count, wear), _name, "")
|
||||
end
|
||||
local itemstr = ESC(item:to_string())
|
||||
item_image_button(X + 0.11, Y, BTN_SIZE, BTN_SIZE, itemstr, _name, "")
|
||||
|
||||
local def = reg_items[name]
|
||||
local unknown = not def or nil
|
||||
|
@ -983,7 +966,7 @@ local function get_output_fs(fs, data, rcp, is_recipe, is_usage, shapeless, righ
|
|||
}
|
||||
|
||||
if next(infos) then
|
||||
fs(get_tooltip(_name, infos, pos, data.lang_code))
|
||||
fs(get_tooltip(_name, infos, data.lang_code))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1100,7 +1083,10 @@ local function get_grid_fs(fs, data, rcp, is_recipe, is_usage)
|
|||
label(X + 0.8, Y + 0.9, count)
|
||||
end
|
||||
else
|
||||
item_image_button(X, Y, btn_size, btn_size, fmt("%s %u", name, count), btn_name, label)
|
||||
item:set_name(name)
|
||||
item:set_count(count)
|
||||
local itemstr = ESC(item:to_string())
|
||||
item_image_button(X, Y, btn_size, btn_size, itemstr, btn_name, label)
|
||||
end
|
||||
|
||||
local def = reg_items[name]
|
||||
|
@ -1125,7 +1111,7 @@ local function get_grid_fs(fs, data, rcp, is_recipe, is_usage)
|
|||
}
|
||||
|
||||
if next(infos) then
|
||||
fs(get_tooltip(btn_name, infos, nil, data.lang_code))
|
||||
fs(get_tooltip(btn_name, infos, data.lang_code))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1140,9 +1126,13 @@ local function get_rcp_lbl(fs, data, panel, rn, is_recipe, is_usage)
|
|||
local rcp = is_recipe and panel.rcp[data.rnum] or panel.rcp[data.unum]
|
||||
|
||||
if rcp.custom then
|
||||
local desc = i3.craft_types[rcp.type].description
|
||||
hypertext(data.inv_width + 4.8, data.yoffset + 0.12, 3, 1, "custom_rcp",
|
||||
fmt("<right><i><global size=16>%s\n<global size=15>%s</i></right>", ES"Custom recipe", desc))
|
||||
local craft_type = i3.craft_types[rcp.type]
|
||||
if craft_type then
|
||||
local desc = craft_type.description
|
||||
hypertext(data.inv_width + 4.8, data.yoffset + 0.12, 3, 1, "custom_rcp",
|
||||
fmt("<right><i><global size=16>%s\n<global size=15>%s</i></right>",
|
||||
ES"Custom recipe", ESC(desc)))
|
||||
end
|
||||
end
|
||||
|
||||
local lbl = ES("Usage @1 of @2", data.unum, rn)
|
||||
|
|
Loading…
Reference in New Issue
Block a user