diff --git a/init.lua b/init.lua index dedf4d9..d11c718 100644 --- a/init.lua +++ b/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 diff --git a/src/callbacks.lua b/src/callbacks.lua index 490e570..f72bae4 100644 --- a/src/callbacks.lua +++ b/src/callbacks.lua @@ -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) diff --git a/src/detached_inv.lua b/src/detached_inv.lua index 108e76b..9fd750d 100644 --- a/src/detached_inv.lua +++ b/src/detached_inv.lua @@ -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 diff --git a/src/gui.lua b/src/gui.lua index d0b573e..a1d175c 100644 --- a/src/gui.lua +++ b/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("%s\n%s", 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("%s\n%s", + ES"Custom recipe", ESC(desc))) + end end local lbl = ES("Usage @1 of @2", data.unum, rn)