comparison utils.lua @ 16:250d01156e21

Use local references to global functions in the utils functions
author contrebasse
date Wed, 06 Apr 2011 00:32:00 +0200
parents ed0582126cae
children 5f3a5b88fb19
comparison
equal deleted inserted replaced
15:cc56799582f2 16:250d01156e21
1 local addonName, A = ... 1 local addonName, A = ...
2
3 -- Lua functions
4 local tonumber = tonumber
5 local select = select
6 local sfind = string.find
7
8 -- Wow functions
2 9
3 -- DEBUG Print 10 -- DEBUG Print
4 function A.DEBUG(msg) 11 function A.DEBUG(msg)
12 -- GLOBALS: DEFAULT_CHAT_FRAME
5 DEFAULT_CHAT_FRAME:AddMessage(msg or "nil",1,0,0) 13 DEFAULT_CHAT_FRAME:AddMessage(msg or "nil",1,0,0)
6 end -- function 14 end -- function
7 15
8 -- Returns the item ID from its link 16 -- Returns the item ID from its link
9 function A.link2ID(link) 17 function A.link2ID(link)
10 return tonumber(select(3,string.find(link or "", "-*:(%d+)[:|].*")) or "") 18 return tonumber(select(3,sfind(link or "", "-*:(%d+)[:|].*")) or "")
11 end -- function 19 end -- function
12 20
13 -- Returns the button number for the reagents buttons 21 -- Returns the button number for the reagents buttons
14 function A.buttonNumber(btn) 22 function A.buttonNumber(btn)
15 -- "TradeSkillReagentN" 23 -- "TradeSkillReagentN"
16 return tonumber(btn:GetName():sub(-1)) 24 return tonumber(btn:GetName():sub(-1))
17 end 25 end
18 26
19 -- Gives the number of craftable objects 27 do
20 function A.numMakable(reagentID) 28 -- Wow functions
21 -- Look for the recipe to make the item 29 local GetTradeSkillInfo = GetTradeSkillInfo
22 local reagentIndex = A.findSkillIndex(reagentID) 30 local GetNumTradeSkills = GetNumTradeSkills
23 if not reagentIndex then return 0 end 31 local GetTradeSkillItemLink = GetTradeSkillItemLink
24 32
25 -- Check how many items we can craft 33 -- Gives the number of craftable objects
26 local skillName, skillType, numReagentMakable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(reagentIndex) 34 function A.numMakable(reagentID)
27 return numReagentMakable or 0, reagentIndex 35 -- Look for the recipe to make the item
28 end 36 local reagentIndex = A.findSkillIndex(reagentID)
37 if not reagentIndex then return 0 end
29 38
30 -- Find the first tradeskill index of the recipe to make an item 39 -- Check how many items we can craft
31 function A.findSkillIndex(itemID) 40 local skillName, skillType, numReagentMakable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(reagentIndex)
32 for i = 1,GetNumTradeSkills() do 41 return numReagentMakable or 0, reagentIndex
33 local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i) 42 end
34 if skillType == "header" then 43
35 else 44 -- Find the first tradeskill index of the recipe to make an item
36 if skillName then 45 function A.findSkillIndex(itemID)
37 local ID = A.link2ID(GetTradeSkillItemLink(i)) 46 for i = 1,GetNumTradeSkills() do
38 if ID and ID == itemID then 47 local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i)
39 return i 48 if skillType == "header" then
49 else
50 if skillName then
51 local ID = A.link2ID(GetTradeSkillItemLink(i))
52 if ID and ID == itemID then
53 return i
54 end -- if
40 end -- if 55 end -- if
41 end -- if 56 end -- if
42 end -- if 57 end -- for
43 end -- for 58 A.DEBUG("Tradeskill not found for "..itemID)
44 A.DEBUG("Tradeskill not found for "..itemID) 59 end -- function
45 end -- function 60 end -- do