Mercurial > wow > reagentmaker
diff CampFireButton.lua @ 98:b980c00affcd
Added a button to cast a campfire
I got a problem with newlines and merging with a non-Mercurial repository, I hope noting broke...
author | contrebasse |
---|---|
date | Fri, 20 May 2011 18:32:43 +0200 |
parents | |
children | 060f5d0f7a35 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CampFireButton.lua Fri May 20 18:32:43 2011 +0200 @@ -0,0 +1,57 @@ +local addonName, A = ... + +local CAMPFIRE_ID = 818 +local COOKING_ID = 2550 +local btn +local cookingName + +-- Create button +function A.InitialiseCampFireBtn() + -- create the frame + btn = CreateFrame("Button", nil, TradeSkillFrame, "SecureActionButtonTemplate") + btn:SetNormalTexture(select(3,GetSpellInfo(CAMPFIRE_ID))) + btn:SetSize(24,24) + btn:SetPoint("BOTTOMRIGHT",TradeSkillFrame,"BOTTOMRIGHT",-10,179) + + -- Set the action + btn:SetAttribute("type", "spell") + btn:SetAttribute("spell", CAMPFIRE_ID) + + -- Set the tooltip + btn:SetScript("OnEnter",function(self) + GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT") + GameTooltip:SetSpellByID(CAMPFIRE_ID) + GameTooltip:Show() + end) + btn:SetScript("OnLeave",function() GameTooltip:Hide(); end) + + -- Add cooldown + btn.cooldown = CreateFrame("Cooldown",nil,btn) + btn.cooldown:SetAllPoints(btn) + local CooldownFrame_SetTimer = CooldownFrame_SetTimer + local GetSpellCooldown = GetSpellCooldown + btn:SetScript("OnUpdate",function(self) CooldownFrame_SetTimer(self.cooldown,GetSpellCooldown(CAMPFIRE_ID)); end) + + -- Save info + cookingName = GetSpellInfo(COOKING_ID) + + -- Show if needed + A.ManageCampFireBtn() +end + +-- Hide button +function A.HideCampFireBtn() + btn:Hide() +end + +-- Show button if applicable +function A.ManageCampFireBtn() + if not btn then return end + -- Display only if the tradeskill is Cooking + local tradeskillName = GetTradeSkillLine() + if tradeskillName ~= cookingName then + btn:Hide() + else + btn:Show() + end +end