added optional confirmation dialog before clearing inventory
This commit is contained in:
parent
6e6383f082
commit
73c7aab397
|
@ -0,0 +1,66 @@
|
|||
local S = minetest.get_translator("unified_inventory")
|
||||
local ui = unified_inventory
|
||||
|
||||
local function clear_inventory(player)
|
||||
local player_name = player:get_player_name()
|
||||
if not ui.is_creative(player_name) then
|
||||
minetest.chat_send_player(player_name,
|
||||
S("This button has been disabled outside"
|
||||
.." of creative mode to prevent"
|
||||
.." accidental inventory trashing."
|
||||
.."\nUse the trash slot instead."))
|
||||
ui.set_inventory_formspec(player, ui.current_page[player_name])
|
||||
return
|
||||
end
|
||||
player:get_inventory():set_list("main", {})
|
||||
minetest.chat_send_player(player_name, S('Inventory cleared!'))
|
||||
minetest.sound_play("trash_all",
|
||||
{to_player=player_name, gain = 1.0})
|
||||
end
|
||||
|
||||
local clear_inv_button = {
|
||||
type = "image",
|
||||
image = "ui_trash_icon.png",
|
||||
tooltip = S("Clear inventory"),
|
||||
condition = function(player)
|
||||
return ui.is_creative(player:get_player_name())
|
||||
end,
|
||||
}
|
||||
|
||||
print("bool :", minetest.settings:get_bool("unified_inventory_clear_inventory_confirm"))
|
||||
|
||||
if minetest.settings:get_bool("unified_inventory_clear_inventory_confirm") then
|
||||
ui.register_page("clear_inv", {
|
||||
get_formspec = function(player, perplayer_formspec)
|
||||
return {
|
||||
formspec = perplayer_formspec.standard_inv_bg ..
|
||||
"label[1,1;" .. S("Clear inventory") .. " ?]" ..
|
||||
"image_button[4,2;1.5,1.5;ui_ok_icon.png;clear_inv_confirm;]" ..
|
||||
"image_button[6,2;1.5,1.5;ui_no.png;clear_inv_cancel;]"
|
||||
,
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname ~= "" then
|
||||
return
|
||||
end
|
||||
|
||||
for k, v in pairs(fields) do
|
||||
if k:match("clear_inv_confirm") then
|
||||
clear_inventory(player)
|
||||
ui.set_inventory_formspec(player, "craft")
|
||||
return
|
||||
end
|
||||
if k:match("clear_inv_cancel") then
|
||||
ui.set_inventory_formspec(player, "craft")
|
||||
return
|
||||
end
|
||||
end
|
||||
end)
|
||||
else
|
||||
clear_inv_button.action = clear_inventory
|
||||
end
|
||||
|
||||
ui.register_button("clear_inv", clear_inv_button)
|
1
init.lua
1
init.lua
|
@ -160,6 +160,7 @@ dofile(modpath.."/internal.lua")
|
|||
dofile(modpath.."/callbacks.lua")
|
||||
dofile(modpath.."/match_craft.lua")
|
||||
dofile(modpath.."/register.lua")
|
||||
dofile(modpath.."/clear_inventory.lua")
|
||||
|
||||
if minetest.settings:get_bool("unified_inventory_bags") ~= false then
|
||||
dofile(modpath.."/bags.lua")
|
||||
|
|
25
register.lua
25
register.lua
|
@ -138,31 +138,6 @@ ui.register_button("misc_set_night", {
|
|||
end,
|
||||
})
|
||||
|
||||
ui.register_button("clear_inv", {
|
||||
type = "image",
|
||||
image = "ui_trash_icon.png",
|
||||
tooltip = S("Clear inventory"),
|
||||
action = function(player)
|
||||
local player_name = player:get_player_name()
|
||||
if not ui.is_creative(player_name) then
|
||||
minetest.chat_send_player(player_name,
|
||||
S("This button has been disabled outside"
|
||||
.." of creative mode to prevent"
|
||||
.." accidental inventory trashing."
|
||||
.."\nUse the trash slot instead."))
|
||||
ui.set_inventory_formspec(player, ui.current_page[player_name])
|
||||
return
|
||||
end
|
||||
player:get_inventory():set_list("main", {})
|
||||
minetest.chat_send_player(player_name, S('Inventory cleared!'))
|
||||
minetest.sound_play("trash_all",
|
||||
{to_player=player_name, gain = 1.0})
|
||||
end,
|
||||
condition = function(player)
|
||||
return ui.is_creative(player:get_player_name())
|
||||
end,
|
||||
})
|
||||
|
||||
ui.register_page("craft", {
|
||||
get_formspec = function(player, perplayer_formspec)
|
||||
|
||||
|
|
|
@ -10,5 +10,7 @@ unified_inventory_bags (Enable bags) bool true
|
|||
#and the give privilege.
|
||||
unified_inventory_trash (Enable trash) bool true
|
||||
|
||||
#If enabled, a dialog will ask for confirmation before clearing inventory
|
||||
unified_inventory_clear_inventory_confirm (Confirmation dialog) bool false
|
||||
|
||||
unified_inventory_automatic_categorization (Items automatically added to categories) bool true
|
||||
unified_inventory_automatic_categorization (Items automatically added to categories) bool true
|
||||
|
|
Loading…
Reference in New Issue