Mercurial > wow > reagentmaker
diff data.lua @ 15:cc56799582f2
Use local references to global functions to speed up scanning
author | contrebasse |
---|---|
date | Wed, 06 Apr 2011 00:28:13 +0200 |
parents | 5c8fcfdd1e24 |
children | 4ea38bae4174 |
line wrap: on
line diff
--- a/data.lua Tue Apr 05 21:59:01 2011 +0200 +++ b/data.lua Wed Apr 06 00:28:13 2011 +0200 @@ -1,9 +1,9 @@ local addonName, A = ... -MillID = 51005 -macroMill = "/cast "..GetSpellInfo(MillID).."\n/use " -ProspectID = 31252 -macroProspect = "/cast "..GetSpellInfo(ProspectID).."\n/use " +local MillID = 51005 +local macroMill = "/cast "..GetSpellInfo(MillID).."\n/use " +local ProspectID = 31252 +local macroProspect = "/cast "..GetSpellInfo(ProspectID).."\n/use " A.data = { -- Mill -- Normal pigments @@ -240,51 +240,68 @@ -- @todo rescan when a new refipe appears (TRADESKILL_UPDATE ?) -- @todo be sure that skillName is unique, or use something else -- @todo add support for multi-reagents recipes -function A:ScanSimpleRecipes() - for i = 1,GetNumTradeSkills() do - local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i) - if skillType ~= "header" then - if GetTradeSkillNumReagents(i) == 1 then - -- item ID - local itemID = A.link2ID(GetTradeSkillItemLink(i)) +do + -- lua functions + local print = print + local ipairs = ipairs + local tinsert = tinsert - -- reagent ID - local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1)) + -- Wow functions + local GetNumTradeSkills = GetNumTradeSkills + local GetTradeSkillInfo = GetTradeSkillInfo + local GetTradeSkillNumReagents = GetTradeSkillNumReagents + local GetTradeSkillItemLink = GetTradeSkillItemLink + local GetTradeSkillReagentItemLink = GetTradeSkillReagentItemLink + local GetTradeSkillReagentInfo = GetTradeSkillReagentInfo + local GetTradeSkillNumMade = GetTradeSkillNumMade - -- reagent number needed - local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(i, 1) + -- the function who scans the tradeskill + function A:ScanSimpleRecipes() + for i = 1,GetNumTradeSkills() do + local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i) + if skillType ~= "header" then + if GetTradeSkillNumReagents(i) == 1 then + -- item ID + local itemID = A.link2ID(GetTradeSkillItemLink(i)) - -- number of reagent created by the recipe - local minMade, maxMade = GetTradeSkillNumMade(i) + -- reagent ID + local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1)) - -- error checking - if not reagentID or not reagentCount or not skillName or not itemID or not minMade or not maxMade then - print("Erreur de scan :",itemID,skillName,reagentID,reagentCount,minMade,maxMade) - end + -- reagent number needed + local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(i, 1) - -- remove unneeded minMade/maxMade - if maxMade==minMade then - maxMade = nil - if minMade==1 then - minMade = nil - end - end + -- number of reagent created by the recipe + local minMade, maxMade = GetTradeSkillNumMade(i) - -- skillName or...??? - if not A.data[itemID] then - A.data[itemID] = {} - end - local newSpell = true - for _,v in ipairs(A.data[itemID]) do - if v.spellName==skillName then - newSpell = nil - break - end - end - if newSpell then - tinsert(A.data[itemID],{reagentID,reagentCount,minMade,maxMade,spellName=skillName}) - end + -- error checking + if not reagentID or not reagentCount or not skillName or not itemID or not minMade or not maxMade then + print("Erreur de scan :",itemID,skillName,reagentID,reagentCount,minMade,maxMade) + end -- if + + -- remove unneeded minMade/maxMade + if maxMade==minMade then + maxMade = nil + if minMade==1 then + minMade = nil + end -- if + end -- if + + -- skillName or...??? + if not A.data[itemID] then + A.data[itemID] = {} + end -- if + local newSpell = true + for _,v in ipairs(A.data[itemID]) do + if v.spellName==skillName then + newSpell = nil + break + end -- if + end -- for + if newSpell then + tinsert(A.data[itemID],{reagentID,reagentCount,minMade,maxMade,spellName=skillName}) + end -- if + end -- if end -- if - end -- if - end -- for -end + end -- for + end -- function +end -- do