comparison ReagentMaker.lua @ 38:aa2f6965c0f6

Add fancy errors/warnings and block recursion when a recipe has many reagents
author contrebasse
date Fri, 29 Apr 2011 23:38:43 +0200
parents 218e1dd1b821
children c6a1f1cf560c
comparison
equal deleted inserted replaced
37:ef22738aebfe 38:aa2f6965c0f6
120 120
121 -- If only one recipe is known for the reagent, use it 121 -- If only one recipe is known for the reagent, use it
122 if #(A.data[reagentID]) == 1 and not A.data[reagentID].spell then 122 if #(A.data[reagentID]) == 1 and not A.data[reagentID].spell then
123 local numMakable, reagentIndex = A.numMakable(reagentID) 123 local numMakable, reagentIndex = A.numMakable(reagentID)
124 if not numMakable then 124 if not numMakable then
125 print("Sorry, I can't determine the number of makables reagents...") 125 A.Error("The recipe to make the reagent seems to be hidden, it is not makable.")
126 return 126 return
127 end 127 end
128 if numMakable>0 then 128 if numMakable>0 then
129 A.craft(reagentID,reagentRecipeIndex,reagentIndex,numMakable,chooseNumberToCraft) 129 A.craft(reagentID,reagentRecipeIndex,reagentIndex,numMakable,chooseNumberToCraft)
130 return 130 return
131 end 131 end
132 132
133 -- If we can make the item needed to make the reagent, open a window to make it 133 -- If we can make the item needed to make the reagent, open a window to make it
134 -- one step recursion, enables to mill to create an ink 134 -- one step recursion, enables to mill to create an ink
135 if A.data[A.data[reagentID][1][1]] then 135 if (not A.data[reagentID].manyReagents) and A.data[A.data[reagentID][1][1]] then
136 A.externalCraftWindow(A.data[reagentID][1][1],reagentID) 136 A.externalCraftWindow(A.data[reagentID][1][1],reagentID)
137 else 137 else
138 print("Sorry, couldn't make reagent...") 138 A.Error("You do not have enough reagents to craft ["..(GetItemInfo(reagentID) or "item #"..reagentID).."]")
139 end 139 end
140 return
140 else 141 else
141 A.externalCraftWindow(reagentID) 142 A.externalCraftWindow(reagentID)
142 end -- if 143 end -- if
143 --A.RestoreActiveFilters() 144 --A.RestoreActiveFilters()
144 end -- function 145 end -- function