Mercurial > wow > reagentmaker
comparison ReagentMaker.lua @ 20:4ea38bae4174
Lots of display arrangements (tooltips and counts)
Corrected an id in data
| author | contrebasse |
|---|---|
| date | Sun, 10 Apr 2011 19:26:33 +0200 |
| parents | f7b23db7bcc6 |
| children | 25b9f98f9bba |
comparison
equal
deleted
inserted
replaced
| 19:f7b23db7bcc6 | 20:4ea38bae4174 |
|---|---|
| 40 return | 40 return |
| 41 end | 41 end |
| 42 | 42 |
| 43 -- Scan availabe recipes | 43 -- Scan availabe recipes |
| 44 A:ScanSimpleRecipes() | 44 A:ScanSimpleRecipes() |
| 45 | |
| 46 -- Show makables reagents | |
| 47 A.updateCounts(GetTradeSkillSelectionIndex()) | |
| 45 end | 48 end |
| 46 end | 49 end |
| 47 A.EventsFrame:SetScript("OnEvent", function(self, event) | 50 A.EventsFrame:SetScript("OnEvent", function(self, event) |
| 48 if event == "TRADE_SKILL_UPDATE" then | 51 if event == "TRADE_SKILL_UPDATE" then |
| 49 t_throttle = SCAN_DELAY | 52 t_throttle = SCAN_DELAY |
| 62 --------------------------------------------------- | 65 --------------------------------------------------- |
| 63 function A:Initialize() | 66 function A:Initialize() |
| 64 | 67 |
| 65 -- Register clics on reagent's buttons | 68 -- Register clics on reagent's buttons |
| 66 for i=1,7 do | 69 for i=1,7 do |
| 67 local btn = _G["TradeSkillReagent"..i]; | 70 local btn = _G["TradeSkillReagent"..i] |
| 68 btn:HookScript("OnDoubleClick", A.ProcessReagent); | 71 btn:HookScript("OnDoubleClick", A.ProcessReagent) |
| 69 btn:HookScript("OnEnter", A.btnEntered) | 72 btn:HookScript("OnEnter", A.btnEntered) |
| 70 btn:HookScript("OnLeave", A.btnLeft) | 73 btn:HookScript("OnLeave", A.btnLeft) |
| 71 btn.SplitStack = A.SplitStack | 74 btn.SplitStack = A.SplitStack |
| 72 | 75 |
| 73 local textureHighlight = btn:CreateTexture() | 76 local textureHighlight = btn:CreateTexture() |
| 74 textureHighlight:Hide() | 77 textureHighlight:Hide() |
| 75 textureHighlight:SetTexture("Interface\\BUTTONS\\CheckButtonHilight") | 78 textureHighlight:SetTexture("Interface\\BUTTONS\\CheckButtonHilight") |
| 76 textureHighlight:SetBlendMode("ADD") | 79 textureHighlight:SetBlendMode("ADD") |
| 77 --textureHighlight:SetPoint("TOPLEFT") | |
| 78 --textureHighlight:SetSize(btn:GetHeight(),btn:GetHeight()) | |
| 79 textureHighlight:SetAllPoints("TradeSkillReagent"..i.."IconTexture") | 80 textureHighlight:SetAllPoints("TradeSkillReagent"..i.."IconTexture") |
| 80 btn.textureHighlight = textureHighlight | 81 btn.textureHighlight = textureHighlight |
| 81 | 82 |
| 82 local label = btn:CreateFontString(nil,"ARTWORK","GameFontHighlight") | 83 local label = btn:CreateFontString(nil,"ARTWORK","GameFontHighlight") |
| 83 label:SetSize(100,20) | 84 label:SetSize(100,20) |
| 194 -- Continue only if the reagent is known | 195 -- Continue only if the reagent is known |
| 195 if not reagentID or not A.data[reagentID] then return end | 196 if not reagentID or not A.data[reagentID] then return end |
| 196 | 197 |
| 197 btn.textureHighlight:Show() | 198 btn.textureHighlight:Show() |
| 198 | 199 |
| 199 if #(A.data[reagentID]) == 1 and not A.data[reagentID].spell then | |
| 200 local numMakable = A.numMakable(reagentID) | |
| 201 btn.label:SetText(numMakable) | |
| 202 if numMakable==0 then | |
| 203 btn.label:SetTextColor(1, 0, 0, 1) | |
| 204 else | |
| 205 btn.label:SetTextColor(0, 5, 0, 1) | |
| 206 end | |
| 207 btn.label:Show() | |
| 208 end | |
| 209 | |
| 210 -- Tooltips | 200 -- Tooltips |
| 211 local link | 201 local link |
| 212 if A.data[reagentID].spell then | 202 if A.data[reagentID].spell then |
| 213 link = GetSpellLink(A.data[reagentID].spellID) | 203 link = GetSpellLink(A.data[reagentID].spellID) |
| 214 else | 204 else |
| 217 if link then | 207 if link then |
| 218 A.tooltipRecipe:SetOwner(btn) | 208 A.tooltipRecipe:SetOwner(btn) |
| 219 A.tooltipRecipe:SetHyperlink(link) | 209 A.tooltipRecipe:SetHyperlink(link) |
| 220 A.tooltipRecipe:Show() | 210 A.tooltipRecipe:Show() |
| 221 A.tooltipRecipe:ClearAllPoints() | 211 A.tooltipRecipe:ClearAllPoints() |
| 222 --A.tooltipRecipe:SetPoint("TOPLEFT",btn,"TOPRIGHT") | |
| 223 A.tooltipRecipe:SetPoint("BOTTOMLEFT",GameTooltip,"BOTTOMRIGHT") | 212 A.tooltipRecipe:SetPoint("BOTTOMLEFT",GameTooltip,"BOTTOMRIGHT") |
| 224 | |
| 225 --[[ | |
| 226 if #(A.data[reagentID]) == 1 then | |
| 227 A.tooltipReagent:SetOwner(A.tooltipRecipe) | |
| 228 local name, link, quality, iLevel, reqLevel, class, subclass, maxStack, equipSlot, texture, vendorPrice = GetItemInfo(A.data[reagentID][1][1]) | |
| 229 A.tooltipReagent:SetHyperlink(link) | |
| 230 A.tooltipReagent:Show() | |
| 231 A.tooltipReagent:ClearAllPoints() | |
| 232 A.tooltipReagent:SetPoint("BOTTOMLEFT",A.tooltipRecipe,"BOTTOMRIGHT") | |
| 233 end | |
| 234 --]] | |
| 235 end | 213 end |
| 236 end | 214 end |
| 237 | 215 |
| 238 function A.btnLeft(btn) | 216 function A.btnLeft(btn) |
| 239 btn.textureHighlight:Hide() | 217 btn.textureHighlight:Hide() |
| 240 btn.label:Hide() | |
| 241 A.tooltipRecipe:Hide() | 218 A.tooltipRecipe:Hide() |
| 242 --A.tooltipReagent:Hide() | 219 --A.tooltipReagent:Hide() |
| 243 end | 220 end -- function |
| 221 | |
| 222 function A.updateCounts(recipeIndex) | |
| 223 -- Needs an argument | |
| 224 if not recipeIndex then return end | |
| 225 | |
| 226 -- Do not manage guild tradeskill | |
| 227 if IsTradeSkillGuild() or IsTradeSkillLinked() then | |
| 228 for reagentRecipeIndex = 1,GetTradeSkillNumReagents(recipeIndex) do | |
| 229 _G["TradeSkillReagent"..reagentRecipeIndex].label:Hide() | |
| 230 end | |
| 231 return | |
| 232 end | |
| 233 | |
| 234 -- Count makable items and show it | |
| 235 for reagentRecipeIndex = 1,GetTradeSkillNumReagents(recipeIndex) do | |
| 236 -- ID of the reagent we want to craft | |
| 237 local reagentLink = GetTradeSkillReagentItemLink(recipeIndex, reagentRecipeIndex) | |
| 238 local reagentID = A.link2ID(reagentLink) | |
| 239 | |
| 240 local label = _G["TradeSkillReagent"..reagentRecipeIndex].label | |
| 241 if not label then return end | |
| 242 | |
| 243 -- Continue only if the reagent is known | |
| 244 if not reagentID or not A.data[reagentID] or #(A.data[reagentID]) ~= 1 or A.data[reagentID].spell then | |
| 245 label:Hide() | |
| 246 else | |
| 247 -- Count and show | |
| 248 local numMakable = A.numMakable(reagentID) | |
| 249 label:SetText(numMakable) | |
| 250 if numMakable==0 then | |
| 251 label:SetTextColor(1, 0, 0, 1) | |
| 252 else | |
| 253 label:SetTextColor(0, 5, 0, 1) | |
| 254 end -- if | |
| 255 label:Show() | |
| 256 end -- if | |
| 257 end -- for | |
| 258 end -- function | |
| 259 hooksecurefunc("SelectTradeSkill",A.updateCounts) |
