contrebasse@43
|
1 local AddonName, T = ...
|
contrebasse@5
|
2 -- Draw your weapons automagically
|
contrebasse@0
|
3
|
contrebasse@12
|
4
|
contrebasse@12
|
5 ---------------------------------------------------------------
|
contrebasse@12
|
6 -- Known bugs
|
contrebasse@12
|
7 ---------------------------------------------------------------
|
contrebasse@10
|
8 -- If you stand up by jumping or walking it won't draw your weapon
|
contrebasse@10
|
9 -- (it's not possible to know if you were sitting or standing before)
|
contrebasse@0
|
10
|
contrebasse@5
|
11 --@debug@
|
contrebasse@56
|
12 local debug = false
|
contrebasse@52
|
13 local debugAll = false
|
contrebasse@5
|
14 --@end-debug@
|
contrebasse@0
|
15
|
contrebasse@12
|
16
|
contrebasse@5
|
17 ---------------------------------------------------------------
|
contrebasse@5
|
18 -- Globals to local
|
contrebasse@5
|
19 ---------------------------------------------------------------
|
contrebasse@21
|
20 -- These need to be globals :
|
contrebasse@54
|
21 -- GLOBALS: Degaine_ToggleAuto, Degaine_isAuto, BINDING_HEADER_DEGAINE, BINDING_NAME_DEGAINE_TOGGLE
|
contrebasse@0
|
22
|
contrebasse@21
|
23 -- It doesn't matter if they are globals, rarely unsed :
|
contrebasse@14
|
24 -- GLOBALS: DEFAULT_CHAT_FRAME
|
contrebasse@5
|
25
|
contrebasse@5
|
26 -- Lua functions
|
contrebasse@0
|
27 local pairs = pairs;
|
contrebasse@0
|
28 local type = type;
|
contrebasse@35
|
29 local select = select
|
contrebasse@53
|
30 local wipe = wipe
|
contrebasse@0
|
31
|
contrebasse@5
|
32 -- Wow functions
|
contrebasse@14
|
33 local GetTime = GetTime
|
contrebasse@5
|
34 local InCombatLockdown = InCombatLockdown
|
contrebasse@20
|
35 local UnitName = UnitName
|
contrebasse@24
|
36 local IsMounted = IsMounted
|
contrebasse@33
|
37 local UnitCastingInfo = UnitCastingInfo
|
contrebasse@35
|
38 local GetUnitSpeed = GetUnitSpeed
|
contrebasse@53
|
39 local UnitBuff = UnitBuff
|
contrebasse@56
|
40 -- The hook has to be done before registering the local reference
|
contrebasse@56
|
41 local t_lastDegaine = 0 -- Time of the last draw
|
contrebasse@56
|
42 hooksecurefunc("ToggleSheath",function()
|
contrebasse@56
|
43 t_lastDegaine = GetTime()
|
contrebasse@56
|
44 end);
|
contrebasse@56
|
45 local ToggleSheath = ToggleSheath
|
contrebasse@0
|
46
|
contrebasse@0
|
47
|
contrebasse@5
|
48 ---------------------------------------------------------------
|
contrebasse@8
|
49 -- Local vars
|
contrebasse@8
|
50 ---------------------------------------------------------------
|
contrebasse@8
|
51 -- const
|
contrebasse@8
|
52 local DegaineFrame = CreateFrame("Frame")
|
contrebasse@8
|
53 local playername = UnitName("player")
|
contrebasse@35
|
54 local delay = 2.5 -- seconds
|
contrebasse@35
|
55 local delay_short = 0.5 -- seconds
|
contrebasse@8
|
56
|
contrebasse@8
|
57 -- vars
|
contrebasse@8
|
58 local t_left = -1
|
contrebasse@14
|
59 local isGossipClosed = true
|
contrebasse@14
|
60 local wasGossipOpened = false
|
contrebasse@14
|
61 local t_lastGossipClosed = 0
|
contrebasse@34
|
62 --local wasMounted = IsMounted() -- handle mounts with UNIT_AURA
|
contrebasse@33
|
63 local isTradeSkill = false
|
contrebasse@8
|
64
|
contrebasse@12
|
65
|
contrebasse@8
|
66 ---------------------------------------------------------------
|
contrebasse@5
|
67 -- Some stuff...
|
contrebasse@5
|
68 ---------------------------------------------------------------
|
contrebasse@5
|
69 -- Print status
|
contrebasse@5
|
70 local printState = function()
|
contrebasse@49
|
71 DEFAULT_CHAT_FRAME:AddMessage(Degaine_isAuto and T.L["PRINT_ENABLED"] or T.L["PRINT_DISABLED"])
|
contrebasse@5
|
72 end
|
contrebasse@5
|
73
|
contrebasse@5
|
74
|
contrebasse@5
|
75 ---------------------------------------------------------------
|
contrebasse@28
|
76 -- Launch drawing weapons
|
contrebasse@28
|
77 ---------------------------------------------------------------
|
contrebasse@56
|
78
|
contrebasse@28
|
79 -- Wait a few seconds before drawing, to be able to see the curren animation (and avoid bugs)
|
contrebasse@28
|
80 local Degaine_OnUpdate = function(self,t_elapsed)
|
contrebasse@28
|
81 t_left = t_left - t_elapsed;
|
contrebasse@28
|
82 if t_left<=0 then
|
contrebasse@28
|
83 ToggleSheath()
|
contrebasse@28
|
84 DegaineFrame:SetScript("OnUpdate", nil)
|
contrebasse@28
|
85 end
|
contrebasse@28
|
86 end
|
contrebasse@32
|
87 local start = function(arg_delay)
|
contrebasse@43
|
88
|
contrebasse@43
|
89 --@debug@
|
contrebasse@43
|
90 --DEFAULT_CHAT_FRAME:AddMessage("Go !")
|
contrebasse@43
|
91 --@end-debug@
|
contrebasse@43
|
92
|
contrebasse@47
|
93 if Degaine_isAuto and (GetTime()-t_lastDegaine)>1 and not InCombatLockdown() then
|
contrebasse@32
|
94 t_left = arg_delay or delay
|
contrebasse@28
|
95 DegaineFrame:SetScript("OnUpdate", Degaine_OnUpdate)
|
contrebasse@28
|
96 end
|
contrebasse@28
|
97 end
|
contrebasse@28
|
98
|
contrebasse@28
|
99
|
contrebasse@28
|
100 ---------------------------------------------------------------
|
contrebasse@5
|
101 -- Events config
|
contrebasse@5
|
102 ---------------------------------------------------------------
|
contrebasse@5
|
103 -- Events to watch
|
contrebasse@5
|
104 local events = { -- no args to watch
|
contrebasse@14
|
105 GOSSIP_SHOW = function()
|
contrebasse@19
|
106 -- isGossipClosed :
|
contrebasse@19
|
107 -- if the gossip is already opened, no need to draw weapon
|
contrebasse@19
|
108 -- UnitName("npc")==UnitName("target") :
|
contrebasse@19
|
109 -- hack gossips again because there's no emote with non npc
|
contrebasse@19
|
110 -- you have to target the npc to interact with it
|
contrebasse@19
|
111 -- things such as boards can't be targeted and start no emote
|
contrebasse@17
|
112 local returnvalue = isGossipClosed and UnitName("npc")==UnitName("target")
|
contrebasse@14
|
113 isGossipClosed = false
|
contrebasse@14
|
114 return returnvalue
|
contrebasse@14
|
115 end,
|
contrebasse@14
|
116 MERCHANT_SHOW = function()
|
contrebasse@19
|
117 -- hack for the cases where the merchant's frame is opened from a gossip frame :
|
contrebasse@19
|
118 -- the gossip is closed and the merchant opened but the weapon is not stealthed
|
contrebasse@14
|
119 if (GetTime() - t_lastGossipClosed) < 0.5 then
|
contrebasse@14
|
120 return not wasGossipOpened
|
contrebasse@14
|
121 else
|
contrebasse@14
|
122 return isGossipClosed
|
contrebasse@14
|
123 end
|
contrebasse@14
|
124 end,
|
contrebasse@41
|
125 QUEST_PROGRESS = true,
|
contrebasse@11
|
126 BANKFRAME_OPENED = true, --function() return GossipFrame:IsShown() end,
|
contrebasse@0
|
127 AUCTION_HOUSE_SHOW = true,
|
contrebasse@5
|
128 }
|
contrebasse@5
|
129 local events1player = { -- the first arg is "player"
|
contrebasse@5
|
130 UNIT_SPELLCAST_FAILED = true,
|
contrebasse@5
|
131 UNIT_SPELLCAST_INTERRUPTED = true,
|
contrebasse@5
|
132 UNIT_SPELLCAST_SUCCEEDED = true,
|
contrebasse@33
|
133 UNIT_SPELLCAST_START = true, -- to ckeck tradeskill
|
contrebasse@5
|
134 }
|
contrebasse@31
|
135
|
contrebasse@43
|
136 --[[
|
contrebasse@43
|
137 -- Was used when moving prevented to play the emote when talking
|
contrebasse@43
|
138 -- Was needed for CHAT_MSG_SAY and CHAT_MSG_YELL
|
contrebasse@35
|
139 local function playerIsNotMoving()
|
contrebasse@35
|
140 return GetUnitSpeed("player") == 0
|
contrebasse@35
|
141 end
|
contrebasse@43
|
142 --]]
|
contrebasse@5
|
143 local events2playername = { -- the 2nd arg is playername
|
contrebasse@43
|
144 CHAT_MSG_SAY = true,
|
contrebasse@43
|
145 CHAT_MSG_YELL = true,
|
contrebasse@35
|
146 CHAT_MSG_TEXT_EMOTE = true, -- the emote is not shown, but the weapon is stealthed
|
contrebasse@5
|
147 }
|
contrebasse@0
|
148
|
contrebasse@0
|
149
|
contrebasse@5
|
150 ---------------------------------------------------------------
|
contrebasse@24
|
151 -- Handle mounts with OnUpdate
|
contrebasse@24
|
152 ---------------------------------------------------------------
|
contrebasse@24
|
153 -- works with GupPet but not with the default interface...
|
contrebasse@24
|
154 -- I guess that's because a specific /cancelaura or alike is done
|
contrebasse@24
|
155 -- hooksecurefunc("Dismount",start);
|
contrebasse@24
|
156
|
contrebasse@28
|
157 -- With OnUpdate
|
contrebasse@24
|
158 local handleMountsFrame = CreateFrame("frame")
|
contrebasse@24
|
159 local handleMountsOnUpdate
|
contrebasse@24
|
160 do
|
contrebasse@24
|
161 local IsMounted = IsMounted
|
contrebasse@24
|
162 local wasMounted = IsMounted()
|
contrebasse@53
|
163 local buffsIDs = {}
|
contrebasse@24
|
164 function handleMountsOnUpdate(self,t_elapsed)
|
contrebasse@24
|
165 if IsMounted() then
|
contrebasse@24
|
166 wasMounted = true
|
contrebasse@24
|
167 else
|
contrebasse@24
|
168 if wasMounted then
|
contrebasse@35
|
169 start(delay_short) -- no animation for unmounting
|
contrebasse@24
|
170 wasMounted = false
|
contrebasse@24
|
171 end
|
contrebasse@24
|
172 end
|
contrebasse@53
|
173
|
contrebasse@53
|
174 -- hack to watch auras too
|
contrebasse@53
|
175 -- Loop over all buffs
|
contrebasse@53
|
176 -- name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable,
|
contrebasse@53
|
177 -- shouldConsolidate, spellId = UnitBuff("unit", index or ["name", "rank"][, "filter"])
|
contrebasse@53
|
178 local i = 1
|
contrebasse@53
|
179 -- list player's buffs
|
contrebasse@53
|
180 local buffID = select(11,UnitBuff("player", i)); -- spell id
|
contrebasse@53
|
181 while buffID do
|
contrebasse@53
|
182 buffsIDs[buffID] = true
|
contrebasse@53
|
183 i = i + 1;
|
contrebasse@53
|
184 buffID = select(11,UnitBuff("player", i));
|
contrebasse@53
|
185 end
|
contrebasse@53
|
186 --[[
|
contrebasse@53
|
187 for i=1,40 do
|
contrebasse@53
|
188 buffID = select(11,UnitBuff("player", i));
|
contrebasse@53
|
189 if buffID then
|
contrebasse@53
|
190 buffsIDs[buffID] = true
|
contrebasse@53
|
191 end
|
contrebasse@53
|
192 end
|
contrebasse@53
|
193 --]]
|
contrebasse@53
|
194 --@debug@
|
contrebasse@53
|
195 --if debug then
|
contrebasse@53
|
196 -- DEFAULT_CHAT_FRAME:AddMessage(""..i-1.."Buff(s) found")
|
contrebasse@53
|
197 --end
|
contrebasse@53
|
198 --@end-debug@
|
contrebasse@53
|
199
|
contrebasse@53
|
200 -- loop over watched buffs to check if it is present or not
|
contrebasse@53
|
201 -- we have to loop over T.LoseAura (and not buffsIDs) to be able to check for buff disappearance
|
contrebasse@53
|
202 for id,state in pairs(T.LoseAura) do
|
contrebasse@53
|
203 if buffsIDs[id] then
|
contrebasse@53
|
204 if not T.LoseAura[id] then
|
contrebasse@53
|
205 -- buff gained
|
contrebasse@53
|
206 --@debug@
|
contrebasse@53
|
207 if debug then
|
contrebasse@53
|
208 DEFAULT_CHAT_FRAME:AddMessage("Buff gained: "..id)
|
contrebasse@53
|
209 end
|
contrebasse@53
|
210 --@end-debug@
|
contrebasse@53
|
211 T.LoseAura[id] = true
|
contrebasse@53
|
212 end
|
contrebasse@53
|
213 else
|
contrebasse@53
|
214 if T.LoseAura[id] then
|
contrebasse@53
|
215 -- buff lost
|
contrebasse@53
|
216 --@debug@
|
contrebasse@53
|
217 if debug then
|
contrebasse@53
|
218 DEFAULT_CHAT_FRAME:AddMessage("Buff lost: "..id)
|
contrebasse@53
|
219 end
|
contrebasse@53
|
220 --@end-debug@
|
contrebasse@53
|
221 T.LoseAura[id] = false
|
contrebasse@53
|
222
|
contrebasse@53
|
223 -- draw weapon
|
contrebasse@53
|
224 start()
|
contrebasse@53
|
225 end
|
contrebasse@53
|
226 end
|
contrebasse@53
|
227 end
|
contrebasse@53
|
228
|
contrebasse@53
|
229 -- empty temporary table
|
contrebasse@53
|
230 wipe(buffsIDs)
|
contrebasse@24
|
231 end
|
contrebasse@24
|
232 end
|
contrebasse@5
|
233
|
contrebasse@12
|
234
|
contrebasse@5
|
235 ---------------------------------------------------------------
|
contrebasse@5
|
236 -- Activation functions
|
contrebasse@5
|
237 ---------------------------------------------------------------
|
contrebasse@5
|
238 local activate = function()
|
contrebasse@5
|
239 if (not Degaine_isAuto) or InCombatLockdown() then return end
|
contrebasse@5
|
240
|
contrebasse@9
|
241 --DegaineFrame:SetScript("OnUpdate", Degaine_OnUpdate);
|
contrebasse@5
|
242 --@debug@
|
contrebasse@52
|
243 if debugAll then
|
contrebasse@11
|
244 DegaineFrame:RegisterAllEvents()
|
contrebasse@5
|
245 else
|
contrebasse@5
|
246 --@end-debug@
|
contrebasse@18
|
247 for k,_ in pairs(events) do DegaineFrame:RegisterEvent(k) end
|
contrebasse@18
|
248 for k,_ in pairs(events1player) do DegaineFrame:RegisterEvent(k) end
|
contrebasse@18
|
249 for k,_ in pairs(events2playername) do DegaineFrame:RegisterEvent(k) end
|
contrebasse@28
|
250 --DegaineFrame:RegisterEvent("UNIT_AURA")
|
contrebasse@28
|
251 handleMountsFrame:SetScript("OnUpdate",handleMountsOnUpdate)
|
contrebasse@39
|
252 --@debug@
|
contrebasse@5
|
253 end
|
contrebasse@5
|
254 --@end-debug@
|
contrebasse@0
|
255 end
|
contrebasse@5
|
256 local desactivate = function()
|
contrebasse@24
|
257 DegaineFrame:SetScript("OnUpdate", nil)
|
contrebasse@24
|
258 t_left = -1
|
contrebasse@37
|
259 isTradeSkill = false
|
contrebasse@18
|
260 for k,_ in pairs(events) do DegaineFrame:UnregisterEvent(k) end
|
contrebasse@18
|
261 for k,_ in pairs(events1player) do DegaineFrame:UnregisterEvent(k) end
|
contrebasse@18
|
262 for k,_ in pairs(events2playername) do DegaineFrame:UnregisterEvent(k) end
|
contrebasse@28
|
263 --DegaineFrame:UnregisterEvent("UNIT_AURA")
|
contrebasse@28
|
264 handleMountsFrame:SetScript("OnUpdate",nil)
|
contrebasse@0
|
265 end
|
contrebasse@6
|
266 Degaine_ToggleAuto = function()
|
contrebasse@5
|
267 if Degaine_isAuto then
|
contrebasse@5
|
268 Degaine_isAuto = false
|
contrebasse@5
|
269 desactivate()
|
contrebasse@5
|
270 else
|
contrebasse@5
|
271 Degaine_isAuto = true
|
contrebasse@5
|
272 activate()
|
contrebasse@5
|
273 end
|
contrebasse@5
|
274 printState()
|
contrebasse@5
|
275 end
|
contrebasse@0
|
276
|
contrebasse@5
|
277
|
contrebasse@24
|
278
|
contrebasse@5
|
279 ---------------------------------------------------------------
|
contrebasse@5
|
280 -- Event/hooks functions
|
contrebasse@5
|
281 ---------------------------------------------------------------
|
contrebasse@12
|
282 local Degaine_OnEvent = function(self,event, arg1, arg2, _, _, arg5, ...)
|
contrebasse@5
|
283 --@debug@
|
contrebasse@41
|
284 if debug then
|
contrebasse@41
|
285 DEFAULT_CHAT_FRAME:AddMessage(event)
|
contrebasse@41
|
286 if arg1 then DEFAULT_CHAT_FRAME:AddMessage("arg1 = "..arg1) end
|
contrebasse@41
|
287 if arg2 then DEFAULT_CHAT_FRAME:AddMessage("arg2 = "..arg2) end
|
contrebasse@41
|
288 end
|
contrebasse@5
|
289 --@end-debug@
|
contrebasse@5
|
290
|
contrebasse@28
|
291 --[[ IsMounted() renvoie toujours false ici, on doit passer par OnUpdate
|
contrebasse@28
|
292 if event=="UNIT_AURA" then
|
contrebasse@28
|
293 if arg1=="player" then
|
contrebasse@28
|
294 DEFAULT_CHAT_FRAME:AddMessage("player")
|
contrebasse@28
|
295 if IsMounted() then
|
contrebasse@28
|
296 DEFAULT_CHAT_FRAME:AddMessage("ismounted")
|
contrebasse@28
|
297 wasMounted = true
|
contrebasse@28
|
298 else
|
contrebasse@28
|
299 DEFAULT_CHAT_FRAME:AddMessage("notmounted")
|
contrebasse@28
|
300 if wasMounted then
|
contrebasse@28
|
301 DEFAULT_CHAT_FRAME:AddMessage("wasmounted : start")
|
contrebasse@28
|
302 wasMounted = false
|
contrebasse@28
|
303 start()
|
contrebasse@28
|
304 end
|
contrebasse@28
|
305 end
|
contrebasse@28
|
306 end
|
contrebasse@28
|
307 else
|
contrebasse@28
|
308 --]]
|
contrebasse@12
|
309 if events[event] then
|
contrebasse@12
|
310 if type(events[event])~="function" or events[event]() then
|
contrebasse@12
|
311 start()
|
contrebasse@12
|
312 end
|
contrebasse@12
|
313 elseif events1player[event] then
|
contrebasse@12
|
314 if arg1=="player" then
|
contrebasse@33
|
315 if event == "UNIT_SPELLCAST_START" then
|
contrebasse@33
|
316 --name, nameSubtext, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible = UnitCastingInfo("unit")
|
contrebasse@33
|
317 isTradeSkill = select(7,UnitCastingInfo("player"))
|
contrebasse@33
|
318 --DEFAULT_CHAT_FRAME:AddMessage(name)
|
contrebasse@33
|
319 --DEFAULT_CHAT_FRAME:AddMessage(isTradeSkill and "True" or "False")
|
contrebasse@33
|
320 --if isTradeSkill then
|
contrebasse@33
|
321
|
contrebasse@33
|
322 --end
|
contrebasse@44
|
323 --elseif arg5 and not T.SpellBlackList[arg5] then -- arg5 is SpellID
|
contrebasse@44
|
324 elseif (arg5 and T.SpellWhiteList[arg5]) or isTradeSkill then -- arg5 is SpellID
|
contrebasse@33
|
325 isTradeSkill = false -- for next time
|
contrebasse@44
|
326 start(type(T.SpellWhiteList[arg5])=="number" and T.SpellWhiteList[arg5] or delay_short)
|
contrebasse@12
|
327 end
|
contrebasse@12
|
328 end
|
contrebasse@12
|
329 elseif events2playername[event] then
|
contrebasse@35
|
330 if arg2==playername and (type(events2playername[event])~="function" or events2playername[event]()) then
|
contrebasse@12
|
331 start()
|
contrebasse@12
|
332 end
|
contrebasse@14
|
333 elseif event == "GOSSIP_CLOSED" then
|
contrebasse@14
|
334 wasGossipOpened = not isGossipClosed
|
contrebasse@14
|
335 isGossipClosed = true
|
contrebasse@14
|
336 t_lastGossipClosed = GetTime()
|
contrebasse@5
|
337
|
contrebasse@0
|
338 elseif event == "PLAYER_REGEN_ENABLED" then
|
contrebasse@21
|
339 for k,_ in pairs(events1player) do DegaineFrame:UnregisterEvent(k) end
|
contrebasse@21
|
340 --desactivate()
|
contrebasse@0
|
341 elseif event == "PLAYER_REGEN_DISABLED" then
|
contrebasse@22
|
342 for k,_ in pairs(events1player) do DegaineFrame:RegisterEvent(k) end
|
contrebasse@22
|
343 --activate()
|
contrebasse@5
|
344
|
contrebasse@0
|
345 elseif event == "ADDON_LOADED" and arg1==AddonName then
|
contrebasse@5
|
346 if Degaine_isAuto==nil then
|
contrebasse@5
|
347 Degaine_isAuto = true
|
contrebasse@0
|
348 end
|
contrebasse@11
|
349 if Degaine_isAuto then activate() else desactivate() end
|
contrebasse@5
|
350 printState()
|
contrebasse@5
|
351
|
contrebasse@5
|
352 -- Not needed anymore
|
contrebasse@5
|
353 DegaineFrame:UnregisterEvent("ADDON_LOADED")
|
contrebasse@31
|
354
|
contrebasse@31
|
355 elseif event == "PLAYER_LOGIN" then
|
contrebasse@44
|
356 -- BLacklis alomst all Companions and mounts
|
contrebasse@44
|
357 T.DoBlackListCrittersAndMount()
|
contrebasse@0
|
358 end
|
contrebasse@0
|
359 end
|
contrebasse@31
|
360
|
contrebasse@5
|
361 -- Hook when standing up
|
contrebasse@5
|
362 -- (Didn't work, see http://forums.wowace.com/showthread.php?p=310547#post310547)
|
contrebasse@8
|
363 hooksecurefunc("SitStandOrDescendStart",start);
|
contrebasse@0
|
364
|
contrebasse@0
|
365
|
contrebasse@6
|
366 ---------------------------------------------------------------
|
contrebasse@6
|
367 -- Commands
|
contrebasse@6
|
368 ---------------------------------------------------------------
|
contrebasse@6
|
369 -- Bindings
|
contrebasse@49
|
370 BINDING_HEADER_DEGAINE = T.L["BINDING_HEADER"]
|
contrebasse@49
|
371 BINDING_NAME_DEGAINE_TOGGLE = T.L["BINDING_NAME_DEGAINE_TOGGLE"]
|
contrebasse@6
|
372
|
contrebasse@6
|
373 -- Slash command
|
contrebasse@7
|
374 -- GLOBALS: SLASH_DEGAINE1
|
contrebasse@7
|
375 SLASH_DEGAINE1 = "/degaine"
|
contrebasse@6
|
376 SlashCmdList["DEGAINE"] = Degaine_ToggleAuto
|
contrebasse@6
|
377
|
contrebasse@5
|
378
|
contrebasse@5
|
379 ---------------------------------------------------------------
|
contrebasse@5
|
380 -- Initialization
|
contrebasse@5
|
381 ---------------------------------------------------------------
|
contrebasse@5
|
382 DegaineFrame:SetScript("OnEvent",Degaine_OnEvent)
|
contrebasse@5
|
383
|
contrebasse@5
|
384 -- Global events
|
contrebasse@14
|
385 DegaineFrame:RegisterEvent("GOSSIP_CLOSED")
|
contrebasse@5
|
386 DegaineFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
contrebasse@5
|
387 DegaineFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
contrebasse@5
|
388 DegaineFrame:RegisterEvent("ADDON_LOADED")
|
contrebasse@31
|
389 DegaineFrame:RegisterEvent("PLAYER_LOGIN")
|
contrebasse@5
|
390 activate()
|