comparison SecureMenu.lua @ 73:a77fd9d06ba4

Use the new internal data format everywhere
author contrebasse
date Sat, 14 May 2011 20:55:49 +0200
parents 4f9fd025112b
children 3d344a2d8fdf
comparison
equal deleted inserted replaced
72:9cf4ca2145a3 73:a77fd9d06ba4
208 local numMakable = math.floor(itemCount/(btn.reagentsForOneRecipe or 1)) 208 local numMakable = math.floor(itemCount/(btn.reagentsForOneRecipe or 1))
209 btn.countDetail:SetText(itemCount.."/"..(btn.reagentsForOneRecipe or 1)) 209 btn.countDetail:SetText(itemCount.."/"..(btn.reagentsForOneRecipe or 1))
210 210
211 if numMakable>0 then 211 if numMakable>0 then
212 -- Set action 212 -- Set action
213 if type(action)=="function" then 213 if type(btn.action)=="function" then
214 btn:SetScript("PreClick",btn.action) 214 btn:SetScript("PreClick",btn.action)
215 btn:SetAttribute("type", nil) 215 btn:SetAttribute("type", nil)
216 btn:SetAttribute("macrotext", nil) 216 btn:SetAttribute("macrotext", nil)
217 else --if type(action)=="string" then 217 else --if type(action)=="string" then
218 btn:SetScript("PreClick",nil) 218 btn:SetScript("PreClick",nil)
219 btn:SetAttribute("type", "macro") 219 btn:SetAttribute("type", "macro")
220 btn:SetAttribute("macrotext", btn.action..btn.itemNameString) 220 btn:SetAttribute("macrotext", btn.action:format(btn.itemNameString))
221 end -- if 221 end -- if
222 222
223 anyMakable = true 223 anyMakable = true
224 btn.countDetail:SetTextColor(1, 1, 1, 1) 224 btn.countDetail:SetTextColor(1, 1, 1, 1)
225 btn.icon:SetVertexColor(1,1,1); 225 btn.icon:SetVertexColor(1,1,1);
247 itemIcon:SetVertexColor(0.5, 0.5, 0.5) 247 itemIcon:SetVertexColor(0.5, 0.5, 0.5)
248 TitleText:SetTextColor(r,g,b,0.7) 248 TitleText:SetTextColor(r,g,b,0.7)
249 end 249 end
250 end 250 end
251 251
252 local function menuAddItem(action,itemID,reagent,spellLink) 252 local function menuAddItem(action,itemID,reagent)
253 local btn 253 local btn
254 -- Create a button only if necessary 254 -- Create a button only if necessary
255 if numActiveEntries >= #menuEntries then 255 if numActiveEntries >= #menuEntries then
256 btn = createMenuEntry() 256 btn = createMenuEntry()
257 else 257 else
258 btn = menuEntries[numActiveEntries+1] 258 btn = menuEntries[numActiveEntries+1]
259 end 259 end
260 260
261 -- Set text and icon 261 -- Set text and icon
262 local name, link, _, _, _, _, _, _, _, texture = GetItemInfo(reagent[1]) 262 local name, link, _, _, _, _, _, _, _, texture = GetItemInfo(reagent[1])
263 if name then 263 if not (name and link and texture) then
264 btn.itemName:SetText(name) 264 -- Will be retried on next OnUpdate
265 else
266 --A.DEBUG("No item name : "..reagent[1])
267 return 265 return
268 end 266 end
269 267 btn.itemName:SetText(name)
270 if texture then 268 btn.icon:SetTexture(texture)
271 btn.icon:SetTexture(texture)
272 else
273 --A.DEBUG("No item texture : "..reagent[1])
274 return
275 end
276 269
277 -- Set chance to have the item or the number of items created 270 -- Set chance to have the item or the number of items created
278 if reagent[3] then 271 if reagent[3] then
279 if reagent[3]<1 then 272 if reagent[3]<1 then
280 btn.resultNumber:SetText((reagent[3]*100).."%") 273 btn.resultNumber:SetText((reagent[3]*100).."%")
288 -- Save params 281 -- Save params
289 btn.itemID = itemID 282 btn.itemID = itemID
290 btn.reagentID = reagent[1] 283 btn.reagentID = reagent[1]
291 btn.reagentLink = link 284 btn.reagentLink = link
292 btn.reagentsForOneRecipe = reagent[2] 285 btn.reagentsForOneRecipe = reagent[2]
293 btn.spellLink = spellLink 286 btn.spellLink = reagent.spellLink
294 btn.action = action 287 btn.action = action
295 btn.itemNameString = name 288 btn.itemNameString = name
296 289
297 btn:Show() 290 btn:Show()
298 291
334 local color = ITEM_QUALITY_COLORS[quality] 327 local color = ITEM_QUALITY_COLORS[quality]
335 TitleText:SetTextColor(color.r, color.g, color.b) 328 TitleText:SetTextColor(color.r, color.g, color.b)
336 329
337 -- Save vars to show the tooltip later 330 -- Save vars to show the tooltip later
338 MenuFrame.reagentLink = link 331 MenuFrame.reagentLink = link
339 MenuFrame.spellLink = A.data[itemID].spellLink 332 MenuFrame.spellLink = A.isRecipeUnique(A.data[itemID]) and A.data[itemID][1].spellLink
340 MenuFrame.itemID = itemID 333 MenuFrame.itemID = itemID
341 MenuFrame.superItemID = superItemID -- optional 334 MenuFrame.superItemID = superItemID -- optional, will be nil if not set
342 335
343 -- Loop over the available recipes 336 -- Loop over the available recipes
344 MenuFrame.state = true 337 MenuFrame.state = true
345 for _,reagent in ipairs(A.data[itemID]) do 338 for _,reagent in ipairs(A.data[itemID]) do
346 if A.data[itemID].spell then 339 if reagent.macro then
347 -- Special spell 340 -- Special spell
348 MenuFrame.state = menuAddItem(A.data[itemID].spell,itemID,reagent,A.data[itemID].spellLink) and MenuFrame.state 341 MenuFrame.state = menuAddItem(reagent.macro,itemID,reagent) and MenuFrame.state
349 else 342 else
350 -- Standard tradeskill spell UNTESTED 343 -- Standard tradeskill spell UNTESTED
351 MenuFrame.state = menuAddItem(A.craft,itemID,reagent) and MenuFrame.state 344 MenuFrame.state = menuAddItem(A.craft,itemID,reagent) and MenuFrame.state
352 end -- if 345 end -- if
353 end -- for 346 end -- for