annotate 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
rev   line source
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