annotate EnchantOnScroll.lua @ 86:d571fa85e1b5

Added tag v1.0beta4 for changeset 996aaa818d04
author contrebasse
date Sun, 15 May 2011 12:46:22 +0200
parents cd36938d2a48
children d2b4b378bea4
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@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