From c33efe86316342c491267c5f5d8b8fa2cdc58747 Mon Sep 17 00:00:00 2001 From: Zefram Date: Fri, 13 Jun 2014 12:35:12 +0100 Subject: [PATCH] Cleaner display of lack of recipes (redux) When the current craft guide item has no recipes, show a "no" symbol instead of an ingredient grid, alongside the "No recipes" message. When no item is selected in the craft guide, leave the recipe space empty. --- register.lua | 28 +++++++++++++++------------- textures/ui_no.png | Bin 0 -> 7525 bytes 2 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 textures/ui_no.png diff --git a/register.lua b/register.lua index 5fcd5fc..3815f05 100644 --- a/register.lua +++ b/register.lua @@ -174,17 +174,18 @@ unified_inventory.register_page("craftguide", { local player_name = player:get_player_name() local formspec = "" formspec = formspec.."background[0,4.5;8,4;ui_main_inventory.png]" - formspec = formspec.."background[0,1;8,3;ui_craftguide_form.png]" formspec = formspec.."label[0,0;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 + + formspec = formspec.."background[0,1;8,3;ui_craftguide_form.png]" + formspec = formspec.."textarea[0.3,0.6;10,1;;Result: "..minetest.formspec_escape(item_name)..";]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."craftrecipe;output;6,1;1,1;]" local craftinv = minetest.get_inventory({ type = "detached", name = player_name.."craftrecipe" }) - local item_name = unified_inventory.current_item[player_name] or "" - - formspec = formspec.."textarea[0.3,0.6;10,1;;Result: "..minetest.formspec_escape(item_name)..";]" - formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."craftrecipe;output;6,1;1,1;]" local alternate, alternates, craft, craft_type alternate = unified_inventory.alternate[player_name] @@ -194,19 +195,20 @@ unified_inventory.register_page("craftguide", { craft = crafts[alternate] end - if craft then - craftinv:set_stack("output", 1, craft.output) - craft_type = unified_inventory.registered_craft_types[craft.type] or - unified_inventory.craft_type_defaults(craft.type, {}) - formspec = formspec.."label[6,3.35;Method:]" - formspec = formspec.."label[6,3.75;" - ..minetest.formspec_escape(craft_type.description).."]" - else + if not craft then craftinv:set_stack("output", 1, item_name) craft_type = unified_inventory.craft_type_defaults("", {}) formspec = formspec.."label[6,3.35;No recipes]" + formspec = formspec.."image[4,1;1.1,1.1;ui_no.png]" + return {formspec = formspec} end + craftinv:set_stack("output", 1, craft.output) + craft_type = unified_inventory.registered_craft_types[craft.type] or + unified_inventory.craft_type_defaults(craft.type, {}) + formspec = formspec.."label[6,3.35;Method:]" + formspec = formspec.."label[6,3.75;" + ..minetest.formspec_escape(craft_type.description).."]" 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 diff --git a/textures/ui_no.png b/textures/ui_no.png new file mode 100644 index 0000000000000000000000000000000000000000..ad9470bc264eeea4c70eaeb3058f1701d4f30bd4 GIT binary patch literal 7525 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