From 60287ea05b9b37d219d66a0f6550fb618887909a Mon Sep 17 00:00:00 2001
From: Wuzzy <almikes@aol.com>
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 951cbcca..4c3c1f85 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)