From 13974157c26dede96cde6101f7e95ee2a367dbb1 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Tue, 13 Oct 2015 02:51:26 +0200 Subject: [PATCH] update unified_inventory, remove old textures --- mods/unified_inventory/api.lua | 10 +- mods/unified_inventory/bags.lua | 91 ++++- mods/unified_inventory/callbacks.lua | 93 +++--- mods/unified_inventory/init.lua | 21 +- mods/unified_inventory/internal.lua | 205 ++++++++---- mods/unified_inventory/locale/de.txt | 64 ++-- mods/unified_inventory/register.lua | 316 +++++++++++------- .../textures/ui_colorbutton0.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton1.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton10.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton11.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton12.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton13.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton14.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton15.png | Bin 3240 -> 0 bytes .../textures/ui_colorbutton2.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton3.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton4.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton5.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton6.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton7.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton8.png | Bin 105 -> 0 bytes .../textures/ui_colorbutton9.png | Bin 105 -> 0 bytes .../textures/ui_copper_chest_inventory.png | Bin 6495 -> 0 bytes .../textures/ui_crafting_form.png | Bin 6492 -> 4356 bytes .../textures/ui_furnace_inventory.png | Bin 4486 -> 0 bytes .../textures/ui_gold_chest_inventory.png | Bin 2892 -> 0 bytes .../textures/ui_hv_battery_box.png | Bin 15680 -> 0 bytes .../textures/ui_iron_chest_inventory.png | Bin 3448 -> 0 bytes .../textures/ui_lv_alloy_furnace.png | Bin 5226 -> 0 bytes .../textures/ui_lv_battery_box.png | Bin 15680 -> 0 bytes .../textures/ui_lv_electric_furnace.png | Bin 2718 -> 0 bytes .../textures/ui_lv_grinder.png | Bin 2718 -> 0 bytes .../textures/ui_mithril_chest_inventory.png | Bin 4771 -> 0 bytes .../textures/ui_mv_battery_box.png | Bin 15680 -> 0 bytes .../textures/ui_silver_chest_inventory.png | Bin 4872 -> 0 bytes .../textures/ui_single_slot.png | Bin 0 -> 988 bytes .../textures/ui_wooden_chest_inventory.png | Bin 4639 -> 0 bytes mods/unified_inventory/waypoints.lua | 6 + 39 files changed, 509 insertions(+), 297 deletions(-) delete mode 100755 mods/unified_inventory/textures/ui_colorbutton0.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton1.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton10.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton11.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton12.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton13.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton14.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton15.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton2.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton3.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton4.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton5.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton6.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton7.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton8.png delete mode 100755 mods/unified_inventory/textures/ui_colorbutton9.png delete mode 100755 mods/unified_inventory/textures/ui_copper_chest_inventory.png delete mode 100755 mods/unified_inventory/textures/ui_furnace_inventory.png delete mode 100755 mods/unified_inventory/textures/ui_gold_chest_inventory.png delete mode 100755 mods/unified_inventory/textures/ui_hv_battery_box.png delete mode 100755 mods/unified_inventory/textures/ui_iron_chest_inventory.png delete mode 100755 mods/unified_inventory/textures/ui_lv_alloy_furnace.png delete mode 100755 mods/unified_inventory/textures/ui_lv_battery_box.png delete mode 100755 mods/unified_inventory/textures/ui_lv_electric_furnace.png delete mode 100755 mods/unified_inventory/textures/ui_lv_grinder.png delete mode 100755 mods/unified_inventory/textures/ui_mithril_chest_inventory.png delete mode 100755 mods/unified_inventory/textures/ui_mv_battery_box.png delete mode 100755 mods/unified_inventory/textures/ui_silver_chest_inventory.png create mode 100755 mods/unified_inventory/textures/ui_single_slot.png delete mode 100755 mods/unified_inventory/textures/ui_wooden_chest_inventory.png diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua index 3eaf4a9c..80946982 100755 --- a/mods/unified_inventory/api.lua +++ b/mods/unified_inventory/api.lua @@ -130,7 +130,7 @@ end -- register_craft function unified_inventory.register_craft(options) - if options.output == nil then + if not options.output then return end local itemstack = ItemStack(options.output) @@ -140,7 +140,7 @@ function unified_inventory.register_craft(options) if options.type == "normal" and options.width == 0 then options = { type = "shapeless", items = options.items, output = options.output, width = 0 } end - if unified_inventory.crafts_for.recipe[itemstack:get_name()] == nil then + if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} end table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) @@ -233,9 +233,7 @@ end function unified_inventory.is_creative(playername) - if minetest.check_player_privs(playername, {creative=true}) or - minetest.setting_getbool("creative_mode") then - return true - end + return minetest.check_player_privs(playername, {creative=true}) + or minetest.setting_getbool("creative_mode") end diff --git a/mods/unified_inventory/bags.lua b/mods/unified_inventory/bags.lua index b92eb87d..827af1fd 100755 --- a/mods/unified_inventory/bags.lua +++ b/mods/unified_inventory/bags.lua @@ -27,18 +27,84 @@ unified_inventory.register_button("bags", { type = "image", image = "ui_bags_icon.png", tooltip = S("Bags"), + hide_lite=true, show_with = false, --Modif MFF (Crabman 30/06/2015) }) -for i = 1, 4 do - unified_inventory.register_page("bag"..i, { + + unified_inventory.register_page("bag1", { get_formspec = function(player) - local stack = player:get_inventory():get_stack("bag"..i, 1) + local stack = player:get_inventory():get_stack("bag1", 1) local image = stack:get_definition().inventory_image local formspec = "image[7,0;1,1;"..image.."]" - formspec = formspec.."label[0,0;Bag "..i.."]" + formspec = formspec.."label[0,0;Bag 1]" formspec = formspec.."listcolors[#00000000;#00000000]" - formspec = formspec.."list[current_player;bag"..i.."contents;0,1;8,3;]" + formspec = formspec.."list[current_player;bag1contents;0,1;8,3;]" + formspec = formspec.."listring[current_name;bag1contents]" + formspec = formspec.."listring[current_player;main]" + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + return {formspec=formspec} + end, + }) + unified_inventory.register_page("bag2", { + get_formspec = function(player) + local stack = player:get_inventory():get_stack("bag2", 1) + local image = stack:get_definition().inventory_image + local formspec = "image[7,0;1,1;"..image.."]" + formspec = formspec.."label[0,0;Bag 2]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;bag2contents;0,1;8,3;]" + formspec = formspec.."listring[current_name;bag2contents]" + formspec = formspec.."listring[current_player;main]" + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + return {formspec=formspec} + end, + }) + unified_inventory.register_page("bag3", { + get_formspec = function(player) + local stack = player:get_inventory():get_stack("bag3", 1) + local image = stack:get_definition().inventory_image + local formspec = "image[7,0;1,1;"..image.."]" + formspec = formspec.."label[0,0;Bag 3]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;bag3contents;0,1;8,3;]" + formspec = formspec.."listring[current_name;bag3contents]" + formspec = formspec.."listring[current_player;main]" + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + return {formspec=formspec} + end, + }) + unified_inventory.register_page("bag4", { + get_formspec = function(player) + local stack = player:get_inventory():get_stack("bag4", 1) + local image = stack:get_definition().inventory_image + local formspec = "image[7,0;1,1;"..image.."]" + formspec = formspec.."label[0,0;Bag 4]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;bag4contents;0,1;8,3;]" + formspec = formspec.."listring[current_name;bag4contents]" + formspec = formspec.."listring[current_player;main]" local slots = stack:get_definition().groups.bagslots if slots == 8 then formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" @@ -50,7 +116,6 @@ for i = 1, 4 do return {formspec=formspec} end, }) -end minetest.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "" then @@ -128,9 +193,9 @@ minetest.register_tool("unified_inventory:bag_large", { minetest.register_craft({ output = "unified_inventory:bag_small", recipe = { - {"", "group:stick", ""}, - {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, + {"", "farming:cotton", ""}, + {"group:wool", "group:wool", "group:wool"}, + {"group:wool", "group:wool", "group:wool"}, }, }) @@ -138,8 +203,8 @@ minetest.register_craft({ output = "unified_inventory:bag_medium", recipe = { {"", "", ""}, - {"group:stick", "unified_inventory:bag_small", "group:stick"}, - {"group:stick", "unified_inventory:bag_small", "group:stick"}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, }, }) @@ -147,8 +212,8 @@ minetest.register_craft({ output = "unified_inventory:bag_large", recipe = { {"", "", ""}, - {"group:stick", "unified_inventory:bag_medium", "group:stick"}, - {"group:stick", "unified_inventory:bag_medium", "group:stick"}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, }, }) diff --git a/mods/unified_inventory/callbacks.lua b/mods/unified_inventory/callbacks.lua index 3a41c32d..392e855b 100755 --- a/mods/unified_inventory/callbacks.lua +++ b/mods/unified_inventory/callbacks.lua @@ -1,7 +1,9 @@ local function default_refill(stack) stack:set_count(stack:get_stack_max()) local itemdef = minetest.registered_items[stack:get_name()] - if itemdef and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" and stack:get_wear() ~= 0 then + if itemdef + and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" + and stack:get_wear() ~= 0 then stack:set_wear(0) end return stack @@ -12,7 +14,7 @@ minetest.register_on_joinplayer(function(player) unified_inventory.players[player_name] = {} unified_inventory.current_index[player_name] = 1 unified_inventory.filtered_items_list[player_name] = - unified_inventory.items_list + unified_inventory.items_list unified_inventory.activefilter[player_name] = "" unified_inventory.active_search_direction[player_name] = "nochange" unified_inventory.apply_filter(player, "", "nochange") @@ -21,7 +23,7 @@ minetest.register_on_joinplayer(function(player) unified_inventory.current_item[player_name] = nil unified_inventory.current_craft_direction[player_name] = "recipe" unified_inventory.set_inventory_formspec(player, - unified_inventory.default) + unified_inventory.default) -- Refill slot local refill = minetest.create_detached_inventory(player_name.."refill", { @@ -46,13 +48,17 @@ minetest.register_on_joinplayer(function(player) end) minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_name = player:get_player_name() + + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + if formname ~= "" then return end - local player_name = player:get_player_name() -- always take new search text, even if not searching on it yet - if fields.searchbox ~= nil and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then + if fields.searchbox + and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then unified_inventory.current_searchbox[player_name] = fields.searchbox unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) end @@ -68,11 +74,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) -- Inventory page controls local start = math.floor( - unified_inventory.current_index[player_name] / unified_inventory.items_per_page + 1) + unified_inventory.current_index[player_name] / ui_peruser.items_per_page + 1) local start_i = start local pagemax = math.floor( (#unified_inventory.filtered_items_list[player_name] - 1) - / (unified_inventory.items_per_page) + 1) + / (ui_peruser.items_per_page) + 1) if fields.start_list then start_i = 1 @@ -98,15 +104,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if start_i > pagemax then start_i = pagemax end - if not (start_i == start) then + if start_i ~= start then minetest.sound_play("paperflip1", {to_player=player_name, gain = 1.0}) - unified_inventory.current_index[player_name] = (start_i - 1) * unified_inventory.items_per_page + 1 + unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1 unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) end - local clicked_item = nil + local clicked_item for name, value in pairs(fields) do if string.sub(name, 1, 12) == "item_button_" then local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$") @@ -116,7 +122,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) unified_inventory.apply_filter(player, clicked_item, new_dir) return end - if new_dir == "recipe" or new_dir == "usage" then + if new_dir == "recipe" + or new_dir == "usage" then unified_inventory.current_craft_direction[player_name] = new_dir end break @@ -126,22 +133,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) minetest.sound_play("click", {to_player=player_name, gain = 0.1}) local page = unified_inventory.current_page[player_name] - if not unified_inventory.is_creative(player_name) then + local player_creative = unified_inventory.is_creative(player_name) + if not player_creative then page = "craftguide" end if page == "craftguide" then unified_inventory.current_item[player_name] = clicked_item unified_inventory.alternate[player_name] = 1 - unified_inventory.set_inventory_formspec(player, - "craftguide") - else - if unified_inventory.is_creative(player_name) then - local inv = player:get_inventory() - local stack = ItemStack(clicked_item) - stack:set_count(stack:get_stack_max()) - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - end + unified_inventory.set_inventory_formspec(player, "craftguide") + elseif player_creative then + local inv = player:get_inventory() + local stack = ItemStack(clicked_item) + stack:set_count(stack:get_stack_max()) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) end end end @@ -156,27 +161,29 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end -- alternate button - if fields.alternate then - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - local item_name = unified_inventory.current_item[player_name] - if item_name then - local alternates = 0 - local alternate = unified_inventory.alternate[player_name] - local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] - if crafts ~= nil then - alternates = #crafts - end - if alternates > 1 then - alternate = alternate + 1 - if alternate > alternates then - alternate = 1 - end - unified_inventory.alternate[player_name] = alternate - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - end - end + if not fields.alternate then + return end + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local item_name = unified_inventory.current_item[player_name] + if not item_name then + return + end + local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] + if not crafts then + return + end + local alternates = #crafts + if alternates <= 1 then + return + end + local alternate = unified_inventory.alternate[player_name] + 1 + if alternate > alternates then + alternate = 1 + end + unified_inventory.alternate[player_name] = alternate + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) end) diff --git a/mods/unified_inventory/init.lua b/mods/unified_inventory/init.lua index 4abbcc85..b327ecd6 100755 --- a/mods/unified_inventory/init.lua +++ b/mods/unified_inventory/init.lua @@ -47,20 +47,6 @@ unified_inventory = { form_header_y = 0 } -if unified_inventory.lite_mode then - unified_inventory.pagecols = 4 - unified_inventory.pagerows = 6 - unified_inventory.page_y = 0.25 - unified_inventory.formspec_y = 0.47 - unified_inventory.main_button_x = 8.2 - unified_inventory.main_button_y = 6.5 - unified_inventory.craft_result_x = 2.8 - unified_inventory.craft_result_y = 3.4 - unified_inventory.form_header_y = -0.1 -end - -unified_inventory.items_per_page = unified_inventory.pagecols * unified_inventory.pagerows - -- Disable default creative inventory if rawget(_G, "creative_inventory") then function creative_inventory.set_creative_formspec(player, start_i, pagenum) @@ -73,14 +59,11 @@ dofile(modpath.."/api.lua") dofile(modpath.."/internal.lua") dofile(modpath.."/callbacks.lua") dofile(modpath.."/register.lua") - -if not unified_inventory.lite_mode then - dofile(modpath.."/bags.lua") -end +dofile(modpath.."/bags.lua") dofile(modpath.."/item_names.lua") -if minetest.get_modpath("datastorage") and not unified_inventory.lite_mode then +if minetest.get_modpath("datastorage") then dofile(modpath.."/waypoints.lua") end diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua index 75120ad6..2cf21e31 100755 --- a/mods/unified_inventory/internal.lua +++ b/mods/unified_inventory/internal.lua @@ -15,79 +15,131 @@ function unified_inventory.demangle_for_formspec(str) return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) end +function unified_inventory.get_per_player_formspec(player_name) + local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) + + local ui = {} + ui.pagecols = unified_inventory.pagecols + ui.pagerows = unified_inventory.pagerows + ui.page_y = unified_inventory.page_y + ui.formspec_y = unified_inventory.formspec_y + ui.main_button_x = unified_inventory.main_button_x + ui.main_button_y = unified_inventory.main_button_y + ui.craft_result_x = unified_inventory.craft_result_x + ui.craft_result_y = unified_inventory.craft_result_y + ui.form_header_y = unified_inventory.form_header_y + + if lite then + ui.pagecols = 4 + ui.pagerows = 6 + ui.page_y = 0.25 + ui.formspec_y = 0.47 + ui.main_button_x = 8.2 + ui.main_button_y = 6.5 + ui.craft_result_x = 2.8 + ui.craft_result_y = 3.4 + ui.form_header_y = -0.1 + end + + ui.items_per_page = ui.pagecols * ui.pagerows + return ui, lite +end + function unified_inventory.get_formspec(player, page) + if not player then return "" end + local player_name = player:get_player_name() + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + unified_inventory.current_page[player_name] = page local pagedef = unified_inventory.pages[page] - local formspec = "size[14,10]" - -- Background - formspec = formspec .. "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" + local formspec = { + "size[14,10]", + "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background + } + local n = 3 - if unified_inventory.lite_mode then - formspec = "size[11,7.7]" - formspec = formspec .. "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]" + if draw_lite_mode then + formspec[1] = "size[11,7.7]" + formspec[2] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]" end - local fsdata = nil + if unified_inventory.is_creative(player_name) + and page == "craft" then + formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;ui_single_slot.png]" + n = n+1 + end -- Current page - if unified_inventory.pages[page] then - fsdata = pagedef.get_formspec(player) - formspec = formspec .. fsdata.formspec - else + if not unified_inventory.pages[page] then return "" -- Invalid page name end - local privs = minetest.get_player_privs(player_name) --Modif MFF (Crabman 30/06/2015) DEBUT,12 buttons max by row and not show if player has not privs requiered + local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name) + local fsdata = pagedef.get_formspec(player, perplayer_formspec) + + formspec[n] = fsdata.formspec + n = n+1 + + local privs = minetest.get_player_privs(player_name) --Modif MFF (Crabman 13/10/2015) not show if player has not privs requiered local button_row = 0 local button_col = 0 - local i = 1 -- Main buttons - for _, def in pairs(unified_inventory.buttons) do - if (def.show_with == nil or def.show_with == false) or (privs[def.show_with] and privs[def.show_with] == true) then - if unified_inventory.lite_mode and i > 4 then - button_row = 1 - button_col = 1 - elseif not unified_inventory.lite_mode and i > 12 then - button_row = 1 - i = 1 - end - local tooltip = def.tooltip or "" - if def.type == "image" then - formspec = formspec.."image_button[" - ..( unified_inventory.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) - ..","..(unified_inventory.main_button_y + button_row * 0.7)..";0.8,0.8;" - ..minetest.formspec_escape(def.image)..";" - ..minetest.formspec_escape(def.name)..";]" - .."tooltip["..minetest.formspec_escape(def.name) - ..";"..tooltip.."]" - end - i = i + 1 + local filtered_inv_buttons = {} + + for i, def in pairs(unified_inventory.buttons) do + if not (draw_lite_mode and def.hide_lite) and (not def.show_with or (privs[def.show_with] and privs[def.show_with] == true)) then --Modif MFF (Crabman 13/10/2015) not show if player has not privs requiered + table.insert(filtered_inv_buttons, def) end - end --Modif MFF (Crabman 30/06/2015) FIN + end + + local i = 1 --Modif MFF (Crabman 13/10/2015) 12 buttons max by row + for i, def in pairs(filtered_inv_buttons) do --Modif MFF (Crabman 13/10/2015) + + if draw_lite_mode and i > 4 then + button_row = 1 + button_col = 1 + elseif not draw_lite_mode and i > 12 then --Modif MFF (Crabman 13/10/2015) + button_row = 1 + i = 1 + end + + if def.type == "image" then + formspec[n] = "image_button[" + formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) + formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" + formspec[n+3] = minetest.formspec_escape(def.image)..";" + formspec[n+4] = minetest.formspec_escape(def.name)..";]" + formspec[n+5] = "tooltip["..minetest.formspec_escape(def.name) + formspec[n+6] = ";"..(def.tooltip or "").."]" + n = n+7 + end + i = i + 1 --Modif MFF (Crabman 13/10/2015) + end if fsdata.draw_inventory ~= false then -- Player inventory - formspec = formspec.."listcolors[#00000000;#00000000]" - formspec = formspec .. "list[current_player;main;0,"..(unified_inventory.formspec_y + 3.5)..";8,4;]" + formspec[n] = "listcolors[#00000000;#00000000]" + formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]" + n = n+2 end if fsdata.draw_item_list == false then - return formspec + return table.concat(formspec, "") end -- Controls to flip items pages local start_x = 9.2 - if not unified_inventory.lite_mode then - formspec = formspec - .. "image_button[" .. (start_x + 0.6 * 0) + if not draw_lite_mode then + formspec[n] = + "image_button[" .. (start_x + 0.6 * 0) .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" .. "tooltip[start_list;" .. minetest.formspec_escape(S("First page")) .. "]" @@ -109,8 +161,8 @@ function unified_inventory.get_formspec(player, page) .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" .. "tooltip[end_list;" .. minetest.formspec_escape(S("Last page")) .. "]" else - formspec = formspec - .. "image_button[" .. (8.2 + 0.65 * 0) + formspec[n] = + "image_button[" .. (8.2 + 0.65 * 0) .. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]" .. "tooltip[start_list;" .. minetest.formspec_escape(S("First page")) .. "]" .. "image_button[" .. (8.2 + 0.65 * 1) @@ -123,70 +175,76 @@ function unified_inventory.get_formspec(player, page) .. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]" .. "tooltip[end_list;" .. minetest.formspec_escape(S("Last page")) .. "]" end + n = n+1 -- Search box - if not unified_inventory.lite_mode then - formspec = formspec .. "field[9.5,8.325;3,1;searchbox;;" + if not draw_lite_mode then + formspec[n] = "field[9.5,8.325;3,1;searchbox;;" .. minetest.formspec_escape(unified_inventory.current_searchbox[player_name]) .. "]" - formspec = formspec .. "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" + formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" .. "tooltip[searchbutton;" ..S("Search") .. "]" else - formspec = formspec .. "field[8.5,5.225;2.2,1;searchbox;;" + formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;" .. minetest.formspec_escape(unified_inventory.current_searchbox[player_name]) .. "]" - formspec = formspec .. "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" + formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" .. "tooltip[searchbutton;" ..S("Search") .. "]" end + n = n+2 local no_matches = "No matching items" - if unified_inventory.lite_mode then + if draw_lite_mode then no_matches = "No matches." end -- Items list if #unified_inventory.filtered_items_list[player_name] == 0 then - formspec = formspec.."label[8.2,"..unified_inventory.form_header_y..";" .. S(no_matches) .. "]" + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. S(no_matches) .. "]" else local dir = unified_inventory.active_search_direction[player_name] local list_index = unified_inventory.current_index[player_name] - local page = math.floor(list_index / (unified_inventory.items_per_page) + 1) + local page = math.floor(list_index / (ui_peruser.items_per_page) + 1) local pagemax = math.floor( (#unified_inventory.filtered_items_list[player_name] - 1) - / (unified_inventory.items_per_page) + 1) + / (ui_peruser.items_per_page) + 1) local item = {} - for y = 0, unified_inventory.pagerows - 1 do - for x = 0, unified_inventory.pagecols - 1 do + for y = 0, ui_peruser.pagerows - 1 do + for x = 0, ui_peruser.pagecols - 1 do local name = unified_inventory.filtered_items_list[player_name][list_index] if minetest.registered_items[name] then - formspec = formspec.."item_image_button[" - ..(8.2 + x * 0.7).."," - ..(unified_inventory.formspec_y + unified_inventory.page_y + y * 0.7)..";.81,.81;" - ..name..";item_button_"..dir.."_" - ..unified_inventory.mangle_for_formspec(name)..";]" + formspec[n] = "item_image_button[" + ..(8.2 + x * 0.7).."," + ..(ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7)..";.81,.81;" + ..name..";item_button_"..dir.."_" + ..unified_inventory.mangle_for_formspec(name)..";]" + n = n+1 list_index = list_index + 1 end end end - formspec = formspec.."label[8.2,"..unified_inventory.form_header_y..";"..S("Page") .. ": " + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..S("Page") .. ": " .. S("%s of %s"):format(page,pagemax).."]" end + n= n+1 + if unified_inventory.activefilter[player_name] ~= "" then - formspec = formspec.."label[8.2,"..(unified_inventory.form_header_y + 0.4)..";" .. S("Filter") .. ":]" - formspec = formspec.."label[9.1,"..(unified_inventory.form_header_y + 0.4)..";"..minetest.formspec_escape(unified_inventory.activefilter[player_name]).."]" + formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. S("Filter") .. ":]" + formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..minetest.formspec_escape(unified_inventory.activefilter[player_name]).."]" end - return formspec + return table.concat(formspec, "") end function unified_inventory.set_inventory_formspec(player, page) if player then - local formspec = unified_inventory.get_formspec(player, page) - player:set_inventory_formspec(formspec) + player:set_inventory_formspec(unified_inventory.get_formspec(player, page)) end end --apply filter to the inventory list (create filtered copy of full one) function unified_inventory.apply_filter(player, filter, search_dir) - if not player then return false end + if not player then + return false + end local player_name = player:get_player_name() local lfilter = string.lower(filter) local ffilter @@ -194,7 +252,8 @@ function unified_inventory.apply_filter(player, filter, search_dir) local groups = lfilter:sub(7):split(",") ffilter = function(name, def) for _, group in ipairs(groups) do - if not ((def.groups[group] or 0) > 0) then + if not def.groups[group] + or def.groups[group] <= 0 then return false end end @@ -209,11 +268,13 @@ function unified_inventory.apply_filter(player, filter, search_dir) end unified_inventory.filtered_items_list[player_name]={} for name, def in pairs(minetest.registered_items) do - if (def.groups.not_in_creative_inventory or 0) == 0 - and (def.description or "") ~= "" - and ffilter(name, def) - and (unified_inventory.is_creative(player_name) - or unified_inventory.crafts_for.recipe[def.name]) then + if (not def.groups.not_in_creative_inventory + or def.groups.not_in_creative_inventory == 0) + and def.description + and def.description ~= "" + and ffilter(name, def) + and (unified_inventory.is_creative(player_name) + or unified_inventory.crafts_for.recipe[def.name]) then table.insert(unified_inventory.filtered_items_list[player_name], name) end end @@ -223,7 +284,7 @@ function unified_inventory.apply_filter(player, filter, search_dir) unified_inventory.activefilter[player_name] = filter unified_inventory.active_search_direction[player_name] = search_dir unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) + unified_inventory.current_page[player_name]) end function unified_inventory.items_in_group(groups) diff --git a/mods/unified_inventory/locale/de.txt b/mods/unified_inventory/locale/de.txt index 9f12d8c4..d678b683 100755 --- a/mods/unified_inventory/locale/de.txt +++ b/mods/unified_inventory/locale/de.txt @@ -1,4 +1,4 @@ -# Translation by Xanthin +# Translation mostly by Xanthin ### bags.lua ### Bags = Rucksaecke @@ -11,23 +11,23 @@ Medium Bag = Rucksack (mittel) Large Bag = Rucksack (gross) ### inernal.lua ### -First page = -Back three pages = -Back one page = -Forward one page = -Forward three pages = -Last page = -No matching items = +First page = Erste Seite +Back three pages = Drei Seiten zurueckblaettern +Back one page = Eine Seiten zurueckblaettern +Forward one page = Eine Seiten vorblaettern +Forward three pages = Drei Seiten vorblaettern +Last page = Letzte Seite +No matching items = Keine passenden Gegenstände Page = Seite %s of %s = %s von %s Filter = Suche -Search = +Search = Suchen ### register.lua ### Can use the creative inventory = Kann das Kreativinventar nutzen Home position set to: %s = Ausgangsposition nach: %s gesetzt Time of day set to 6am = Tageszeit auf 6 Uhr morgens geaendert -You don't have the settime priviledge! = Du hast nicht das "settime" Privileg! +You don't have the settime privilege! = Du hast nicht das "settime" Privileg! Time of day set to 9pm = Tageszeit auf 9 Uhr abends geaendert This button has been disabled outside of creative mode to prevent accidental inventory trashing. Use the trash slot instead. = Diese Funktion ist ausserhalb des Kreativmodus deaktiviert um ein versehentliches Loeschen des ganzen Inventars zu verhindern.\nNutze stattdessen das Muellfeld. Inventory Cleared! = Inventar geleert! @@ -45,27 +45,27 @@ Copy to craft grid: = Kopiere ins Baufeld: All = Alles Recipe %s of %s = Rezept %s von %s Alternate = Alternative -Crafting Grid = +Crafting Grid = ### waypoints.lua ### -White = -Yellow = -Red = -Green = -Blue = -Waypoints = -Waypoint active = -Waypoint inactive = -World position = -Name = -HUD text color = -Edit waypoint name = -Rename waypoint = -Change color of waypoint display = -Set waypoint to current location = -Make waypoint visible = -Make waypoint invisible = -Disable display of waypoint coordinates = -Enable display of waypoint coordinates = -Finish editing = -Select Waypoint #%d = +White = Weiß +Yellow = Gelb +Red = Rot +Green = Gruen +Blue = Blau +Waypoints = Markierungen +Waypoint active = Markierung aktiv +Waypoint inactive = Markierung inaktiv +World position = Welt Position +Name = +HUD text color = +Edit waypoint name = Name der Markierung aendern +Rename waypoint = Markierung umbenennen +Change color of waypoint display = Farbe der Darstellung der Markierung aendern +Set waypoint to current location = Setze Markierung zur derzeitigen Position +Make waypoint visible = Markierung sichtbar machen +Make waypoint invisible = Markierung verstecken +Disable display of waypoint coordinates = +Enable display of waypoint coordinates = +Finish editing = +Select Waypoint #%d = diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua index 8aa32dec..068eb239 100755 --- a/mods/unified_inventory/register.lua +++ b/mods/unified_inventory/register.lua @@ -5,6 +5,12 @@ minetest.register_privilege("creative", { give_to_singleplayer = false, }) +minetest.register_privilege("ui_full", { + description = "Forces UI to display in Full mode when Lite mode is configured globally", + give_to_singleplayer = false, +}) + + local trash = minetest.create_detached_inventory("trash", { --allow_put = function(inv, listname, index, stack, player) -- if unified_inventory.is_creative(player:get_player_name()) then @@ -35,73 +41,78 @@ unified_inventory.register_button("craftguide", { show_with = false, --Modif MFF (Crabman 30/06/2015) }) -if not unified_inventory.lite_mode then - unified_inventory.register_button("home_gui_set", { - type = "image", - image = "ui_sethome_icon.png", - tooltip = S("Set home position"), - show_with = "interact", --Modif MFF (Crabman 30/06/2015) - action = function(player) +unified_inventory.register_button("home_gui_set", { + type = "image", + image = "ui_sethome_icon.png", + tooltip = S("Set home position"), + hide_lite=true, + show_with = "interact", --Modif MFF (Crabman 30/06/2015) + action = function(player) if home.sethome(player:get_player_name()) == true then --modif MFF minetest.sound_play("dingdong", {to_player=player:get_player_name(), gain = 1.0}) end end, - }) +}) - unified_inventory.register_button("home_gui_go", { - type = "image", - image = "ui_gohome_icon.png", - tooltip = S("Go home"), - show_with = "interact", --Modif MFF (Crabman 30/06/2015) - action = function(player) - if home.tohome(player:get_player_name()) == true then --modif MFF - minetest.sound_play("teleport", - {to_player=player:get_player_name(), gain = 1.0}) - end - end, - }) - unified_inventory.register_button("misc_set_day", { - type = "image", - image = "ui_sun_icon.png", - tooltip = S("Set time to day"), - show_with = "settime", --Modif MFF (Crabman 30/06/2015) - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {settime=true}) then - minetest.sound_play("birds", - {to_player=player_name, gain = 1.0}) - minetest.set_timeofday((6000 % 24000) / 24000) - minetest.chat_send_player(player_name, - S("Time of day set to 6am")) - else - minetest.chat_send_player(player_name, - S("You don't have the settime priviledge!")) - end - end, - }) - unified_inventory.register_button("misc_set_night", { - type = "image", - image = "ui_moon_icon.png", - tooltip = S("Set time to night"), - show_with = "settime", --Modif MFF (Crabman 30/06/2015) - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {settime=true}) then - minetest.sound_play("owl", - {to_player=player_name, gain = 1.0}) - minetest.set_timeofday((21000 % 24000) / 24000) - minetest.chat_send_player(player_name, - S("Time of day set to 9pm")) - else - minetest.chat_send_player(player_name, - S("You don't have the settime priviledge!")) - end - end, - }) -end + +unified_inventory.register_button("home_gui_go", { + type = "image", + image = "ui_gohome_icon.png", + tooltip = S("Go home"), + hide_lite=true, + show_with = "interact", --Modif MFF (Crabman 30/06/2015) + action = function(player) + if home.tohome(player:get_player_name()) == true then --modif MFF + minetest.sound_play("teleport", + {to_player=player:get_player_name(), gain = 1.0}) + end + end, +}) + +unified_inventory.register_button("misc_set_day", { + type = "image", + image = "ui_sun_icon.png", + tooltip = S("Set time to day"), + hide_lite=true, + show_with = "settime", --Modif MFF (Crabman 30/06/2015) + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("birds", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((6000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 6am")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + end + end, +}) + +unified_inventory.register_button("misc_set_night", { + type = "image", + image = "ui_moon_icon.png", + tooltip = S("Set time to night"), + hide_lite=true, + show_with = "settime", --Modif MFF (Crabman 30/06/2015) + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("owl", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((21000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 9pm")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + end + end, +}) unified_inventory.register_button("clear_inv", { type = "image", @@ -126,19 +137,25 @@ unified_inventory.register_button("clear_inv", { }) unified_inventory.register_page("craft", { - get_formspec = function(player, formspec) + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + local player_name = player:get_player_name() - local formspec = "background[0,"..unified_inventory.formspec_y..";8,3;ui_crafting_form.png]" - formspec = formspec.."background[0,"..(unified_inventory.formspec_y + 3.5)..";8,4;ui_main_inventory.png]" - formspec = formspec.."label[0,"..unified_inventory.form_header_y..";Crafting]" + local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]" + formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,"..formheadery..";Crafting]" formspec = formspec.."listcolors[#00000000;#00000000]" - formspec = formspec.."list[current_player;craftpreview;6,"..unified_inventory.formspec_y..";1,1;]" - formspec = formspec.."list[current_player;craft;2,"..unified_inventory.formspec_y..";3,3;]" - formspec = formspec.."label[7,"..(unified_inventory.formspec_y + 1.5)..";" .. S("Trash:") .. "]" - formspec = formspec.."list[detached:trash;main;7,"..(unified_inventory.formspec_y + 2)..";1,1;]" + formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]" + formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]" + formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. S("Trash:") .. "]" + formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]" + formspec = formspec.."listring[current_name;craft]" + formspec = formspec.."listring[current_player;main]" if unified_inventory.is_creative(player_name) then - formspec = formspec.."label[0,"..(unified_inventory.formspec_y + 1.5)..";" .. S("Refill:") .. "]" - formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."refill;main;0,"..(unified_inventory.formspec_y +2)..";1,1;]" + formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. S("Refill:") .. "]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]" end return {formspec=formspec} end, @@ -196,12 +213,18 @@ local other_dir = { } unified_inventory.register_page("craftguide", { - get_formspec = function(player) + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + local craftresultx = perplayer_formspec.craft_result_x + local craftresulty = perplayer_formspec.craft_result_y + local player_name = player:get_player_name() local player_privs = minetest.get_player_privs(player_name) local formspec = "" - formspec = formspec.."background[0,"..(unified_inventory.formspec_y + 3.5)..";8,4;ui_main_inventory.png]" - formspec = formspec.."label[0,"..unified_inventory.form_header_y..";" .. S("Crafting Guide") .. "]" + formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,"..formheadery..";" .. S("Crafting Guide") .. "]" formspec = formspec.."listcolors[#00000000;#00000000]" local item_name = unified_inventory.current_item[player_name] if not item_name then return {formspec=formspec} end @@ -218,25 +241,25 @@ unified_inventory.register_page("craftguide", { craft = crafts[alternate] end - formspec = formspec.."background[0.5,"..(unified_inventory.formspec_y + 0.2)..";8,3;ui_craftguide_form.png]" - formspec = formspec.."textarea["..unified_inventory.craft_result_x..","..unified_inventory.craft_result_y + formspec = formspec.."background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]" + formspec = formspec.."textarea["..craftresultx..","..craftresulty ..";10,1;;"..minetest.formspec_escape(role_text[dir]..": "..item_name)..";]" - formspec = formspec..stack_image_button(0, unified_inventory.formspec_y, 1.1, 1.1, "item_button_" + formspec = formspec..stack_image_button(0, formspecy, 1.1, 1.1, "item_button_" .. rdir .. "_", ItemStack(item_name)) if not craft then - formspec = formspec.."label[5.5,"..(unified_inventory.formspec_y + 2.35)..";" + formspec = formspec.."label[5.5,"..(formspecy + 2.35)..";" ..minetest.formspec_escape(no_recipe_text[dir]).."]" local no_pos = dir == "recipe" and 4.5 or 6.5 local item_pos = dir == "recipe" and 6.5 or 4.5 - formspec = formspec.."image["..no_pos..","..unified_inventory.formspec_y..";1.1,1.1;ui_no.png]" - formspec = formspec..stack_image_button(item_pos, unified_inventory.formspec_y, 1.1, 1.1, "item_button_" + formspec = formspec.."image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]" + formspec = formspec..stack_image_button(item_pos, formspecy, 1.1, 1.1, "item_button_" ..other_dir[dir].."_", ItemStack(item_name)) if player_privs.give == true then - formspec = formspec.."label[0,"..(unified_inventory.formspec_y + 2.10)..";" .. S("Give me:") .. "]" - .."button[0, "..(unified_inventory.formspec_y + 2.7)..";0.6,0.5;craftguide_giveme_1;1]" - .."button[0.6,"..(unified_inventory.formspec_y + 2.7)..";0.7,0.5;craftguide_giveme_10;10]" - .."button[1.3,"..(unified_inventory.formspec_y + 2.7)..";0.8,0.5;craftguide_giveme_99;99]" + formspec = formspec.."label[0,"..(formspecy + 2.10)..";" .. S("Give me:") .. "]" + .."button[0, "..(formspecy + 2.7)..";0.6,0.5;craftguide_giveme_1;1]" + .."button[0.6,"..(formspecy + 2.7)..";0.7,0.5;craftguide_giveme_10;10]" + .."button[1.3,"..(formspecy + 2.7)..";0.8,0.5;craftguide_giveme_99;99]" end return {formspec = formspec} end @@ -244,10 +267,10 @@ unified_inventory.register_page("craftguide", { local craft_type = unified_inventory.registered_craft_types[craft.type] or unified_inventory.craft_type_defaults(craft.type, {}) if craft_type.icon then - formspec = formspec..string.format(" image[%f,%f;%f,%f;%s]",5.7,(unified_inventory.formspec_y + 0.05),0.5,0.5,craft_type.icon) + formspec = formspec..string.format(" image[%f,%f;%f,%f;%s]",5.7,(formspecy + 0.05),0.5,0.5,craft_type.icon) end - formspec = formspec.."label[5.5,"..(unified_inventory.formspec_y + 1)..";" .. minetest.formspec_escape(craft_type.description).."]" - formspec = formspec..stack_image_button(6.5, unified_inventory.formspec_y, 1.1, 1.1, "item_button_usage_", ItemStack(craft.output)) + formspec = formspec.."label[5.5,"..(formspecy + 1)..";" .. minetest.formspec_escape(craft_type.description).."]" + formspec = formspec..stack_image_button(6.5, formspecy, 1.1, 1.1, "item_button_usage_", ItemStack(craft.output)) local display_size = craft_type.dynamic_display_size and craft_type.dynamic_display_size(craft) or { width = craft_type.width, height = craft_type.height } local craft_width = craft_type.get_shaped_craft_width and craft_type.get_shaped_craft_width(craft) or display_size.width @@ -262,36 +285,36 @@ unified_inventory.register_page("craftguide", { end if item then formspec = formspec..stack_image_button( - xoffset + x, unified_inventory.formspec_y - 1 + y, 1.1, 1.1, + xoffset + x, formspecy - 1 + y, 1.1, 1.1, "item_button_recipe_", ItemStack(item)) else -- Fake buttons just to make grid formspec = formspec.."image_button[" - ..tostring(xoffset + x)..","..tostring(unified_inventory.formspec_y - 1 + y) + ..tostring(xoffset + x)..","..tostring(formspecy - 1 + y) ..";1,1;ui_blank_image.png;;]" end end end if craft_type.uses_crafting_grid then - formspec = formspec.."label[0,"..(unified_inventory.formspec_y + 0.9)..";" .. S("To craft grid:") .. "]" - .."button[0, "..(unified_inventory.formspec_y + 1.5)..";0.6,0.5;craftguide_craft_1;1]" - .."button[0.6,"..(unified_inventory.formspec_y + 1.5)..";0.7,0.5;craftguide_craft_10;10]" - .."button[1.3,"..(unified_inventory.formspec_y + 1.5)..";0.8,0.5;craftguide_craft_max;" .. S("All") .. "]" + formspec = formspec.."label[0,"..(formspecy + 0.9)..";" .. S("To craft grid:") .. "]" + .."button[0, "..(formspecy + 1.5)..";0.6,0.5;craftguide_craft_1;1]" + .."button[0.6,"..(formspecy + 1.5)..";0.7,0.5;craftguide_craft_10;10]" + .."button[1.3,"..(formspecy + 1.5)..";0.8,0.5;craftguide_craft_max;" .. S("All") .. "]" end if player_privs.give then - formspec = formspec.."label[0,"..(unified_inventory.formspec_y + 2.1)..";" .. S("Give me:") .. "]" - .."button[0, "..(unified_inventory.formspec_y + 2.7)..";0.6,0.5;craftguide_giveme_1;1]" - .."button[0.6,"..(unified_inventory.formspec_y + 2.7)..";0.7,0.5;craftguide_giveme_10;10]" - .."button[1.3,"..(unified_inventory.formspec_y + 2.7)..";0.8,0.5;craftguide_giveme_99;99]" + formspec = formspec.."label[0,"..(formspecy + 2.1)..";" .. S("Give me:") .. "]" + .."button[0, "..(formspecy + 2.7)..";0.6,0.5;craftguide_giveme_1;1]" + .."button[0.6,"..(formspecy + 2.7)..";0.7,0.5;craftguide_giveme_10;10]" + .."button[1.3,"..(formspecy + 2.7)..";0.8,0.5;craftguide_giveme_99;99]" end if alternates and alternates > 1 then - formspec = formspec.."label[5.5,"..(unified_inventory.formspec_y + 1.6)..";"..recipe_text[dir].." " + formspec = formspec.."label[5.5,"..(formspecy + 1.6)..";"..recipe_text[dir].." " ..tostring(alternate).." of " ..tostring(alternates).."]" - .."button[5.5,"..(unified_inventory.formspec_y + 2)..";2,1;alternate;" .. S("Alternate") .. "]" + .."button[5.5,"..(formspecy + 2)..";2,1;alternate;" .. S("Alternate") .. "]" end return {formspec = formspec} end, @@ -318,6 +341,80 @@ local function craftguide_giveme(player, formname, fields) player_inv:add_item("main", {name = output, count = amount}) end +-- tells if an item can be moved and returns an index if so +local function item_fits(player_inv, craft_item, needed_item) + local need_group = string.sub(needed_item, 1, 6) == "group:" + if need_group then + need_group = string.sub(needed_item, 7) + end + if craft_item + and not craft_item:is_empty() then + local ciname = craft_item:get_name() + + -- abort if the item there isn't usable + if ciname ~= needed_item + and not need_group then + return + end + + -- abort if no item fits onto it + if craft_item:get_count() >= craft_item:get_definition().stack_max then + return + end + + -- use the item there if it's in the right group and a group item is needed + if need_group then + if minetest.get_item_group(ciname, need_group) == 0 then + return + end + needed_item = ciname + need_group = false + end + end + + if need_group then + -- search an item of the specific group + for i,item in pairs(player_inv:get_list("main")) do + if not item:is_empty() + and minetest.get_item_group(item:get_name(), need_group) > 0 then + return i + end + end + + -- no index found + return + end + + -- search an item with a the name needed_item + for i,item in pairs(player_inv:get_list("main")) do + if not item:is_empty() + and item:get_name() == needed_item then + return i + end + end + + -- no index found +end + +-- modifies the player inventory and returns the changed craft_item if possible +local function move_item(player_inv, craft_item, needed_item) + local stackid = item_fits(player_inv, craft_item, needed_item) + if not stackid then + return + end + local wanted_stack = player_inv:get_stack("main", stackid) + local taken_item = wanted_stack:take_item() + player_inv:set_stack("main", stackid, wanted_stack) + + if not craft_item + or craft_item:is_empty() then + return taken_item + end + + craft_item:add_item(taken_item) + return craft_item +end + local function craftguide_craft(player, formname, fields) local amount for k, v in pairs(fields) do @@ -350,11 +447,13 @@ local function craftguide_craft(player, formname, fields) width = 3 end + amount = tonumber(amount) or 99 + --[[ if amount == "max" then amount = 99 -- Arbitrary; need better way to do this. else amount = tonumber(amount) - end + end--]] for iter = 1, amount do local index = 1 @@ -364,17 +463,9 @@ local function craftguide_craft(player, formname, fields) if needed_item then local craft_index = ((y - 1) * 3) + x local craft_item = craft_list[craft_index] - if (not craft_item) or (craft_item:is_empty()) or (craft_item:get_name() == needed_item) then - local itemname = craft_item and craft_item:get_name() or needed_item - local needed_stack = ItemStack(needed_item) - if player_inv:contains_item("main", needed_stack) then - local count = (craft_item and craft_item:get_count() or 0) + 1 - if count <= needed_stack:get_definition().stack_max then - local stack = ItemStack({name=needed_item, count=count}) - craft_list[craft_index] = stack - player_inv:remove_item("main", needed_stack) - end - end + local newitem = move_item(player_inv, craft_item, needed_item) + if newitem then + craft_list[craft_index] = newitem end end index = index + 1 @@ -391,10 +482,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) for k, v in pairs(fields) do if k:match("craftguide_craft_") then craftguide_craft(player, formname, fields) - break - elseif k:match("craftguide_giveme_") then + return + end + if k:match("craftguide_giveme_") then craftguide_giveme(player, formname, fields) - break + return end end end) diff --git a/mods/unified_inventory/textures/ui_colorbutton0.png b/mods/unified_inventory/textures/ui_colorbutton0.png deleted file mode 100755 index 3d4889be3d09a93df3c81dce77069cf21a555143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJTYyi9E5p72K&J2VIyNB1SQ6wH y%;50sMjDVK=;`7ZQo)#ffTia|LItM)8$-fLhE-P|Vw?bKuHEqS3j3^P6qY! diff --git a/mods/unified_inventory/textures/ui_colorbutton12.png b/mods/unified_inventory/textures/ui_colorbutton12.png deleted file mode 100755 index d4d0be89022f9e746b4bed01a79b6799e9e709c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJTYyi9E5p724J_6CnjB_85yp}r zzhDN3XE)M-96?VP$B+ufX$fa%Tf289ZJ6T-G@yGywpibQ==@ diff --git a/mods/unified_inventory/textures/ui_colorbutton14.png b/mods/unified_inventory/textures/ui_colorbutton14.png deleted file mode 100755 index ff385e4587d96d61d17848bea53476424b013b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJTYyi9E5p72|NjUowjEgk6k#k0 z@(X5gcy=QV$Px5(aSW+oOg_NUb0VRFQ-F;j;UvSVs}FK#10@+eUHx3vIVCg!0I#1L AV*mgE diff --git a/mods/unified_inventory/textures/ui_colorbutton15.png b/mods/unified_inventory/textures/ui_colorbutton15.png deleted file mode 100755 index afdf0de41db3769dc7aefe01f2ae1be19f15e768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3240 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 diff --git a/mods/unified_inventory/textures/ui_colorbutton4.png b/mods/unified_inventory/textures/ui_colorbutton4.png deleted file mode 100755 index cb6ffeeeb64cac291db0185e7fc70fadcf9e8e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJTYyi9E5p72GJeWa*vwx8MHowh z{DK)Ap4~_Tas)kH978G?lMk@;oJgqP6kuaWILWZ;>Vw?bKuHEqS3j3^P6Vw?bKuHEqS3j3^P6do)yi+a8AqNq9sNl_!!)LMWM%9;ckkp)e$;(2#P7nNf16hE&peI4SO{CI=+jP%c53?5tRzE;geD8;l4l*J?fs+(fC?36!c>LxGmu>975P& zurTkL9fNAqT$PCm$~iguQcX+S>=m-VbjxYw5m|GEC@e*1Da2-`(=AG&IH8iO@NK6@ zqJ*9-<<>**LbdQv>$=JUXcBm4SPH z5Wl%;1>s%P-Nbl0@3y5W>=-*!emNyn2tnZ=JIbj+$-wSi`}V={Y(zb4+srv6bd}aR zNLRiBkBN75PF^EpkAVf+CLNQ@uFynwvumox;Sy(ET}j!6qnc|x6$s!W3PZ0La_wHw z789g)@7?FwXd6koCF$Kq@BtkkCLSOB_VN9^^ptBHI!q#S@_}z#8SvaGG~)m-;x)P^ z2g*U=Lazik8qcVmXZPJ=-Y#|r+xjR?!O!E^&t2NXT-I0KYvr2ecSBRg9V}*O50h$% zD2RNTn(?MF4e-TTf7~tun zeN;M$OAH}>7S6)1gSYD0`3mdH9`$VLK1xw;`y+hHjprS6DPI(7f zqQmj#^|?X<)(fLh1Gs=0F6vtiikGyh0)~b$F+YR5S8ag}qG>ST9*@jrU=~#|^vdaBzTKAvSWJ#?2iSLR8tS zOvQ1@DCIE!-z=5wnw(oafqzsGdJ!24eZJ06oT8NyOG2~j)X z(YV!Iw@*bkN=nJm-E(4WeY#%ngb80bYajZ1Q4+hkv|-pT9V)4@zX_|@rOHs*p7&FD*{LfV zmnQ<0{;G-2M2nW_*E77SCd;;$7k)1-A@0>&UnjM`vy`+?uO6dRvWm%nP7%MrYQB)X=EPJMVdpX~vMJqx8I zyBpXS=la)Mn%X~&GiYcn|CUg*6_xb3LJ?7}fCH-{?23UlUyb>cDoER7?hZ)r-!PvhrdilCv7WhaS3Oh*f2ky};$_R}csj=brlW{`ZqcHDP0m1mH6L=Do%v19Pz>cZ) z#D}D4Ummu0hO3695}b}>=f08rav}*p^Bfjz;(tO^&cc5Yfs;YuRTC%NiX^l~>-e_6 zPOwsWNK{nZdE44>blBG%CcaKQ(S>(SmH9YEDt>a$Vv!fl7j)bQuFTVJfd#;N+i+L` zXz)pT46i%AqEL&RGQ~9teh>d+5<}e3x$~RHw>8JQVno zJ$;w-Uhl_5M%R{O&QB#+hfDQZCe!2I5I87r`%RN18NM@Mm1-EU+tR;c!CRNmseY;tBYd=vkZy8V^T~itg|i{zSWmdU+Rrag?e5bnC4)(!s;N!^ZyFszumra!7NU( zT!{=_zq4@r*<0AphyFOF2fsRxMtc{V2w?I&DbE*)Uwhx823XZn=H31%HJ`Nn{%Y>i zO1>vE7>c$ND}dw~3`v%*$Yu$xUw*Rl0KKR-DA(~9KFEBYKN|)Q7W|fuVt-Os{ZyR$ zd7ZZM8f6Lx(&ty!nwL#;8R#o>J#SF6EFSqs<@YRCtMzpL2#+}8vJ@|^Tg-vzbK;}8 zmuB(6BZmU;h7|b?YMe!YFL#tRxT(?xD!F=80K8c+3>slK(w3kodXV?*Pm1V^f1vm* z%UaHO9n&aR&DA4$8saoV(4gS{;|1y*Ea$P%|4+u|lK(ECqkLH|2Xd(Laj!R9Hid$c z3olO2zqfB6S9q0)nJEX`RfOihjTXg%$uvMfNy#)xGd)d|I}59^NqLqTvT%p6$$}huyLT_a4|F_J zcZ|f`axD^68C%v8J9*16t<8OV$9Ah%^eq;fFPBjU1lmLCV(bnbjnHx%P>_t25xuEn zj(1l==S{^*jkh+lnwodW=eBP%mC>O%*tNK~A}o+oMKzah!ghhF(%#+3XPPF9K$6Bx z&kt667iKuc+6o4zX*;8Sk-|RSDIX+p&2x!yp^_foBhf>HXj}=8T|AgB4 z=3aF2C~5sL@dO5S2i^u3I*}`{;Gc{jmO`XnPPcd!ojgASg5@SV!Lq6ZjpVQkN;1_DQ zYoR;T*u}Dp>E_XjU=6KKs7V;7n@p}mePRs_+Fr$8_~VRT8?c4HfjE$gifndBCwbu7 zxJIW@$faF#%{A>ZM;4Xd!45aJ8LI3;(q}xhy6%zTb(yh?wFF?zxhrVP>ihL^d?|1j z+d7Yi>gC`J?aRD&TtRN9_Fv_W<-)TQNNKB(c<}z?u?XZeQB-u&zowy9V}VcvDCgj? zU`8>Lu8B%ZS1E%J2J>umH;0YpFcmkm?F;GTV(~2>bTt8tloyteE5isS|IhaOv?4ZAW7GDb$9$(|OR>sAcafIdSM-Bgr2d}-u=hwx-x23Y@rHHW5FcZ={M zpO-6pTG-*aFf+}lRdbsm+G%?{C>M5b*PR#CL6JP9hR1`DjZ{FOmZ7=ZUD)JsYCI{@ zpt@ZcsykAr;@yc8LR|+iJso(6n+8#)jt<}sFbM&-2jHWh-#7my5oB!#M7oO0N?lKEJ&?srDS zLv|iC#aM2XV9uAqBbPsJ1n~~#wZ6qZ?ZMX&8I&l_Onv;p|1%cYydCHn|NqDYVCk<1 zD_CP?>#|kUWBJxwwnU8!b%b(@iPim3Z4mCpiLpbPFq3aNdpUWqgyw3aiNfV>?t){u z>y4PN? zUS-^o5!iDw=YpFWzdOIuHx~B=ci5o`jF=Se~eefbAH zm~DfZpTU$e<3%~?J~udeN2fD;xyc}cVBpdcBf8#io^>`_*1B4FU zDodxJ&~(;NjL9ObXj_O%$3`ru9M+W{ma){6%S^@j)4M?1o1ET4`b-Xdu8tTm0O{k! zzYA>L`kAGFYk~K&x`TN%!u? zPY$OQiL9fd)dV6L%YN#ZHNqoY)h#$9?MMmy`6`A1gb*V+%njBTq!h zzZ!4oa4N@SfFA7pG#66jGY>h@6acvZO2u~(<=i3RjPYyr|?K^FuRH!gN@j!3OhK%zzXlu9Jv(u7eNs3zBoyM zx!EK)`Vbtr+}EJEq<>B7Q$N~Jeg9RRxS&erIb8!x{J7vp>9(z&uTd*R25JDK{BzV> zH1TA&d4y=<0}1ZoFUNUeldpka+9sc>UXy6nf#YLOn4@mi%;^prK9R7pdR0G~FuAMr zEoW{bzeZL2$NU3}&Gh=j*j>ZVFemCDF zQK%VVzQ|9cX^Y{iDiBK`eVtS9C`W1-FR&xM=)IKwpnSQlSao09&a8L3Jgm-mUKI*{Ej^-cr*(2ZiaAP~2aZMoVc*B)7EA~Qm z`S2wa_y}BJ^xq1NyU)#5H{7~=`O<=ikH0I>-1;}Z`8G{C7c%BP z*2Q4&>fk(egBe=5m@iel3Yn&}?y|&3f?^rv(;t&NJsvWOW*5_kKSL(DOhWYs)BqGD z`tDEC8G7|k^-;0cW+Z-@TAYPrM?pvFiXVYfQ{JYRlY1%{qfZ&1p-e%RG!yldP1&_{ zX9oocJk&JJvA|4!IZEs(6-%3eAiD#g72}C`_#X|})g24F8)AM&k9$qWy%PHNh8=aOi*#sF+M}0XjstI7 z7-8VM^MqAwFPj#|X_Zagk~4!gy#ISnj=IsPkGs-7#3d$=!vQeoZ#$kQ{cI39Dx(C8p(FPrgWP${vSL?qUP+S(bk$Yd~0GIvYEDjNRtfP&oYAZd|f!>GgOEh2wToQ)( z3EzwI?c36owB`Q@{#k-uR&6w#J$_D{pQI@n=N4Th8vceYuQz(A7I!=}@En|>bEFD* zF;X*X0kEKww^i}%o5phhWn*Nh;W3$V#lCO~Dsd@e(JsGXBDe-OeV8an)g?}`Z(zPmOX@w%qY7 zdV|oAc3+Pjto2-XgWP0$bOh(&ZbAi0?C>DRuo^eqI^*bydI)q~S4@0NFRL7n@mxFh zKE)U10snHS0>;;J=%iIrSQcg9fkOrGb)2#jc$qG)mlrt1oTxpLVqu8iaiz5R6h$Xs zqvJaPPGWh)lf7V$+Tq&IJ^gRQ4wd4rT;Y4tDW2$hMF2bp^|-MGc#4%?!YJbTV(bD- zG|u;Q;2+FEvlUm`m73i$p72BzQm)M$vj!=@#Ay-8P(_(-JyK!XaoW@0-0v7Q{qg#x z;EuBOFvc&Hv;M=}4E9{qeMQMS-+`3uhiN)oHLNl!0fk%sltUAo@mOidPGhgl19eb< zJ;(qYYv@Y?I-*>?KZ cu7WrN)k8;|OqiCOFChq{^Jebh6LKkr93i>irbrwkq2xMIl&?F@ zZDw`cTkOLnTRm>x?KkC2!TM!NR#8XVZ*aDn?z|we&?sLDtZGwq6{b_ znCL zD0%Q{AQQzSyzy)eujQ%U+>Xnd5!R@fI}Gk1ky8X{$N=7ZcBgi+Z_Su3 zJ6}~f7oz_@RX=7XD<1N4Iz!rhWIv&Se4`J_Imo>us*PBcgjh1 zX;IerRePHQ8LoN^Oce8Vaf9vA8T5s}`M?>JHu#TWUP&#LH8nL26rM=XB&+9(hEO#% z2+$I&+|7Mf)SIs^i{EOy1Wn8BYr3!M)VRPf^G#R}V5G_{!C-YmaXbvE0;uZk?Uiw{ zw?92kyah$CYLscUcH&J79WqNfE-7k;jM4nbu2fP0ZdYsrQqV*8CL~#1UJbKYxR&lW_9})5rVG4mf5P?9%w?M9gAwMky zfh0j7$HX8I#jOy?AB)$sIqORl693m7s_Q!xZqTZK*ixN}DXfULF`?h}oih`yHiOJC zTtC9o4&uU$h2yp~xC@y=+RahLgRGv{uhS#P<0UIKZW1ACVeG z+k#h-=ACm=LP7!!`ZwY+Z8p|ITbJ@TJOxW)na{z^QJ=7`cfD}oQ}+Tm>O*&$!s1LF<sLI>c^K&F&nKnp=bkH3##TKe{CL%w;P_VkDAgbNW+j|w(PO2GpB`~sVFNc zb)T~_+@H~d_T<#(h$-Q?#U zFgWk2HV9tfr14{$0#Op5UB#Yl7#ql!Xb&Z=(H5q1{a?&uIQqUhp1c4?UZT0ZvokNj zmBpk!Zi}2Ja&qu12&(42g9TA%jW)OxY~b9-vZ~fSSyrHX#DehJg1amC#rfEoiPuoj zzsm-6V}t8R)%;OT$id0!u4>fy4iF-gC)2PjQ!riN)6JQhRvus&abXj`>;+a2J&ZLQ zN8H`ARxV;^XZL7q9&x%~a<`Zuvy#;WN!2OUbs5ZY`8R$I3|qGD$*qLvf+!UM8_yN5 z8~%N^e<_8TRuS7^8>efb2W1a#<4*R$^rs5s?O`o&BpkWY)fbDmE62ONT0K(jiK(zVe=i4i0E<$!o*}rH!PI@7EDC3 z#Ki823AYS*PeD0862p1nc$gm9v*fgBaKA{gJ#xePjQ9l?{j5!nfyJEI9cJK{Q_^%f zIjsjRk4&E_oxCL{v|Y|T9X>(44*-vVL!h-@e&73NH@+k3hAq6iT*k;i%&phB^CzD& zXK;GKK!L{)j9jbqqV{fy_oGS{JF>{HrKZy|-hp6N2Ask%Ui&q8U@$JAljSVNJhtfb z)WsuVUWC~@zq_ep;%{YUX7WQgbF_jz?yUtSrTBqL)te>Wo)L2PKKse)rNF6XT4j)) zOh6w}AZh!~6miu55*-#OER99dwUD%m&TmW5l*EGb1hNR;Du zp`tBNs&=Sg=E8Ve8|_N!*Q+ZhL~&~+(`<^p^-lLQQ1~qnt;qq-$PRSN31-yjoT? zfsIz@76;CC-B)pr@OjMGB?$AeWz(yR?~%mlwH0hz_YqSGtlgF`Kz@?1~oA>w@#3&3zAUe+WTlV9x$2WA3ab@syj$@w~ucW>C6a z8JlQ8Svz0pG_3uTH$p!C`j24fA$n;gV{)~j}R3&JuMW2P6@tUlNl4{euHphte9+rWJC0xuYSNw>EO(6o+@ zjswVago6)feGZSeYvH6bnm~&o5FuaKZ4)R>iGipwP3TYD$8|nr#V3rW*#2 z>fGEXCxlElY2lnj-LpmQ564+Nre;g)Tz#j#ZKtfXFFOhp7_h`wB_!Ho>-=dihn22c zC2XxyvG<-*mLmvnXe=nDaxd9-NGSk^Kx+amlgkZf2I*1V=_J*piQKs7@A7BsPk`nB zT}@4{VdK-M%MFCkdHx%zC7z~L1wMqA0){yoqfk9?D$@geiXehBXg-mb0sYn91T(;5 z)1%*nfUw0}H;g^X=*z#bU2c6e60ty!bWgU7@nj!)-l-i6K9S=0H3M2c{#zxN3^rc9 zdT2H_)>Hq*Ox`|_zs~hQ@iGJFf*dlH=cDxuT@0}P!qjsxu#+i~WAPzHfPd+92LPzZ z7)6CO=FX;pg$OaNo?84sb}=!!SHe7oDmdSN64hpnTcg~8Bh9Ir0ev*>&e6+w$H7!- z-Nm_KANo{Yo0}edV4n zWshFqR5HCKyiO|RB&BqE=c2(zGY2zOrBBsNN$#3leIB>13fmoT{dj4mzwG?^P=bu$ zrvk9vJpb&E?Z50|f-t^aI(?Yt$05`F215umbOh=}_7yySdyeG+^*t$Q9q9oOIXKG$ zq@X_D=hwv+{!bJ7URdJ1c>YHZ9;&`uB&5|gWA%ed%ZXM}U+hw~sT z?FsJvID$q0@}X=wp@2T`$5bQ;cFv-~ylc}nkCC{juVx$OVtIy`1a2m0%nFtD{f-kTM*^j~MS#q2l0%S<=Nx-P*`#=pW)7JP&KtM$6|;R?Hbe{$qgrRV*{I510f&?Jb+Y|on7_%P5j7A-+rW9PQ|c2P%fYPLPv(s*3Wl052j4J1 zs-&W#g-l=XaU?K8t19rIs4<}Irv!qkpoKFpZmKr)Wd!sbDyBvSuY5~ViQ@HaVCZNpPNq0MC|qmF|A)__2erq(8v I#usD%3NS>BX#fBK literal 6492 zcmb`McT`hboBwx0?_CInCQ_tG?+5`wdJA2pNf#6dND-6(Ql$yfq$-4>(yIazx^xs3 zxQetOAYG)FOt^Qw_xG;#o0+?2*8Gv=Wbd=jdCpTl&vz%W#)eunlMTTUWi!w zn|VbTw>Hi&#aEAH=f63-eKw(a_MS%eR8}L-cURzEkxRkO217)ETJr~|GCS5J$*e<}6q|5dA zRp!XFTeE`E*gCu1{o`1eWx8K^hKOD#FXtrpa?Q*ib;70rBW(N>clX464h}819?9m^ zO3Tf5f9T5}TDd;H#!|W8<>(ODEugZcYq9sT;*&=iYdTFpb7<_qINs)0-9iqg>}tyS z#lHJnvAwrW?UM33`j>1!*YnG*aP9=`9SQ?@aUZXXoy~_kcMmFA!|ZDKHlx33tuTGE z8@F4aU!Z+KW(QdYLBGwmAn^+K&?GLVgR?TC- zHrl>YS#!c-UtCTy;~!dkKhBk{_bN65{YG4I%Xhr2eBxNkYv!M(a5xs-l|v!W|Tlc4tvY+!!5PC zkNp&hCI*)ro*e|JX!?;AAb~s#=!x1+84i2L*-iMA%K`LGH@J=R|g-wAcXae z4`{UGzgU9OI*83Q;m#yzC<0OdjKN=q5WdcgyoBUUoP6S?1Zhw#2C!KxBMHWkp!Fc) zZ{;7(l9qV3}G{{q|1jd)Z&4Y9HwXf53emO-!5g6dj17vk#TX-B7nv;ai z%#McI&xr~6?_C@3T95tcFtRqIxPDV;09}p2t9PX09=aKe~7k)AK_A7tS0u ziTU%&`#qL3E2tpGLTc6mm3<%Kgf-_!BY|LA6|;8PY6uci@R8Jy1E|-S z8uo|w=l|)!y$7VmJPE&qpClZfLtto@nn>A>bRr*#Ce@suhHBuFkM(iUhdc#@n`22c zPx>U>8{`w;J4}il6`5T?Ayl4vOdZOc&1!?!$GB;nz`362U%m%c4@L9)O(^uzT7)zB zq|_j1-v4bfW3O(6U4HaSt^J`oK^^>DSH6_OIMw~fGh-DP$ZNht9;#x2v5 zAg<4S^KfURPns2-xppa|70I(8Q-76EK6wA!{i20jd3g(g;!R5T*WD2#9h)iby60+R zq@$FWL738FXwyyToXmBgaw(-1Df}5}J`vJ*xN@jvN?BR;NakF?izI4`>PMPI62+Cv zo?jTazgppv4P-4jD9|(!KQ0@vChd1S;>@{CCA)=#7@sJ*r}Vr^VEW!>N+{5yagom4 z38uzlRF~OzY0pf(7|8~u9Ruvu880Dk7_OD4nubQ#w() z!#ZCV8a~-kTM$;eeZ~9D19D+-czZh{sHDM`R_D#?Q{72N2eZD13Kz>i@^jd%W&H72 z?E8v8p3x?h1ifvxix_R3mm|B(vHW`F^@eAaNTR>&JMo!Kbks}pbCs5u_zOn#R=nR}2z|A4f(yIYmnk!Eg| z>-k`{IepUB^kp&47HUNOS>=?rXJyk zed$;(6j!;CacCM9WM*(1pvVj^-@FKmGJ4dsHDYFA@vaaPZ}+NMv6ier=Qk{hhi9ct_n=^x;kW#J5eI?iz?*)=X(o+Uai8k?6oQ|?Eob?Yo ztP9F|1j@fz3Z2n|pewhSeYdJ6KMK8f5cP$PsL~YB;`6FS`0O3Hn5$r_UXr;IArAmd zd63zHeW`0at0Uk|q3QrbOS`|&gj!^npnx{d$}QT%pc?X;PGeFA-Anebq1aiFsew*@ z&R)u`PeBsGdyVB(rqV?FO|=Snby|4lgH6%&+97WNmv6TfANh4WJs+<-?2{t!g7yd^ z3)@NZMpMBFohWNzBq#qXXsiv2(>0qzlh5MN6M3eSS@SL^+=HlT=;vlIURX8iAk_CJ_4Btu|MWecG81T|X$ zs)#`70BL7~*S6#EmVUgiaU6~7DAq{f<(ct$MO|(zW}_WOWw8)+Mm%RPgM-}Sfl0hn z*lCJP)X@x3eUVGim`7gsOq}H@Q?+u(>I}W=0wsQEvy=!=Iw{BBcN^7^~)RV*l zXs01KSXmgkLw_0WVq5WJQwbp6x@QoRMg8&(c4N7VbzY+&?NPk5v6?8CPoxp-L%>RP z8tF6n4z=$MBDdXfR~~8#beO+8zb#V7I-$dq0I!jb;Dyg?9n;y6=c5`4@pgp{JBkg# zG3o47uL=^Gjvq~rC2Z<3I-1RLhrnNC-KYKaVBomTh{*K-mO+2<#|?Tm_3Gz_AsI$Z z;ob?0M~x5T>Q{@OSX_6rg37@E4glNKWLTOdf9rk@OARw7PJwyrwXj)rjwX zq0Njrvza!>3nZULZ<)~CtPFSA-Rikx`{@2}@=B8)hJnL^NQ*?@I8uMf>?6|T_SDxd ztXiULT}(MRaW4r?FUqCum#Ol?v^2>q^^kAtmB`7L2eH0RK5%w!?yng2aHK_ZXzAfA zI3^krn0{%{p1(HB*<{d(y-%46J1=op>&>ayd{7oF{mq`!rli=et^O~ullvun!>#H3 zkS(_FP_L(`NnsYGt*MgPN$i%+J~1-W-JNA{hVNZ(V{qGcTtz7Hj0C^L&@bv@$-LlT zRri<*2XHKGnt8W?Dfl~i($d%1!oV!EFY|op=^Ao+tkF4-pj^zOLfZR0n-`?44Ea@v zU`|!f_(ZP8{GR7*@;!|n;N!L}q?t**FezM*6g7_=3V0QYHy4k!el2c6B5XZ~k~}I8 zUxDfWkg=F=_i`YG)NIW=UlFz%%%+zi3e3r{aw=e|-Ae6Nv~|7I{lI{=2Et`~b(S|f zgmRMe-bA65Zn{LMn2IbCoBps>j`~@%w2kr{Ytj?TcKtr)N}P_y&mtZ6N?F4|yy4D< z(MUBs>4VUFOo7+I^lzD&+l3Ei1d^Z)nmc$}s@0{gj3B1A_Sn6YtC`$Umwr#;N#hOHlv*v%G4)NrL^G0M?J2cVN9IbRQf0tI?Y9zu+ zOH#YiQvn4#Yg1h7b-^1L?O%LGDA9NWB==XR40yUJ%J7fNjhNG0Rfl_(uxkNfL=dcU z=c&r~I0`hg1>1Urr#i9M6r_m*R2{UpnBEYJF1qQji&?D}f9cc)PqA=MO|00}TkB@s zxYr!|Tj)%vdqTm}EA+qD_J_jsv=mnqSCr0+JTA;N$n8}cv2}0zn%%A1 zP}mt&h#=z8&x)Q!CyA5_SJKHnV(<8(>9}Nt8{BPJX5C1AWFa~N=(}1lkd@0EEA8-0FZ#39cQ{>UQ(2EFkiYOWg_ZX|tpSt3hc~PDLG$c)Ho>HP2 zZ!ETPfx&+i5xHcbxp(7oC6w~V5%@J7Xc3m}&$qV~iOpF2hz5S{64S&!T ze0l`zf5l8%TKXMP=TpqHv^nX`(7j3eA|Ou%{F9~$%9;#uyol!qxW9Ir)cNG8e4Kq5 zw=SjMspN!zV+C1JkSYZsu*%u?^`wm)B+ZhFvHREk+sO;gNFmIVD_8I4?oUS15%(28y)ATT<43UEA3w4~$ysQgd^P5Fzay}JGE1cP zYeMIy8V!+kpNYh`m!kz(;tO?&vcLQ>jq^z)_ITa9=>|# z{*@`ich=E{S|XALahXqJLI>kq9o-s|e{FbFjcoC`9r47KhmA*}wj`=N5kpUrcYRn^ z3#0hI&q6usw93NssO>p4iOcLWB4K7GLp+H-iBxq&C3pL=i3h4dQemrYFc$@&wretC z!Y=yQ<+{RH^QyN>KP|$G6xB0?xMEK4qPlbL3xanDKA(Hue3Wy=M;!R0l1U#+$s69- zcuX%nX&Y)VECPZFnrQE^x%HIL=c$76@OIz$TIoC<3beJpC6I@MS}(Yn*FBc_pC^4E zUd|lW!?*9_WmBrpxo++!P&0!Elrz>dO8O2eUR57Eth%#Bc+)0Zij+Vv(Tugdv{-dA z%Q;Im#R04LgAkj917#^|^|u(%aBQh{TuL&S0)E^WzQ4D#z1CrE*YwK9o`Xun|{vU+@;0GeP_i*%!}dhlMa} zm4|Z<$x)*{b&p!;mxBNnF3YCO@ZJd0te{>G#eM*RpO;RIA#tU1Q9Gc zzyF|5YZ#yATx3BgDlnU1`B8lhBC;lkOTq3q5m))=zmKNV^q5YdT1WTTErXP%tA((m6Ebye5IW(tc^ElH z30m2l5OD!4KhIJW36_Qs>!es!kc`zRmddsa{QM#?QbFI9(uk-^12W?Vew($A2R(re zR@YIwNG0?sGZa!*aOu--UNp_@gAW`BOKLk@*qaJ`<+yQNqVNj5>qACuGP=L!WumiA z*Bsdy_0VzUDMM61vDILozrzg~n7fm1sdg^wwKEBo6*GqNz9f1v%Ruq`eSF3}m{Uso z?eyy8BkNF8QvX5x{Sp?eAv7)jPme=f8+RT|#Gri9K2 z>a=Isb*eJSCtA7zE;+Ha!319zK^5U(?7ieolEz?0?~3YO{IL!;*_Qf667*G@3gzo0 zs4)0scec0qf4?XFml8G#A};1*0cU)V68VdVQ?x+o2LYagMmfBX=aUhL2E9mP%xnL) z!oLwbK>!s!rJ(`$fG4_;8j%x~<9pWyWJaM#(gix3TcmlZ@xa5;50clA!X z?Mwc)J!bEC4}ze~<{DJ0-$7~jJC~UCb5a%R?hf#{r^zla-ERA28?yENG?d|!A+SH% zpTcpqLZ&Fu`@^9z4?$H*4O#d*jy47FWo=g**9Wc<&OUXuW!r&^lfr8mikEG*PnOo* z+9>ke*+8}<6lC{usp1KH^nnc<#p;y&eS3kVg0(p$N)LisdesC z+IaMNbsC427ZQFVD3{=`zaQ`EsMp2j-`N)=SN&RgfpJ?fCNN%A<2NiO8h<(5M2a9M zSXeajBNPJTW$k78%oq|)NT_JI$W!zbnhOUJ%0H&{AZe>D^_2W6iTMEXc3u8TlS&y+ z*>Fdx(QTbW`K_dgM3nf?E+YpS2(*=c)9Tz6xeibML5J&QNfc=6`FXD&-tjQ2sPR&~ z%5}H+YSL*(j0s-ywtSDt?Lrsv+5hOm38a1KLXCU33 z2}#}F5Xe}A7o_!^N^aJqNvc1JrRTq;V`i*FBU<-i_zl}w-gL0QpnrIJkXDTGFzqfX zlPRYpR~CDoH=>@|_zxwbFB+LBe-i_u68A-AS4St1tXAFaL0=p`)ndT3G1?wPt2xBY zm8pilLrk%AYUknNKo(rOz_v(gOyV)2AB!=kFV4wbElf-$dKtdMY;8-zvN{K}6t0pj zDiFZ4`E98SHK4TRiT9|2(}7@lbzXyXO)1fw7rC@xc#Qep=m3NqY0!#+)s6PU6z_XI zQsDCa1LAMoX+m|9?KUfa$M5(3-e+MVz~6V`Bh2kZWNJ=HL;yO#(Pf6L!_36hhouhn zED>U<_J~N@>Ly8V;NmrwuD2Yet~CBg0{n7j;2f<(tRAE-*vmo+p6;Yqasv}-|3D|Q g!Ai}9#+UHGMt)QQ8L0As@HYt1(KOVkP`3~N4`i=x{Qv*} diff --git a/mods/unified_inventory/textures/ui_furnace_inventory.png b/mods/unified_inventory/textures/ui_furnace_inventory.png deleted file mode 100755 index ea37f349735915a93adb169ff4bb99c94cdb41e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4486 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 Hx&QWGm+;AN diff --git a/mods/unified_inventory/textures/ui_gold_chest_inventory.png b/mods/unified_inventory/textures/ui_gold_chest_inventory.png deleted file mode 100755 index 5c441112822912e18b59e48d630ba0181d751ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2892 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 JD$LHu{{b&=vTgtX diff --git a/mods/unified_inventory/textures/ui_lv_grinder.png b/mods/unified_inventory/textures/ui_lv_grinder.png deleted file mode 100755 index c53e3d6174dcf25b323f16f638a23d8a4b242de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2718 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 diff --git a/mods/unified_inventory/textures/ui_mv_battery_box.png b/mods/unified_inventory/textures/ui_mv_battery_box.png deleted file mode 100755 index 3131714c7c8f49c59cffd0776db0695abbdf8ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15680 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 diff --git a/mods/unified_inventory/textures/ui_single_slot.png b/mods/unified_inventory/textures/ui_single_slot.png new file mode 100755 index 0000000000000000000000000000000000000000..ef2a24654c39b58d23f5f3a010ee0da12ce73fa6 GIT binary patch literal 988 zcmV<210(#2P)1^@s6E5F@k000A{Nkl&2U=y?w)fnd-hQncbeSQ5MfSn{s{y025yt+4jb#>J{ zKR+_YBm0ymJkDrb96Qhl? zEME)5@ZCNL|KQ+&8u6Q(n*zWGK@g}g45{t2 zeV@0%T8k)(5XW&GMbYb5S68|be|mZG^vahDk1F&|Qhhx~cVc*ZlH@r-9Y z;~CF*#xtJrjAuOK8P9meGoJB`XFTH>&v?c&p7D%lJmVS9c*ZlH@&7%3G;?{<TXEt;DFvkzq`XbKq;cDA1;I_0bt#09^;1izG>ksi~)iS{j*+G*k|e3?28IB>>GgU~|Iu&!#@5!>t5sEfYm6BfV~ms%_0`rTFp3Yu5J3_j zyKx-vEiNu*js5QW!TtSx1K?%P^9DrpCK0)t+O$?qzYwDGJWpt?pGhfyilXRvX=&+c zQ$5`a@pY7CDUXhhRF-Ab_S!nFHTwO&>-Bm?9LMc^P!5j&H~t1in>7`gG1)@^0000< KMNUMnLSTZn%jjkR literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_wooden_chest_inventory.png b/mods/unified_inventory/textures/ui_wooden_chest_inventory.png deleted file mode 100755 index 58a93df38c5b737647538de45c44fb766428d5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4639 zcmchacT`i^+QtKj1q2jC1Su*Y3StBtX=0FSK%^5$`81gTO3I*2e7=@Y5aYY-tI z1UQbMbP$HF5NePpL`Wc%B-YzkP0#XwK{PW^dqN8Vs$6z2><%Jg5mBJRM zqD>AGY(ia7tGms|O4wSYF?*=Zjv1VDq~V5Z7M;N7R0Voe{X4>CW%Vp=$^mg(mzcB(1ncEixfAcIK-~ps{_9f`r+E@j z0V99J0cODOm;`=pi|nAEpk5KB%3#^mG({LPOEp#s5rTukjQBWUM_@2*7%UXh8^^X- zA))Su!S=!a?|+!=R~#=mhcANbztUS=mb9%WgN4hCs!-7OlQy(5qr%9pB}dW7>%bu`^{TsU;S;m8rtLl#!vGrjlM)HD zTqINc93yFbbFceuUBlS)%W%B_IWuehd+F79xq!8Lc)h~VB)kzUn8ka@Sm8os`};o0 z4F|L3t}WIN1b_Irh%hS;&upjRpTs8@9=Wec(yc1IaNneq&>_#rr@O24uFqH>mKOo+ zuAKONPrds-WqwSzOI?O z_?(}*3-;=DltO4Qxvj08A%rx@43e#%yE8NeH5n5E=?Vs0SCCuP43+y1f}crQmtqHp zrj@k%)Lu}!P~{5*B9=j7aFPBv(bbN*rg>Os>x#e^78bK-9`lEH;5Q05QmB7m&lNzN z7_gXs1%7Htb4;eIZ7#WYF$T_$&^*_AH{(njoa?z>VMyqX4LJ9tq-HQcWxTL0)V3I+ z=!hXBZ+Dl<;u!>ApvlvO$n2q=p6~lvc#^Uyuo&|5AZQ{{2@vXP1oLpkBtSFj7HrlRW=A5c8Z z56K3&kM^!F&rl+WYXfgFCTEP85EU5AW%{D&Bhgh6#`-d~mV@K}ml2^5jpShl1+e70 zmi^EQ=*_?Z*!8yjPz6+vz8iUf%`pK$0U37NR#a40oh+ozBWz?Oh^9iAg#Jn#(Ww7% ztQ*0iN8}hzM?cES{6S9t6~g8c`UUbi3)?XoHU>3nkx?##*Id47n32yj*O#eh^PF6w zV4*9$H5?+DA4?wx_DLxYfIVYETzIHWV^Et`H2Wk^rc`L-%AynYf=JwX>%oC1@;nDJ zCH(1Dnp&YvTOv90JhWEnK+_D-BBl!1-$P8!({~HPtUd86mqXp~5mxAVfiS>v4h~xB zHVG~a_Wfc|k#Dm%6jZH}%i!bQkTVqE`v?ghIqxpBaKScaJgMPe?601)ZS6FjJU>or z>sk5uSObLmR%KsIu`t&Z*g8A>92E*$d3TP|cX>daO``hAx;%w}boVHV9A}y}QskFXerPv{iT3I4ZKy2qq_z6K458DO!#+Y~nPa4$H|^{o zcNEkF`2AjfTnU-7|7D~TLw{a-F~8d~;ukcgpIC8K=?H6ev(hiFPD2DUj4fjZQNxp3Ak9w8&ip6pT2P&S zylY9?*t(7)^8u0BBzfw6#h4g=r^Y9RvY2RH$CsAmr5B+ED#VYaQFbG z`{T3ko5rWyDVeIcr#I`Nv;topE3mkAYsv4tFj-*SBb&`mO)&q%Lpr}mxOtBA4{T{q zb-(szyJHNOGogaIf1AUA=<(MsW_PHJD3;TTBxtw|5YPg4_h>37&Q4tfUu?-16M})0 z;f``}uuqyTGMznPb>bv42yeMPS_ pTq~>9~_5XzC?a3Z5+6jsKZoAuKHd`SHI~- zw(aQnZaW?utW_}2Zv$dFH+++58+iMlmBJ_>L*&M!->wL^B`2FFOd;Bn3rn7fnd^tW zsgkB-x=LNnxJ6|0_IYt{&crts_Us*i;NUV(G3w7b*MtacsT)fCPwNrMwi&rMAUaHf z-CvMSx))jPeY#w=+eZx{VfIs8VJqZ5ybN{JJ!kC$j`nMYmB@Q0UoyFI`0TXph1RZ#)i(;?8&yN?%fKeP2$$obAr9mQV3QKQz7Ka z*?d!<(=)v?q8rx=FAQHJmJ;zXBCRh9aLciK>QgOWsd>7bjBCVY!<{KDB%#$zr_J2M$8 zL0TX^D|pt?UXh~F$~2UlIIBcO?+*>^qMdUBJ=`+(L?^8ho*G!>s9{a7MIL8v`C?vp z{$-50L;u_bo^L$-tMi}VVoVR_(Fx6fUT6Euw{&KrH&s-nw7lY;w-OB3NAaBU#edr~GfLA#sJS%L*#6Tmz#?Mg9D1*$^Vpq6mCfrvU|(>^lveN#9^nem{e55jO*`BL>u%floiPb52+P zRL&V>4o$1?>kNDVP6EDUh9bjO=F(Ewdl-Shi0#d8fpQ8Iu>Zcy@)tzmJc9g7e-bMr zN|=TW3j94B^7{XsVk&&eKg1ZOO~SdBH99Vd8vdlzEdH4Ffe^a|z3s3^8S#D25=uVD zE|NrRptw(pe7a$vplx_bDeh8CPg@wCy1+3BuLFcAitj7pnRgIQtof=V?QyxaXGKuQ z-jYj7_3l3okVYBAKR%liRYoIp>?+g%Ov+!QJuz})xthNS&myiv#)X}fUKGX1Iifuz zm+jal#VLgIhZy5ht$^pmEHEj(lJ{||R-xzsAKD=*F_}L!7ts^f_>>V7sC!7`2bRp_ zm2353LOhp7UJ9=pQxIBfS67~C3d*AZ!3F1PYNG9S2y!VTon3SDss*+22Lq1(Ieg5( zCi7v-;_m|8nVT)%ci1@DiC|T_kwh^KuDWy6sozNRa0883hV@sytXCeWZ8+Q|aQSY+ zDQSD5-p%>+X1s2ispOTQ8?_x`jP;6t0Vko0`ES@bvW68qn+4rJy%OiHA6EZV6WzXU z{iMQV+1W|{+%{0wmo@+CT}H(j8GUP35gQe>LJey8TD#@b=Cu7bnL+9$&YiNEqL5G4 z-$F6cosF`{cJH!~$}9LQ@l9KJh2?E&!jhsu?({GPa(1}{noSp^{uMo(&aH?409{w? A6951J diff --git a/mods/unified_inventory/waypoints.lua b/mods/unified_inventory/waypoints.lua index 7f91a74d..4e99d75f 100755 --- a/mods/unified_inventory/waypoints.lua +++ b/mods/unified_inventory/waypoints.lua @@ -16,6 +16,11 @@ local waypoints_temp = {} unified_inventory.register_page("waypoints", { get_formspec = function(player) local player_name = player:get_player_name() + + -- build a "fake" temp entry if the server took too long + -- during sign-on and returned an empty entry + if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end + local waypoints = datastorage.get(player_name, "waypoints") local formspec = "background[0,4.5;8,4;ui_main_inventory.png]" .. "image[0,0;1,1;ui_waypoints_icon.png]" .. @@ -107,6 +112,7 @@ unified_inventory.register_button("waypoints", { type = "image", image = "ui_waypoints_icon.png", tooltip = S("Waypoints"), + hide_lite=true, show_with = false, --Modif MFF (Crabman 30/06/2015) })