From 5c96ede065644c2cc8762b34955e078b10f5fc8c Mon Sep 17 00:00:00 2001 From: Jean-Patrick Guerrero Date: Mon, 5 Jul 2021 23:38:43 +0200 Subject: [PATCH] Add confirmation dialog on inventory clearing --- etc/styles.lua | 3 +++ init.lua | 54 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/etc/styles.lua b/etc/styles.lua index da91599..fd3fa10 100644 --- a/etc/styles.lua +++ b/etc/styles.lua @@ -84,6 +84,9 @@ local styles = fmt([[ style[craft_rcp,craft_usg;noclip=true;font_size=16;sound=i3_craft; bgimg=i3_btn9.png;bgimg_hovered=i3_btn9_hovered.png; bgimg_pressed=i3_btn9_pressed.png;bgimg_middle=4,6] + style[confirm_trash_yes,confirm_trash_no;noclip=true;font_size=16; + bgimg=i3_btn9.png;bgimg_hovered=i3_btn9_hovered.png; + bgimg_pressed=i3_btn9_pressed.png;bgimg_middle=4,6] ]], PNG.slot, PNG.exit, PNG.exit_hover, diff --git a/init.lua b/init.lua index 8d6c265..fe74c68 100644 --- a/init.lua +++ b/init.lua @@ -2301,20 +2301,21 @@ local function init_data(player, info) end local function reset_data(data) - data.filter = "" - data.expand = "" - data.pagenum = 1 - data.rnum = 1 - data.unum = 1 - data.scrbar_rcp = 1 - data.scrbar_usg = 1 - data.query_item = nil - data.recipes = nil - data.usages = nil - data.export_rcp = nil - data.export_usg = nil - data.alt_items = nil - data.items = data.items_raw + data.filter = "" + data.expand = "" + data.pagenum = 1 + data.rnum = 1 + data.unum = 1 + data.scrbar_rcp = 1 + data.scrbar_usg = 1 + data.query_item = nil + data.recipes = nil + data.usages = nil + data.export_rcp = nil + data.export_usg = nil + data.alt_items = nil + data.confirm_trash = nil + data.items = data.items_raw if data.current_itab > 1 then sort_by_category(data) @@ -2531,6 +2532,18 @@ local function get_inventory_fs(player, data, fs) fs("image_button", i + 3.447 - (i * 0.4), 11.43, 0.35, 0.35, "", btn_name, "") fs(fmt("tooltip[%s;%s]", btn_name, tooltip)) end + + if data.confirm_trash then + fs("style_type[box;colors=#999,#999,#808080,#808080]") + + for _ = 1, 3 do + fs("box", 2.95, 10.75, 4.35, 0.5, "") + end + + fs("label", 3.1, 11, "Confirm trash?") + fs("image_button", 5.2, 10.75, 1, 0.5, "", "confirm_trash_yes", "Yes") + fs("image_button", 6.3, 10.75, 1, 0.5, "", "confirm_trash_no", "No") + end end i3.new_tab { @@ -2602,9 +2615,16 @@ i3.new_tab { end if fields.trash then - local inv = player:get_inventory() - inv:set_list("main", {}) - inv:set_list("craft", {}) + data.confirm_trash = true + + elseif fields.confirm_trash_yes or fields.confirm_trash_no then + if fields.confirm_trash_yes then + local inv = player:get_inventory() + inv:set_list("main", {}) + inv:set_list("craft", {}) + end + + data.confirm_trash = nil elseif fields.compress then compress_items(player)