vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 ENERGYWATCH_VERSION = "EnergyWatch v2 1.4"
2  
3 ENERGYWATCH_TIMER_START = 0
4 ENERGYWATCH_TIMER_END = 0
5  
6 ENERGYWATCH_TICK_LENGTH = 2
7  
8 ENERGYWATCH_ALPHA_STEP = 0.2
9  
10 ENERGYWATCH_ENERGY = nil
11  
12 ENERGYWATCH_STATUS = 0
13  
14 ENERGYWATCH_TEXT = "Energy"
15  
16 ENERGYWATCH_SOUND = ""
17 ENERGYWATCH_DEFAULT_SOUND = "SPELLBOOKCLOSE"
18  
19 ENERGYWATCH_COMBO = 0
20  
21 ENERGYWATCH_INVERT = false
22  
23 ENERGYWATCH_SHOW = 0
24  
25 ENERGYWATCH_SCALE = 1
26  
27 ENERGYWATCH_PROFILE = ""
28  
29 EnergyWatch_Save = {}
30  
31 ENERGYWATCH_VARIABLES_LOADED = false
32  
33 ENERGYWATCH_VARIABLE_TIMER = 0
34  
35 ENERGYWATCH_SPARK_SIZE = 105;
36  
37 function EnergyWatch_OnLoad()
38 this:RegisterEvent("PLAYER_REGEN_ENABLED");
39 this:RegisterEvent("PLAYER_REGEN_DISABLED");
40 this:RegisterEvent("PLAYER_AURAS_CHANGED");
41 this:RegisterEvent("PLAYER_COMBO_POINTS");
42 this:RegisterEvent("UNIT_ENERGY");
43 this:RegisterEvent("UNIT_MAXENERGY");
44  
45 SLASH_ENERGYWATCH1 = "/energywatch";
46 SLASH_ENERGYWATCH2 = "/ew";
47 SlashCmdList["ENERGYWATCH"] = function(msg)
48 EnergyWatch_SlashCommandHandler(msg);
49 end
50  
51 ENERGYWATCH_ENERGY = UnitMana("player");
52  
53 DEFAULT_CHAT_FRAME:AddMessage(ENERGYWATCH_VERSION.." Loaded - /ew");
54 end
55  
56 function EnergyWatch_OnEvent(event)
57 if( ENERGYWATCH_STATUS == 0 ) then
58 return
59 end
60  
61 EnergyWatch_EventHandler[event](arg1, arg2, arg3, arg4, arg5);
62 end
63  
64 EnergyWatch_EventHandler = {}
65  
66 EnergyWatch_EventHandler["UNIT_ENERGY"] = function()
67 EnergyWatch_TextUpdate();
68 end
69  
70 EnergyWatch_EventHandler["UNIT_MAXENERGY"] = function()
71 EnergyWatch_TextUpdate();
72 end
73  
74 EnergyWatch_EventHandler["PLAYER_COMBO_POINTS"] = function()
75 ENERGYWATCH_COMBO = GetComboPoints();
76 EnergyWatch_TextUpdate();
77 end
78  
79 EnergyWatch_EventHandler["PLAYER_REGEN_ENABLED"] = function()
80 if ENERGYWATCH_SHOW > 0 then
81 EnergyWatchBar:Hide()
82 else
83 EnergyWatchBar:Show()
84 end
85 end
86  
87 EnergyWatch_EventHandler["PLAYER_REGEN_DISABLED"] = function()
88 if ( ENERGYWATCH_SHOW ~= 3 ) then
89 EnergyWatchBar:Show()
90 else
91 EnergyWatchBar:Hide()
92 end
93 end
94  
95 EnergyWatch_EventHandler["PLAYER_AURAS_CHANGED"] = function()
96  
97 if ( ENERGYWATCH_SHOW ~= 2 and ENERGYWATCH_SHOW ~= 3 ) then
98 return
99 end
100  
101 checkStealth()
102 end
103  
104 function checkStealth()
105 local i = 0
106 while GetPlayerBuffTexture(i) ~= nil do
107 -- check for rogue's stealth and druid's prowl
108 if GetPlayerBuffTexture(i) == "Interface\\Icons\\Ability_Stealth" or
109 GetPlayerBuffTexture(i) == "Interface\\Icons\\Ability_Ambush" then
110 EnergyWatchBar:Show()
111 return
112 else
113 i = i + 1
114 end
115 end
116 if not UnitAffectingCombat("player") then
117 EnergyWatchBar:Hide()
118 end
119 end
120  
121 function EnergyWatch_SlashCommandHandler(msg)
122 if( msg ) then
123 local command = string.lower(msg);
124 if( command == "on" ) then
125 if( ENERGYWATCH_STATUS == 0 ) then
126 ENERGYWATCH_STATUS = 1;
127 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = ENERGYWATCH_STATUS;
128 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch enabled");
129 EnergyWatchBar:Show();
130 end
131 elseif( command == "off" ) then
132 if( ENERGYWATCH_STATUS ~= 0 ) then
133 ENERGYWATCH_STATUS = 0;
134 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = ENERGYWATCH_STATUS;
135 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch disabled");
136 EnergyWatchBar:Hide();
137 end
138 elseif( command == "unlock" ) then
139 if( ENERGYWATCH_STATUS ~= 2 ) then
140 ENERGYWATCH_STATUS = 2;
141 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = ENERGYWATCH_STATUS;
142 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch unlocked");
143 end
144 elseif( command == "lock" ) then
145 if( ENERGYWATCH_STATUS == 2 ) then
146 ENERGYWATCH_STATUS = 1;
147 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = ENERGYWATCH_STATUS;
148 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch locked");
149 end
150 elseif( command == "clear" ) then
151 local pn = UnitName("player");
152 if(pn ~= nil and pn ~= UNKNOWNBEING and pn ~= UKNOWNBEING and pn ~= UNKNOWNOBJECT) then
153 ENERGYWATCH_PROFILE = pn .. " of " .. GetCVar("RealmName");
154 EnergyWatch_Save[ENERGYWATCH_PROFILE] = nil;
155 ENERGYWATCH_VARIABLES_LOADED = false;
156 EnergyWatch_LoadVariables(2);
157 else
158 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch: World not yet loaded, please wait...")
159 end
160  
161 elseif( string.sub(command,1,4) == "text" ) then
162 if( string.len(command) > 5 ) then
163 ENERGYWATCH_TEXT = string.sub(msg,6);
164 else
165 ENERGYWATCH_TEXT = "";
166 end
167 EnergyWatch_Save[ENERGYWATCH_PROFILE].text = ENERGYWATCH_TEXT;
168 EnergyWatch_TextUpdate();
169 elseif( string.sub(command,1,5) == "sound" ) then
170 local args = string.sub(command, 7);
171 if( string.len(args) > 0 ) then
172 if( args == "on" ) then
173 ENERGYWATCH_SOUND = ENERGYWATCH_DEFAULT_SOUND;
174 elseif( args == "off" ) then
175 ENERGYWATCH_SOUND = "";
176 else
177 ENERGYWATCH_SOUND = args;
178 end
179 EnergyWatch_Save[ENERGYWATCH_PROFILE].sound = ENERGYWATCH_SOUND;
180 else
181 if( ENERGYWATCH_SOUND == "" ) then
182 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch sound is off");
183 elseif( ENERGYWATCH_SOUND == ENERGYWATCH_DEFAULT_SOUND ) then
184 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch sound is on");
185 else
186 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch sound is "..ENERGYWATCH_SOUND);
187 end
188 end
189 elseif( command == "invert" ) then
190 ENERGYWATCH_INVERT = not ENERGYWATCH_INVERT;
191 EnergyWatch_Save[ENERGYWATCH_PROFILE].invert = ENERGYWATCH_INVERT;
192 if ENERGYWATCH_INVERT then
193 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch inversion on");
194 else
195 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch inversion off");
196 end
197 elseif( command == "show always") then
198 EnergyWatch_Save[ENERGYWATCH_PROFILE].show = 0;
199 ENERGYWATCH_SHOW = EnergyWatch_Save[ENERGYWATCH_PROFILE].show
200 if ENERGYWATCH_STATUS ~= 0 then
201 EnergyWatchBar:Show()
202 end
203 elseif( command == "show combat") then
204 EnergyWatch_Save[ENERGYWATCH_PROFILE].show = 1;
205 ENERGYWATCH_SHOW = EnergyWatch_Save[ENERGYWATCH_PROFILE].show
206 if ENERGYWATCH_STATUS ~= 0 then
207 if UnitAffectingCombat("player") then
208 EnerbyWatchBar:Show()
209 else
210 EnergyWatchBar:Hide()
211 end
212 end
213 elseif( command == "show stealth" or command == "show stealthonly" ) then
214 if ( command == "show stealth" ) then
215 EnergyWatch_Save[ENERGYWATCH_PROFILE].show = 2;
216 else
217 EnergyWatch_Save[ENERGYWATCH_PROFILE].show = 3;
218 end
219 ENERGYWATCH_SHOW = EnergyWatch_Save[ENERGYWATCH_PROFILE].show
220 local i = 0
221 while GetPlayerBuffTexture(i) ~= nil do
222 if GetPlayerBuffTexture(i) == "Interface\\Icons\\Ability_Stealth" then
223 EnergyWatchBar:Show()
224 return
225 else
226 i = i + 1
227 end
228 end
229 if UnitAffectingCombat("player") then
230 EnergyWatchBar:Show()
231 else
232 EnergyWatchBar:Hide()
233 end
234 elseif( string.sub(command, 1, 5) == "scale" ) then
235 local scale = tonumber(string.sub(command, 7))
236 if( scale <= 3.0 and scale >= 0.25 ) then
237 EnergyWatch_Save[ENERGYWATCH_PROFILE].scale = scale;
238 ENERGYWATCH_SCALE = scale;
239 EnergyWatchBar:SetScale(ENERGYWATCH_SCALE * UIParent:GetScale());
240 DEFAULT_CHAT_FRAME:AddMessage("EnergyWatch scale set to "..scale);
241 else
242 EnergyWatch_Help()
243 end
244 elseif( command == "help text" ) then
245 EnergyWatch_HelpText();
246 elseif( command == "help show" ) then
247 EnergyWatch_HelpShow();
248 else
249 EnergyWatch_Help();
250 end
251 end
252 end
253  
254 --function EnergyWatch_OnShow()
255 -- ENERGYWATCH_ENERGY = UnitMana("player");
256 -- ENERGYWATCH_TIMER_START = GetTime();
257 -- ENERGYWATCH_TIMER_END = ENERGYWATCH_TIMER_START + ENERGYWATCH_TICK_LENGTH;
258 -- EnergyWatchFrameStatusBar:SetMinMaxValues(ENERGYWATCH_TIMER_START, ENERGYWATCH_TIMER_END);
259 -- EnergyWatchFrameStatusBar:SetValue(ENERGYWATCH_TIMER_START);
260 -- EnergyWatchSpark:SetPoint("CENTER", "EnergyWatchFrameStatusBar", "LEFT", 0, 0);
261 --
262 --end
263  
264 function EnergyWatch_OnUpdate()
265 if( ENERGYWATCH_STATUS == 0 ) then
266 return;
267 end
268  
269 local Energy = UnitMana("player")
270 local Status = GetTime()
271 local sparkPosition = 1;
272  
273  
274 if( Energy > ENERGYWATCH_ENERGY or Status >= ENERGYWATCH_TIMER_END) then
275 if( ENERGYWATCH_SOUND ~= "" ) then
276 PlaySound(ENERGYWATCH_SOUND);
277 end
278 ENERGYWATCH_ENERGY = Energy;
279 ENERGYWATCH_TIMER_START = Status;
280 ENERGYWATCH_TIMER_END = Status + ENERGYWATCH_TICK_LENGTH;
281 else
282 if( ENERGYWATCH_ENERGY ~= Energy ) then
283 ENERGYWATCH_ENERGY = Energy;
284 end
285  
286 -- Edited by Mike Davis 09/22/05
287 sparkPosition = ((Status - ENERGYWATCH_TIMER_START) / (ENERGYWATCH_TIMER_END - ENERGYWATCH_TIMER_START)) * ENERGYWATCH_SPARK_SIZE;
288 if ENERGYWATCH_INVERT then
289 sparkPosition = ENERGYWATCH_SPARK_SIZE - sparkPosition;
290 end
291 -- End of Edit
292 end
293 EnergyWatchFrameStatusBar:SetMinMaxValues(ENERGYWATCH_TIMER_START, ENERGYWATCH_TIMER_END);
294 if ENERGYWATCH_INVERT then
295 EnergyWatchFrameStatusBar:SetValue(ENERGYWATCH_TIMER_START + ENERGYWATCH_TIMER_END - Status);
296 else
297 EnergyWatchFrameStatusBar:SetValue(Status);
298 end
299 if( sparkPosition < 1 ) then
300 sparkPosition = 1;
301 end
302 EnergyWatchSpark:SetPoint("CENTER", "EnergyWatchFrameStatusBar", "LEFT", sparkPosition, 0);
303 end
304  
305 function EnergyWatch_LoadVariables(arg1)
306 if ENERGYWATCH_VARIABLES_LOADED then
307 return
308 end
309  
310 ENERGYWATCH_VARIABLE_TIMER = ENERGYWATCH_VARIABLE_TIMER + arg1
311 if ENERGYWATCH_VARIABLE_TIMER < 0.2 then
312 return
313 end
314 ENERGYWATCH_VARIABLE_TIMER = 0;
315  
316 local playerName=UnitName("player")
317 if playerName==nil or playerName==UNKNOWNBEING or playerName==UKNOWNBEING or playerName==UNKNOWNOBJECT then
318 return
319 end
320  
321 ENERGYWATCH_PROFILE = playerName.." of "..GetCVar("RealmName");
322  
323 if EnergyWatch_Save[ENERGYWATCH_PROFILE] == nil then
324 EnergyWatch_Save[ENERGYWATCH_PROFILE] = { };
325 if EW_Save ~= nil and EW_Save[ENERGYWATCH_PROFILE] ~= nil then
326 if EW_Save[ENERGYWATCH_PROFILE].status ~= nil then
327 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = EW_Save[ENERGYWATCH_PROFILE].status;
328 EW_Save[ENERGYWATCH_PROFILE].status = nil
329 end
330 if EW_Save[ENERGYWATCH_PROFILE].text ~= nil then
331 EnergyWatch_Save[ENERGYWATCH_PROFILE].text = EW_Save[ENERGYWATCH_PROFILE].text;
332 EW_Save[ENERGYWATCH_PROFILE].text = nil
333 end
334 if EW_Save[ENERGYWATCH_PROFILE].sound ~= nil then
335 EnergyWatch_Save[ENERGYWATCH_PROFILE].sound = EW_Save[ENERGYWATCH_PROFILE].sound;
336 EW_Save[ENERGYWATCH_PROFILE].sound = nil
337 end
338 if EW_Save[ENERGYWATCH_PROFILE] == { } then
339 EW_Save[ENERGYWATCH_PROFILE] = nil;
340 end
341 if EW_Save == { } then
342 EW_Save = nil;
343 end
344 end
345 end
346  
347 if EnergyWatch_Save[ENERGYWATCH_PROFILE].status == nil then
348 EnergyWatch_Save[ENERGYWATCH_PROFILE].status = 0;
349 end
350 if EnergyWatch_Save[ENERGYWATCH_PROFILE].text == nil then
351 EnergyWatch_Save[ENERGYWATCH_PROFILE].text = "Energy";
352 end
353 if EnergyWatch_Save[ENERGYWATCH_PROFILE].sound == nil then
354 EnergyWatch_Save[ENERGYWATCH_PROFILE].sound = "";
355 end
356 if EnergyWatch_Save[ENERGYWATCH_PROFILE].sound == nil then
357 EnergyWatch_Save[ENERGYWATCH_PROFILE].invert = false;
358 end
359 if EnergyWatch_Save[ENERGYWATCH_PROFILE].show == nil then
360 EnergyWatch_Save[ENERGYWATCH_PROFILE].show = 0;
361 end
362 if EnergyWatch_Save[ENERGYWATCH_PROFILE].scale == nil then
363 EnergyWatch_Save[ENERGYWATCH_PROFILE].scale = 1;
364 end
365  
366 ENERGYWATCH_SOUND = EnergyWatch_Save[ENERGYWATCH_PROFILE].sound;
367 ENERGYWATCH_TEXT = EnergyWatch_Save[ENERGYWATCH_PROFILE].text;
368 ENERGYWATCH_STATUS = EnergyWatch_Save[ENERGYWATCH_PROFILE].status;
369 ENERGYWATCH_INVERT = EnergyWatch_Save[ENERGYWATCH_PROFILE].invert;
370 ENERGYWATCH_SHOW = EnergyWatch_Save[ENERGYWATCH_PROFILE].show;
371 ENERGYWATCH_SCALE = EnergyWatch_Save[ENERGYWATCH_PROFILE].scale;
372  
373 EnergyWatchBar:SetScale(ENERGYWATCH_SCALE * UIParent:GetScale());
374  
375 if( ENERGYWATCH_STATUS ~= 0 ) then
376 if ENERGYWATCH_SHOW == 0 then
377 EnergyWatchBar:Show();
378 end
379 else
380 EnergyWatchBar:Hide();
381 end
382 EnergyWatch_TextUpdate();
383  
384 ENERGYWATCH_VARIABLES_LOADED = true;
385 EnergyWatch_Variable_Frame:Hide();
386  
387 checkStealth()
388 end
389  
390 function EnergyWatch_TextUpdate()
391 local ewtext = ENERGYWATCH_TEXT
392 ewtext,_ = string.gsub(ewtext,"&em", UnitManaMax("player"))
393 ewtext,_ = string.gsub(ewtext,"&e", UnitMana("player"))
394 ewtext,_ = string.gsub(ewtext,"&c", ENERGYWATCH_COMBO)
395  
396 EnergyWatchText:SetText(ewtext);
397 end
398  
399 function EnergyWatch_Help()
400 DEFAULT_CHAT_FRAME:AddMessage(ENERGYWATCH_VERSION.." : Usage - /ew option");
401 DEFAULT_CHAT_FRAME:AddMessage(" options:");
402 DEFAULT_CHAT_FRAME:AddMessage(" on : Enables EnergyWatch");
403 DEFAULT_CHAT_FRAME:AddMessage(" off : Disables EnergyWatch");
404 DEFAULT_CHAT_FRAME:AddMessage(" unlock : Allows you to move EnergyWatch");
405 DEFAULT_CHAT_FRAME:AddMessage(" lock : Locks EnergyWatch");
406 DEFAULT_CHAT_FRAME:AddMessage(" sound _ : Sets Sound on/off or custom");
407 DEFAULT_CHAT_FRAME:AddMessage(" invert : Invert progress bar direction");
408 DEFAULT_CHAT_FRAME:AddMessage(" scale _ : Scales EnergyWatch (0.25 - 3.0)");
409 DEFAULT_CHAT_FRAME:AddMessage(" help _ : Prints help for certain options (below)");
410 DEFAULT_CHAT_FRAME:AddMessage(" text _ : Sets the text on EnergyWatch");
411 DEFAULT_CHAT_FRAME:AddMessage(" show _ : Set when EnergyWatch should be shown")
412 end
413  
414 function EnergyWatch_HelpText()
415 DEFAULT_CHAT_FRAME:AddMessage(ENERGYWATCH_VERSION.." : Usage - /ew text string");
416 DEFAULT_CHAT_FRAME:AddMessage(" the string may contain a few special replacements:");
417 DEFAULT_CHAT_FRAME:AddMessage(" &e : Current Energy");
418 DEFAULT_CHAT_FRAME:AddMessage(" &em : Maximum Energy");
419 DEFAULT_CHAT_FRAME:AddMessage(" &c : Combo Points");
420 end
421  
422 function EnergyWatch_HelpShow()
423 DEFAULT_CHAT_FRAME:AddMessage(ENERGYWATCH_VERSION.." : Usage - /ew show option");
424 DEFAULT_CHAT_FRAME:AddMessage(" options:");
425 DEFAULT_CHAT_FRAME:AddMessage(" always : Always shown");
426 DEFAULT_CHAT_FRAME:AddMessage(" combat : Shown in Combat");
427 DEFAULT_CHAT_FRAME:AddMessage(" stealth : Shown in Combat and while Stealthed");
428 end