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@77
|
22 btn:Disable()
|
contrebasse@77
|
23 btn:Show()
|
contrebasse@77
|
24 return
|
contrebasse@77
|
25 end
|
contrebasse@77
|
26 local _, _, numAvailable, _, serviceType = GetTradeSkillInfo(index)
|
contrebasse@77
|
27
|
contrebasse@77
|
28 -- serviceType is localised, but nil if an item is created
|
contrebasse@77
|
29 if not serviceType then
|
contrebasse@77
|
30 btn:Hide()
|
contrebasse@77
|
31 return
|
contrebasse@77
|
32 end
|
contrebasse@77
|
33 if numAvailable==0 or not serviceType then
|
contrebasse@77
|
34 btn:Disable()
|
contrebasse@77
|
35 btn:Show()
|
contrebasse@77
|
36 return
|
contrebasse@77
|
37 end
|
contrebasse@77
|
38
|
contrebasse@77
|
39 -- Check that there's scrolls in the bags
|
contrebasse@77
|
40 local itemCount = GetItemCount(SCROLL_ID)
|
contrebasse@77
|
41 if not itemCount or itemCount==0 then
|
contrebasse@77
|
42 btn:Disable()
|
contrebasse@77
|
43 btn:Show()
|
contrebasse@77
|
44 return
|
contrebasse@77
|
45 end
|
contrebasse@77
|
46
|
contrebasse@77
|
47 -- It passed the tests
|
contrebasse@77
|
48 btn:Enable()
|
contrebasse@77
|
49 btn:Show()
|
contrebasse@77
|
50 end
|
contrebasse@77
|
51 EventsFrame:SetScript("OnEvent",CheckButtonAvailable)
|
contrebasse@77
|
52 EventsFrame:RegisterEvent("BAG_UPDATE")
|
contrebasse@77
|
53 hooksecurefunc("SelectTradeSkill",CheckButtonAvailable)
|
contrebasse@77
|
54
|
contrebasse@77
|
55 function A.LoadEnchantOnScroll()
|
contrebasse@77
|
56 btn = CreateFrame("Button", nil, TradeSkillFrame, "UIPanelButtonTemplate")
|
contrebasse@77
|
57 btn:SetSize(168,22)
|
contrebasse@77
|
58 btn:SetPoint("TOPRIGHT",TradeSkillCreateButton,"TOPLEFT",0,0)
|
contrebasse@77
|
59 btn:SetText(A.L["Enchant on a scroll"])
|
contrebasse@77
|
60 btn:Show()
|
contrebasse@77
|
61
|
contrebasse@77
|
62 btn:SetScript("OnClick",function()
|
contrebasse@77
|
63 -- from http://wowprogramming.com/utils/xmlbrowser/live/AddOns/Blizzard_TradeSkillUI/Blizzard_TradeSkillUI.xml
|
contrebasse@77
|
64 DoTradeSkill(TradeSkillFrame.selectedSkill,1)
|
contrebasse@77
|
65
|
contrebasse@77
|
66 -- From GnomeWorks/ScrollMaking.lua
|
contrebasse@77
|
67 UseItemByName(SCROLL_ID)
|
contrebasse@77
|
68 end)
|
contrebasse@77
|
69 end
|