From 60287ea05b9b37d219d66a0f6550fb618887909a Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 16 Feb 2017 02:16:39 +0100 Subject: [PATCH] Craftguide: Cycle through alternatives when clicking on item again --- mods/HUD/mcl_craftguide/init.lua | 42 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/mods/HUD/mcl_craftguide/init.lua b/mods/HUD/mcl_craftguide/init.lua index 951cbcca5d..4c3c1f8570 100644 --- a/mods/HUD/mcl_craftguide/init.lua +++ b/mods/HUD/mcl_craftguide/init.lua @@ -453,33 +453,43 @@ mt.register_on_player_receive_fields(function(player, formname, fields) data.pagenum = 1 data.iX = data.iX - (fields.size_dec and 1 or -1) craftguide:get_formspec(player_name) - else for item in pairs(fields) do + else + for item in pairs(fields) do if item:find(":") then if item:sub(-4) == "_inv" or item:sub(-4) == "_out" then item = item:sub(1,-5) end - local recipes = get_recipes(item) local is_fuel = get_fueltime(item) > 0 + local recipes = get_recipes(item) if not recipes and not is_fuel then return end - if progressive_mode then - local inv = player:get_inventory() - local _, has_item = - craftguide:recipe_in_inv(inv, item) + if item == data.item then + if data.recipes_item and #data.recipes_item >= 2 then + local recipe = data.recipes_item[data.recipe_num + 1] + data.recipe_num = recipe and data.recipe_num + 1 or 1 + craftguide:get_formspec(player_name) + end + else - if not has_item then return end - recipes = craftguide:recipe_in_inv( - inv, item, recipes) + if progressive_mode then + local inv = player:get_inventory() + local _, has_item = + craftguide:recipe_in_inv(inv, item) + + if not has_item then return end + recipes = craftguide:recipe_in_inv( + inv, item, recipes) + end + + data.item = item + data.recipe_num = 1 + data.recipes_item = recipes + + craftguide:get_formspec(player_name, is_fuel) end - - data.item = item - data.recipe_num = 1 - data.recipes_item = recipes - - craftguide:get_formspec(player_name, is_fuel) end - end + end end end)