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