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)