From 826d5f4683c783ca342e02b941b832604989e632 Mon Sep 17 00:00:00 2001 From: fluxionary <25628292+fluxionary@users.noreply.github.com> Date: Wed, 26 Oct 2022 01:05:03 -0700 Subject: [PATCH] Add setting to hide disabled buttons (#217) --- init.lua | 2 ++ internal.lua | 11 +++++++---- settingtypes.txt | 5 ++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/init.lua b/init.lua index 1b962da..4a09b32 100644 --- a/init.lua +++ b/init.lua @@ -52,6 +52,8 @@ unified_inventory = { list_img_offset = 0.13, standard_background = "bgcolor[#0000]background9[0,0;1,1;ui_formbg_9_sliced.png;true;16]", + hide_disabled_buttons = minetest.settings:get_bool("unified_inventory_hide_disabled_buttons", false), + version = 4 } diff --git a/internal.lua b/internal.lua index 3fbf5b7..7231969 100644 --- a/internal.lua +++ b/internal.lua @@ -52,9 +52,11 @@ local function formspec_tab_buttons(player, formspec, style) local filtered_inv_buttons = {} - for i, def in pairs(ui.buttons) do + for _, def in pairs(ui.buttons) do if not (style.is_lite_mode and def.hide_lite) then - table.insert(filtered_inv_buttons, def) + if def.condition == nil or def.condition(player) or not ui.hide_disabled_buttons then + table.insert(filtered_inv_buttons, def) + end end end @@ -71,13 +73,14 @@ local function formspec_tab_buttons(player, formspec, style) local pos_y = math.floor((i - 1) / style.main_button_cols) * style.btn_spc if def.type == "image" then - if (def.condition == nil or def.condition(player) == true) then + if (def.condition == nil or def.condition(player)) then formspec[n] = string.format("image_button[%g,%g;%g,%g;%s;%s;]", pos_x, pos_y, style.btn_size, style.btn_size, F(def.image), F(def.name)) formspec[n+1] = "tooltip["..F(def.name)..";"..(def.tooltip or "").."]" n = n+2 + else formspec[n] = string.format("image[%g,%g;%g,%g;%s^[colorize:#808080:alpha]", pos_x, pos_y, style.btn_size, style.btn_size, @@ -358,7 +361,7 @@ function ui.apply_filter(player, filter, search_dir) return true end else - -- Name filter: fuzzy match item names and descriptions + -- Name filter: fuzzy match item names and descriptions local player_info = minetest.get_player_information(player_name) local lang = player_info and player_info.lang_code or "" diff --git a/settingtypes.txt b/settingtypes.txt index 27768ac..5ab7f84 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -10,5 +10,8 @@ unified_inventory_bags (Enable bags) bool true #and the give privilege. unified_inventory_trash (Enable trash) bool true +#If enabled, disabled buttons will be hidden instead of grayed out. +unified_inventory_hide_disabled_buttons (Hide disabled buttons) bool false -unified_inventory_automatic_categorization (Items automatically added to categories) bool true \ No newline at end of file + +unified_inventory_automatic_categorization (Items automatically added to categories) bool true