| contrebasse@98 | 1 local addonName, A = ... | 
| contrebasse@98 | 2 | 
| contrebasse@98 | 3 local CAMPFIRE_ID = 818 | 
| contrebasse@98 | 4 local COOKING_ID = 2550 | 
| contrebasse@98 | 5 local btn | 
| contrebasse@98 | 6 local cookingName | 
| contrebasse@98 | 7 | 
| contrebasse@98 | 8 -- Create button | 
| contrebasse@98 | 9 function A.InitialiseCampFireBtn() | 
| contrebasse@98 | 10 	-- create the frame | 
| contrebasse@98 | 11 	btn = CreateFrame("Button", nil, TradeSkillFrame, "SecureActionButtonTemplate") | 
| contrebasse@98 | 12 	btn:SetNormalTexture(select(3,GetSpellInfo(CAMPFIRE_ID))) | 
| contrebasse@98 | 13 	btn:SetSize(24,24) | 
| contrebasse@98 | 14 	btn:SetPoint("BOTTOMRIGHT",TradeSkillFrame,"BOTTOMRIGHT",-10,179) | 
| contrebasse@98 | 15 | 
| contrebasse@98 | 16 	-- Set the action | 
| contrebasse@98 | 17 	btn:SetAttribute("type", "spell") | 
| contrebasse@98 | 18 	btn:SetAttribute("spell", CAMPFIRE_ID) | 
| contrebasse@98 | 19 | 
| contrebasse@98 | 20 	-- Set the tooltip | 
| contrebasse@98 | 21 	btn:SetScript("OnEnter",function(self) | 
| contrebasse@98 | 22 		GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT") | 
| contrebasse@98 | 23 		GameTooltip:SetSpellByID(CAMPFIRE_ID) | 
| contrebasse@98 | 24 		GameTooltip:Show() | 
| contrebasse@98 | 25 	end) | 
| contrebasse@98 | 26 	btn:SetScript("OnLeave",function() GameTooltip:Hide(); end) | 
| contrebasse@98 | 27 | 
| contrebasse@98 | 28 	-- Add cooldown | 
| contrebasse@98 | 29 	btn.cooldown = CreateFrame("Cooldown",nil,btn) | 
| contrebasse@98 | 30 	btn.cooldown:SetAllPoints(btn) | 
| contrebasse@98 | 31 	local CooldownFrame_SetTimer = CooldownFrame_SetTimer | 
| contrebasse@98 | 32 	local GetSpellCooldown = GetSpellCooldown | 
| contrebasse@98 | 33 	btn:SetScript("OnUpdate",function(self) CooldownFrame_SetTimer(self.cooldown,GetSpellCooldown(CAMPFIRE_ID)); end) | 
| contrebasse@98 | 34 | 
| contrebasse@98 | 35 	-- Save info | 
| contrebasse@98 | 36 	cookingName = GetSpellInfo(COOKING_ID) | 
| contrebasse@101 | 37 | 
| contrebasse@98 | 38 	-- Show if needed | 
| contrebasse@98 | 39 	A.ManageCampFireBtn() | 
| contrebasse@98 | 40 end | 
| contrebasse@98 | 41 | 
| contrebasse@98 | 42 -- Hide button | 
| contrebasse@98 | 43 function A.HideCampFireBtn() | 
| contrebasse@101 | 44 	if btn then btn:Hide() end | 
| contrebasse@98 | 45 end | 
| contrebasse@98 | 46 | 
| contrebasse@98 | 47 -- Show button if applicable | 
| contrebasse@98 | 48 function A.ManageCampFireBtn() | 
| contrebasse@98 | 49 	if not btn then return end | 
| contrebasse@98 | 50 	-- Display only if the tradeskill is Cooking | 
| contrebasse@98 | 51 	local tradeskillName = GetTradeSkillLine() | 
| contrebasse@98 | 52 	if tradeskillName ~= cookingName then | 
| contrebasse@98 | 53 		btn:Hide() | 
| contrebasse@98 | 54 	else | 
| contrebasse@98 | 55 		btn:Show() | 
| contrebasse@98 | 56 	end | 
| contrebasse@98 | 57 end |