annotate EnchantOnScroll.lua @ 92:c1214d48fa1c

Added tag v1.0beta7 for changeset d2b4b378bea4
author contrebasse
date Tue, 17 May 2011 18:35:24 +0200
parents d2b4b378bea4
children b980c00affcd 4d376d031f8d
rev   line source
contrebasse@77 1 local addonName, A = ...
contrebasse@77 2
contrebasse@77 3 local SCROLL_ID = 38682
contrebasse@77 4 local ENCHANTING_ID = 7411
contrebasse@77 5 local btn
contrebasse@77 6
contrebasse@77 7 local EventsFrame = CreateFrame("Frame",nil,TradeSkillFrame) -- It will be hidden with the TradeSkillFrame
contrebasse@77 8
contrebasse@77 9 local function CheckButtonAvailable(arg1)
contrebasse@77 10 if not btn then return end
contrebasse@77 11
contrebasse@77 12 -- Do not manage guild tradeskill
contrebasse@77 13 -- Check that we're still with the enchanting tradeskill
contrebasse@77 14 if IsTradeSkillGuild() or IsTradeSkillLinked() or GetTradeSkillLine() ~= GetSpellInfo(ENCHANTING_ID) then
contrebasse@77 15 btn:Hide()
contrebasse@77 16 return
contrebasse@77 17 end
contrebasse@77 18
contrebasse@77 19 -- Check that the selected recipe can be crafted, and the crafted thing is an enchant
contrebasse@77 20 local index = GetTradeSkillSelectionIndex()
contrebasse@77 21 if not index then
contrebasse@91 22 btn:Hide()
contrebasse@77 23 return
contrebasse@77 24 end
contrebasse@77 25 local _, _, numAvailable, _, serviceType = GetTradeSkillInfo(index)
contrebasse@77 26
contrebasse@77 27 -- serviceType is localised, but nil if an item is created
contrebasse@77 28 if not serviceType then
contrebasse@77 29 btn:Hide()
contrebasse@77 30 return
contrebasse@77 31 end
contrebasse@91 32
contrebasse@91 33 -- Check that there's scrolls in the bags
contrebasse@91 34 local itemCount = GetItemCount(SCROLL_ID)
contrebasse@91 35 if not itemCount or itemCount==0 then
contrebasse@91 36 btn:Disable()
contrebasse@91 37 btn:Show()
contrebasse@91 38 btn:SetText(A.L["Enchant a scroll (0)"])
contrebasse@91 39 return
contrebasse@91 40 end
contrebasse@91 41 btn:SetText(A.L["Enchant a scroll (%d)"]:format(itemCount))
contrebasse@91 42
contrebasse@91 43 if numAvailable==0 then
contrebasse@77 44 btn:Disable()
contrebasse@77 45 btn:Show()
contrebasse@77 46 return
contrebasse@77 47 end
contrebasse@77 48
contrebasse@77 49 -- It passed the tests
contrebasse@77 50 btn:Enable()
contrebasse@77 51 btn:Show()
contrebasse@77 52 end
contrebasse@77 53 EventsFrame:SetScript("OnEvent",CheckButtonAvailable)
contrebasse@77 54 EventsFrame:RegisterEvent("BAG_UPDATE")
contrebasse@77 55 hooksecurefunc("SelectTradeSkill",CheckButtonAvailable)
contrebasse@77 56
contrebasse@77 57 function A.LoadEnchantOnScroll()
contrebasse@77 58 btn = CreateFrame("Button", nil, TradeSkillFrame, "UIPanelButtonTemplate")
contrebasse@77 59 btn:SetSize(168,22)
contrebasse@77 60 btn:SetPoint("TOPRIGHT",TradeSkillCreateButton,"TOPLEFT",0,0)
contrebasse@77 61 btn:SetText(A.L["Enchant on a scroll"])
contrebasse@77 62 btn:Show()
contrebasse@77 63
contrebasse@77 64 btn:SetScript("OnClick",function()
contrebasse@77 65 -- from http://wowprogramming.com/utils/xmlbrowser/live/AddOns/Blizzard_TradeSkillUI/Blizzard_TradeSkillUI.xml
contrebasse@77 66 DoTradeSkill(TradeSkillFrame.selectedSkill,1)
contrebasse@77 67
contrebasse@77 68 -- From GnomeWorks/ScrollMaking.lua
contrebasse@77 69 UseItemByName(SCROLL_ID)
contrebasse@77 70 end)
contrebasse@77 71 end