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