contrebasse@0: local addonName, A = ... contrebasse@0: contrebasse@16: -- Lua functions contrebasse@16: local tonumber = tonumber contrebasse@16: local select = select contrebasse@16: local sfind = string.find contrebasse@16: contrebasse@16: -- Wow functions contrebasse@16: contrebasse@3: -- DEBUG Print contrebasse@3: function A.DEBUG(msg) contrebasse@16: -- GLOBALS: DEFAULT_CHAT_FRAME contrebasse@3: DEFAULT_CHAT_FRAME:AddMessage(msg or "nil",1,0,0) contrebasse@3: end -- function contrebasse@0: contrebasse@3: -- Returns the item ID from its link contrebasse@3: function A.link2ID(link) contrebasse@16: return tonumber(select(3,sfind(link or "", "-*:(%d+)[:|].*")) or "") contrebasse@3: end -- function contrebasse@3: contrebasse@3: -- Returns the button number for the reagents buttons contrebasse@3: function A.buttonNumber(btn) contrebasse@3: -- "TradeSkillReagentN" contrebasse@3: return tonumber(btn:GetName():sub(-1)) contrebasse@0: end contrebasse@0: contrebasse@16: do contrebasse@16: -- Wow functions contrebasse@16: local GetTradeSkillInfo = GetTradeSkillInfo contrebasse@16: local GetNumTradeSkills = GetNumTradeSkills contrebasse@16: local GetTradeSkillItemLink = GetTradeSkillItemLink contrebasse@0: contrebasse@16: -- Gives the number of craftable objects contrebasse@16: function A.numMakable(reagentID) contrebasse@16: -- Look for the recipe to make the item contrebasse@16: local reagentIndex = A.findSkillIndex(reagentID) contrebasse@16: if not reagentIndex then return 0 end contrebasse@3: contrebasse@16: -- Check how many items we can craft contrebasse@16: local skillName, skillType, numReagentMakable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(reagentIndex) contrebasse@16: return numReagentMakable or 0, reagentIndex contrebasse@16: end contrebasse@16: contrebasse@16: -- Find the first tradeskill index of the recipe to make an item contrebasse@16: function A.findSkillIndex(itemID) contrebasse@16: for i = 1,GetNumTradeSkills() do contrebasse@16: local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i) contrebasse@16: if skillType == "header" then contrebasse@16: else contrebasse@16: if skillName then contrebasse@16: local ID = A.link2ID(GetTradeSkillItemLink(i)) contrebasse@16: if ID and ID == itemID then contrebasse@16: return i contrebasse@16: end -- if contrebasse@3: end -- if contrebasse@3: end -- if contrebasse@16: end -- for contrebasse@16: A.DEBUG("Tradeskill not found for "..itemID) contrebasse@16: end -- function contrebasse@16: end -- do