comparison EnchantOnScroll.lua @ 77:cd36938d2a48

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