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