Mercurial > wow > reagentmaker
view 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 |
line wrap: on
line source
local addonName, A = ... local SCROLL_ID = 38682 local ENCHANTING_ID = 7411 local btn local EventsFrame = CreateFrame("Frame",nil,TradeSkillFrame) -- It will be hidden with the TradeSkillFrame local function CheckButtonAvailable(arg1) if not btn then return end -- Do not manage guild tradeskill -- Check that we're still with the enchanting tradeskill if IsTradeSkillGuild() or IsTradeSkillLinked() or GetTradeSkillLine() ~= GetSpellInfo(ENCHANTING_ID) then btn:Hide() return end -- Check that the selected recipe can be crafted, and the crafted thing is an enchant local index = GetTradeSkillSelectionIndex() if not index then btn:Disable() btn:Show() return end local _, _, numAvailable, _, serviceType = GetTradeSkillInfo(index) -- serviceType is localised, but nil if an item is created if not serviceType then btn:Hide() return end if numAvailable==0 or not serviceType then btn:Disable() btn:Show() return end -- Check that there's scrolls in the bags local itemCount = GetItemCount(SCROLL_ID) if not itemCount or itemCount==0 then btn:Disable() btn:Show() return end -- It passed the tests btn:Enable() btn:Show() end EventsFrame:SetScript("OnEvent",CheckButtonAvailable) EventsFrame:RegisterEvent("BAG_UPDATE") hooksecurefunc("SelectTradeSkill",CheckButtonAvailable) function A.LoadEnchantOnScroll() btn = CreateFrame("Button", nil, TradeSkillFrame, "UIPanelButtonTemplate") btn:SetSize(168,22) btn:SetPoint("TOPRIGHT",TradeSkillCreateButton,"TOPLEFT",0,0) btn:SetText(A.L["Enchant on a scroll"]) btn:Show() btn:SetScript("OnClick",function() -- from http://wowprogramming.com/utils/xmlbrowser/live/AddOns/Blizzard_TradeSkillUI/Blizzard_TradeSkillUI.xml DoTradeSkill(TradeSkillFrame.selectedSkill,1) -- From GnomeWorks/ScrollMaking.lua UseItemByName(SCROLL_ID) end) end