Show colored itemstacks the right way

This commit is contained in:
Jean-Patrick Guerrero 2022-10-02 14:38:49 +02:00
parent dd8657ab56
commit 00a258afea
4 changed files with 23 additions and 46 deletions

View File

@ -111,6 +111,7 @@ i3 = {
i3.files.common() i3.files.common()
i3.files.api(http) i3.files.api(http)
i3.files.compress() i3.files.compress()
i3.files.detached()
i3.files.groups() i3.files.groups()
i3.files.callbacks(http, storage) i3.files.callbacks(http, storage)
@ -120,7 +121,7 @@ end
if i3.settings.debug_mode then if i3.settings.debug_mode then
lf("/tests/test_tabs.lua")() lf("/tests/test_tabs.lua")()
lf("/tests/test_operators.lua")() -- lf("/tests/test_operators.lua")()
lf("/tests/test_compression.lua")() lf("/tests/test_compression.lua")()
lf("/tests/test_custom_recipes.lua")() lf("/tests/test_custom_recipes.lua")()
end end

View File

@ -1,7 +1,6 @@
local http, storage = ... local http, storage = ...
local init_bags = i3.files.bags() local init_bags = i3.files.bags()
local fill_caches = i3.files.caches(http) local fill_caches = i3.files.caches(http)
local init_detached = i3.files.detached()
local init_hud = i3.files.hud() local init_hud = i3.files.hud()
local set_fs = i3.set_fs local set_fs = i3.set_fs
@ -262,7 +261,6 @@ insert(core.registered_on_joinplayers, 1, function(player)
init_data(player, info) init_data(player, info)
init_bags(player) init_bags(player)
init_detached(player)
init_hud(player) init_hud(player)
end) end)

View File

@ -1,5 +1,5 @@
local set_fs = i3.set_fs local set_fs = i3.set_fs
IMPORT("fmt", "play_sound", "create_inventory") IMPORT("play_sound", "create_inventory")
local trash = create_inventory("i3_trash", { local trash = create_inventory("i3_trash", {
allow_put = function(_, _, _, stack) allow_put = function(_, _, _, stack)
@ -22,15 +22,3 @@ local trash = create_inventory("i3_trash", {
}) })
trash:set_size("main", 1) 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

View File

@ -790,7 +790,7 @@ local function get_inventory_fs(player, data, fs)
show_settings(fs, data) show_settings(fs, data)
end end
local function get_tooltip(item, info, pos, lang_code) local function get_tooltip(item, info, lang_code)
local tooltip local tooltip
if info.groups then if info.groups then
@ -863,11 +863,6 @@ local function get_tooltip(item, info, pos, lang_code)
end end
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)) return fmt("tooltip[%s;%s]", item, ESC(tooltip))
end 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 meta = item:get_meta()
local name = item:get_name() local name = item:get_name()
local count = item:get_count() local count = item:get_count()
local wear = item:get_wear()
local _name = fmt("_%s", name) local _name = fmt("_%s", name)
local pos
if meta:get_string"color" ~= "" or meta:get_string"palette_index" ~= "" then local size = BTN_SIZE * 1.2
local rcp_usg = is_recipe and "rcp" or "usg" slot(X, Y - 0.11, size, size)
fs("style_type[list;size=%f]", BTN_SIZE) count = get_true_count(data, count, is_recipe, is_usage)
fs"listcolors[#bababa50;#bababa99]" item:set_count(count)
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, "")
local inv = get_detached_inv(fmt("output_%s", rcp_usg), data.player_name) local itemstr = ESC(item:to_string())
inv:set_stack("main", 1, item) item_image_button(X + 0.11, Y, BTN_SIZE, BTN_SIZE, itemstr, _name, "")
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 def = reg_items[name] local def = reg_items[name]
local unknown = not def or nil 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 if next(infos) then
fs(get_tooltip(_name, infos, pos, data.lang_code)) fs(get_tooltip(_name, infos, data.lang_code))
end end
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) label(X + 0.8, Y + 0.9, count)
end end
else 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 end
local def = reg_items[name] 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 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
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] local rcp = is_recipe and panel.rcp[data.rnum] or panel.rcp[data.unum]
if rcp.custom then if rcp.custom then
local desc = i3.craft_types[rcp.type].description local craft_type = i3.craft_types[rcp.type]
hypertext(data.inv_width + 4.8, data.yoffset + 0.12, 3, 1, "custom_rcp", if craft_type then
fmt("<right><i><global size=16>%s\n<global size=15>%s</i></right>", ES"Custom recipe", desc)) 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 end
local lbl = ES("Usage @1 of @2", data.unum, rn) local lbl = ES("Usage @1 of @2", data.unum, rn)