vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 local init_done
2  
3 -- SetTex
4 local highlightPositions = {{0, 0.25, 0, 0.5}, {0.25, 0.75, 0, 0.5}, {0, 1, 0.5, 1}, {0.75, 1, 0, 0.5}}
5 local function SetTex(frame, num)
6 if (XPerlConfig.HighlightSelection == 1) then
7 frame:SetHighlightTexture("Interface\\Addons\\XPerl\\images\\XPerl_Highlight", "ADD")
8 local p = highlightPositions[num]
9 local tex = frame:GetHighlightTexture()
10 tex:SetTexCoord(p[1], p[2], p[3], p[4])
11 tex:SetVertexColor(0.86, 0.82, 0.41)
12 else
13 frame:SetHighlightTexture("")
14 end
15 end
16  
17 -- RegisterHighlight
18 local HighlightFrames = {}
19 function XPerl_RegisterHighlight(frame, ratio)
20 HighlightFrames[frame] = ratio
21 if (init_done) then
22 SetTex(frame, ratio)
23 end
24 end
25  
26 -- XPerl_SetHighlights
27 function XPerl_SetHighlights()
28 for k,v in pairs(HighlightFrames) do
29 SetTex(k, v)
30 end
31 end
32  
33 -- SetupUnitFrame
34 local function SetupUnitFrame(argFrame)
35 argFrame:SetBackdropBorderColor(XPerlConfig.BorderColour.r, XPerlConfig.BorderColour.g, XPerlConfig.BorderColour.b, XPerlConfig.BorderColour.a); --, XPerlConfig.Transparency)
36 argFrame:SetBackdropColor(XPerlConfig.BackColour.r, XPerlConfig.BackColour.g, XPerlConfig.BackColour.b, XPerlConfig.BackColour.a); --XPerlConfig.Transparency)
37 end
38  
39 -- SetupUnitFrameList
40 local function SetupUnitFrameList(frame, subList)
41 if (type(subList) == "table") then
42 frame:SetAlpha(XPerlConfig.Transparency)
43  
44 for k,v in pairs(subList) do
45 local f = getglobal(frame:GetName().."_"..v)
46 if (f) then
47 SetupUnitFrame(f)
48 end
49 end
50 else
51 SetupUnitFrame(frame)
52 end
53 end
54  
55 -- XPerl_RegisterUnitFrame(frame)
56 local UnitFrames = {}
57 function XPerl_RegisterPerlFrames(frame, subList)
58 if (not subList) then
59 subList = true
60 end
61 UnitFrames[frame] = subList
62  
63 if (init_done) then
64 SetupUnitFrameList(frame, subList)
65 end
66 end
67  
68 -- XPerl_SetupAllPerlFrames
69 function XPerl_SetupAllPerlFrames(frame)
70 for k,v in pairs(UnitFrames) do
71 SetupUnitFrameList(k, v)
72 end
73 end
74  
75 -- XPerl_SetAllFrames
76 function XPerl_SetAllFrames()
77 XPerl_SetupAllPerlFrames()
78 XPerl_SetHighlights()
79  
80 if (Perl_Player_Frame) then Perl_Player_PVPRankIcon:SetAlpha(0.3) end
81 if (Perl_Target_Frame) then Perl_Target_PVPRankIcon:SetAlpha(0.3) end
82 if (Perl_TargetTarget) then Perl_TargetTarget_NameFrame_PVPRankIcon:SetAlpha(0.3) end
83 if (Perl_TargetTargetTarget) then Perl_TargetTargetTarget_NameFrame_PVPRankIcon:SetAlpha(0.3) end
84 end
85  
86 -- Buff Tooltip Hook
87 local oldGameTooltipSetPlayerBuff
88  
89 local function XPerl_GameTooltipSetPlayerBuff(self, id)
90 oldGameTooltipSetPlayerBuff(self, id)
91 XPerl_ToolTip_AddBuffDuration("player", self)
92 end
93  
94 -- XPerl_Init()
95 function XPerl_Init()
96 init_done = true
97 if (GameTooltip.SetPlayerBuff ~= XPerl_GameTooltipSetPlayerBuff) then
98 oldGameTooltipSetPlayerBuff = GameTooltip.SetPlayerBuff
99 GameTooltip.SetPlayerBuff = XPerl_GameTooltipSetPlayerBuff
100 end
101  
102 -- Check for eCastbar and disable old frame if used.
103 if (eCastingBar_Saved and eCastingBar_Player and eCastingBar_Saved[eCastingBar_Player].Enabled == 1) then
104 XPerlConfig.OldCastBar = 0
105 elseif (BCastBar and BCastingBar and BCastBarDragButton) then
106 XPerlConfig.OldCastBar = 0
107 end
108  
109 if (XPerl_Player) then
110 XPerl_Player:Show()
111 end
112  
113 XPerl_OptionActions()
114 XPerl_SlashOnLoad()
115  
116 local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo("PerlButton")
117 if (name and enabled) then
118 DisableAddOn("PerlButton")
119 XPerl_Notice("Disabled 'PerlButton' addon. It is not compatible or needed with X-Perl")
120 -- PerlButton was made for Nymbia's Perl UnitFrames. We have our own minimap button
121 end
122  
123 local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo("CT_PartyBuffs")
124 if (name and enabled) then
125 XPerl_Notice("Disable 'CT_PartyBuffs' addon. It is not compatible with X-Perl, and creates display issues.")
126 end
127 if (CT_PartyBuffFrame1) then
128 CT_PartyBuffFrame1:Hide()
129 CT_PartyBuffFrame2:Hide()
130 CT_PartyBuffFrame3:Hide()
131 CT_PartyBuffFrame4:Hide()
132 CT_PetBuffFrame:Hide()
133 end
134  
135 if (EarthFeature_AddButton) then
136 local button = {}
137 button.name = XPerl_ProductName
138 button.icon = XPerl_ModMenuIcon
139 button.subtext = "By "..XPerl_Author
140 button.tooltip = XPerl_LongDescription
141 button.callback = XPerl_Toggle
142 EarthFeature_AddButton (button)
143 end
144  
145 if(CT_RegisterMod) then
146 CT_RegisterMod(XPerl_ProductName.." "..XPerl_VersionNumber, "By "..XPerl_Author, 4, XPerl_ModMenuIcon, XPerl_LongDescription, "switch", "", XPerl_Toggle)
147 end
148  
149 if (myAddOnsFrame) then
150 myAddOnsList.XPerl_Description = {
151 name = XPerl_Description,
152 description = XPerl_LongDescription,
153 version = XPerl_VersionNumber,
154 category = MYADDONS_CATEGORY_OTHERS,
155 frame = "XPerl_Globals",
156 optionsframe = "XPerl_Options"
157 }
158 end
159  
160 if (GroupHeal and GroupHeal.HealButtons) then
161 -- Fix button placement on party frames for GroupHeal addon (worked for Nybmia,
162 -- but we have our party targets in that old position
163 for k, v in GroupHeal.HealButtons[1] do
164 v:ClearAllPoints()
165 v:SetPoint("TOPLEFT", getglobal(v:GetParent():GetName().."_StatsFrame"), "BOTTOMRIGHT", 0, 2)
166 end
167 end
168  
169 if (not strfind("Zek Hek Zeks Zekked Zekstuff Pooksie", UnitName("player")) or GetRealmName() ~= "Bloodhoof") then
170 XPerl_ShowMessage = function() end
171 end
172  
173 XPerl_Init = nil
174 end
175  
176 -- XPerl_StatsFrame_Setup
177 function XPerl_StatsFrameSetup(StatsFrame, others, offset)
178  
179 if (not StatsFrame) then
180 return
181 end
182  
183 local healthBar = getglobal(StatsFrame:GetName().."_HealthBar")
184 local healthBarText = getglobal(StatsFrame:GetName().."_HealthBarText")
185 local healthBarPercent = getglobal(StatsFrame:GetName().."_HealthBarPercent")
186 local manaBar = getglobal(StatsFrame:GetName().."_ManaBar")
187 local manaBarPercent = getglobal(StatsFrame:GetName().."_ManaBarPercent")
188 local otherBars = {}
189 local secondaryBarsShown = 0
190 local showPercent = 0
191 if (healthBarPercent:IsShown() or manaBarPercent:IsShown()) then
192 showPercent = 1
193 end
194 local percentSize = showPercent * 35; -- 0 means 0, 1 means 32 offset (+3 for spacing after text), which is our size difference
195  
196 offset = (offset or 0)
197  
198 if (manaBar:IsShown()) then
199 secondaryBarsShown = secondaryBarsShown + 1
200 end
201  
202 local needTicker = 0
203 if (XPerlConfig.EnergyTicker == 1 and StatsFrame == XPerl_Player_StatsFrame and UnitPowerType("player") == 3) then
204 needTicker = 1
205 end
206  
207 if (others) then
208 for i,other in pairs(others) do
209 local bar = getglobal(StatsFrame:GetName().."_"..other)
210 if (bar) then
211 tinsert(otherBars, bar)
212  
213 if (bar:IsShown()) then
214 secondaryBarsShown = secondaryBarsShown + 1
215 end
216 else
217 if (not bar) then XPerl_Notice("No frame found called '"..StatsFrame:GetName().."_"..other.."'"); end
218 end
219 end
220 end
221  
222 if (XPerlConfig.FatHealthBars == 1) then
223 if (StatsFrame == XPerl_Player_Pet_StatsFrame) then
224 healthBarText:SetFontObject(GameFontNormalSmall)
225 else
226 healthBarText:SetFontObject(GameFontNormal)
227 end
228  
229 healthBar:ClearAllPoints()
230 healthBar:SetPoint("TOPLEFT", 5, -5)
231 healthBar:SetPoint("BOTTOMRIGHT", -(5 + percentSize), 5 + needTicker + (secondaryBarsShown * 10))
232  
233 manaBar:ClearAllPoints()
234 manaBar:SetPoint("BOTTOMLEFT", 5, -5 + needTicker + (secondaryBarsShown * 10))
235 manaBar:SetPoint("TOPRIGHT", healthBar, "BOTTOMRIGHT", 0, 0)
236  
237 local lastBar = manaBar
238 local tickerSpace = needTicker * 2
239 for i,bar in pairs(otherBars) do
240 if (bar:IsShown()) then
241 bar:ClearAllPoints()
242  
243 bar:SetPoint("TOPLEFT", lastBar, "BOTTOMLEFT", 0, -tickerSpace)
244 bar:SetPoint("BOTTOMRIGHT", lastBar, "BOTTOMRIGHT", 0, -10 - tickerSpace)
245  
246 lastBar = bar
247 tickerSpace = 0
248 end
249 end
250 else
251 healthBarText:SetFontObject(GameFontNormalSmall)
252  
253 healthBar:ClearAllPoints()
254 healthBar:SetPoint("TOPLEFT", 8, -9 + offset)
255 healthBar:SetPoint("BOTTOMRIGHT", StatsFrame, "TOPRIGHT", -(8 + percentSize), -19 + offset)
256  
257 manaBar:ClearAllPoints()
258 manaBar:SetPoint("TOPLEFT", healthBar, "BOTTOMLEFT", 0, -2)
259 manaBar:SetPoint("BOTTOMRIGHT", healthBar, "BOTTOMRIGHT", 0, -12)
260  
261 local lastBar = manaBar
262 for i,bar in pairs(otherBars) do
263 if (bar:IsShown()) then
264 bar:ClearAllPoints()
265  
266 bar:SetPoint("TOPLEFT", lastBar, "BOTTOMLEFT", 0, -2)
267 bar:SetPoint("BOTTOMRIGHT", lastBar, "BOTTOMRIGHT", 0, -12)
268  
269 lastBar = bar
270 end
271 end
272 end
273 end
274  
275 -- XPerl_Setup_StatsFrames
276 function XPerl_Setup_StatsFrames()
277  
278 XPerl_StatsFrameSetup(XPerl_Player_StatsFrame, {"DruidBar", "XPBar"})
279 XPerl_StatsFrameSetup(XPerl_Player_Pet_StatsFrame, {"XPBar"}, 2)
280  
281 XPerl_StatsFrameSetup(XPerl_Target_StatsFrame)
282 XPerl_StatsFrameSetup(XPerl_TargetTarget_StatsFrame)
283 XPerl_StatsFrameSetup(XPerl_TargetTargetTarget_StatsFrame)
284  
285 for i = 1,4 do
286 XPerl_StatsFrameSetup(getglobal("XPerl_party"..i.."_StatsFrame"))
287 XPerl_StatsFrameSetup(getglobal("XPerl_partypet"..i.."_StatsFrame"), nil, 2)
288 end
289 end
290  
291 -- XPerl_SetTransparency
292 local function XPerl_SetTransparency(num)
293 local function Alpha(unit)
294 if (UnitIsConnected(unit)) then
295 return num
296 else
297 return num / 2
298 end
299 end
300  
301 local function SetAlpha(f, a)
302 if (f) then
303 f:SetAlpha(a)
304 end
305 end
306  
307 SetAlpha(XPerl_Player, num)
308 SetAlpha(XPerl_Target, Alpha("target"))
309 SetAlpha(XPerl_TargetTarget, num)
310 SetAlpha(XPerl_TargetTargetTarget, num)
311 SetAlpha(XPerl_party1, Alpha("party1"))
312 SetAlpha(XPerl_party2, Alpha("party2"))
313 SetAlpha(XPerl_party3, Alpha("party3"))
314 SetAlpha(XPerl_party4, Alpha("party4"))
315 SetAlpha(XPerl_partypet1, Alpha("party1"))
316 SetAlpha(XPerl_partypet2, Alpha("party2"))
317 SetAlpha(XPerl_partypet3, Alpha("party3"))
318 SetAlpha(XPerl_partypet4, Alpha("party4"))
319 SetAlpha(XPerl_Player_Pet, num)
320 SetAlpha(XPerl_ArcaneBarFrame, num/2)
321 end
322  
323 -- XPerl_SetTextTransparency
324 local function XPerl_SetTextTransparency(num)
325 local function SetFrame(frame)
326 local f = getglobal(frame)
327  
328 if (f) then
329 f:SetTextColor(1,1,1,XPerlConfig.TextTransparency)
330 end
331 end
332  
333 local function SetSubFrames(frame)
334 local subFrames = {"HealthBarText", "HealthBarPercent", "ManaBarText", "ManaBarPercent"}
335  
336 for j,f in pairs(subFrames) do
337 local n = frame.."_StatsFrame_"..f
338 SetFrame(n)
339 end
340 end
341  
342 local statFrames = {"XPerl_Player", "XPerl_Player_Pet", "XPerl_Target", "XPerl_TargetTarget", "XPerl_TargetTargetTarget",
343 "XPerl_party1", "XPerl_party2", "XPerl_party3", "XPerl_party4",
344 "XPerl_partypet1", "XPerl_partypet2", "XPerl_partypet3", "XPerl_partypet4"}
345  
346 for i,f in pairs(statFrames) do
347 SetSubFrames(f)
348 end
349  
350 if (XPerl_Player) then
351 XPerl_Player_StatsFrame_DruidBarText:SetTextColor(1,1,1,XPerlConfig.TextTransparency)
352 XPerl_Player_StatsFrame_DruidBarPercent:SetTextColor(1,1,1,XPerlConfig.TextTransparency)
353 XPerl_Player_StatsFrame_XPBarText:SetTextColor(1,1,1,XPerlConfig.TextTransparency)
354 XPerl_Player_StatsFrame_XPBarPercent:SetTextColor(1,1,1,XPerlConfig.TextTransparency)
355 end
356 end
357  
358 -- XPerl_GetBarTexture
359 function XPerl_GetBarTexture()
360 if (XPerlConfig.BarTextures == 1) then
361 return "Interface\\AddOns\\XPerl\\Images\\XPerl_StatusBar"
362 elseif (XPerlConfig.BarTextures == 2) then
363 return "Interface\\AddOns\\XPerl\\Images\\XPerl_StatusBar2"
364 elseif (XPerlConfig.BarTextures == 3) then
365 return "Interface\\AddOns\\XPerl\\Images\\XPerl_StatusBar3"
366 else
367 return "Interface\\TargetingFrame\\UI-StatusBar"
368 end
369 end
370  
371 -- Set1Bar
372 local function Set1Bar(bar, tex)
373 local f = getglobal(bar:GetName().."Tex")
374 if (f) then
375 f:SetTexture(tex)
376 end
377 f = getglobal(bar:GetName().."BG")
378 if (f) then
379 if (XPerlConfig.BackgroundTextures == 1) then
380 f:SetTexture(tex)
381 else
382 f:SetTexture("Interface\\TargetingFrame\\UI-StatusBar")
383 end
384 end
385 end
386  
387 -- XPerl_RegisterBar
388 local XPerlBars = {}
389 function XPerl_RegisterBar(bar)
390 tinsert(XPerlBars, bar)
391 if (init_done) then
392 local tex = XPerl_GetBarTexture()
393 Set1Bar(bar, tex)
394 end
395 end
396  
397 -- XPerl_SetBarTextures
398 function XPerl_SetBarTextures()
399 local tex = XPerl_GetBarTexture()
400 for k,v in pairs(XPerlBars) do
401 Set1Bar(v, tex)
402 end
403 end
404  
405 -- SetCastParty
406 local function SetCastParty()
407 if (CastPartyMainFrame) then
408 CastPartyMainFrame:Hide()
409 elseif (CastPartyFrame0 and CastPartyFrame1 and CastPartyFrame2) then
410 CastPartyFrame0:Hide()
411 CastPartyFrame1:Hide()
412 CastPartyFrame2:Hide()
413 end
414 end
415  
416 -- XPerl_OptionActions()
417 function XPerl_OptionActions()
418  
419 local function ValidAlpha(alpha)
420 alpha = tonumber(alpha)
421 if (alpha < 0 or alpha > 1) then
422 alpha = 1
423 end
424 return alpha
425 end
426  
427 local function ValidScale(scale)
428 scale = tonumber(scale)
429 if (scale < 0.5) then
430 scale = 0.5
431 elseif (scale > XPerlConfig.MaximumScale) then
432 scale = XPerlConfig.MaximumScale
433 end
434 return scale
435 end
436  
437 if (XPerl_Player) then
438 XPerl_Player_Set_Bits()
439 end
440 if (XPerl_Player_Pet) then
441 XPerl_Player_Pet_Set_Bits()
442 end
443 if (XPerl_Target) then
444 XPerl_Target_Set_Bits()
445 XPerl_Target_Set_BlizzCPFrame()
446 end
447 if (XPerl_TargetTarget) then
448 XPerl_TargetTarget_Set_Bits()
449 end
450 if (XPerl_party1) then
451 XPerl_Party_Set_Bits()
452 end
453 if (XPerl_partypet1) then
454 XPerl_Party_Pet_Set_Name()
455 end
456  
457 XPerlConfig.Transparency = ValidAlpha(XPerlConfig.Transparency)
458  
459 XPerlConfig.TextTransparency = ValidAlpha(XPerlConfig.TextTransparency)
460 XPerl_SetTextTransparency(XPerlConfig.TextTransparency)
461  
462 XPerlConfig.Scale_PlayerFrame = ValidScale(XPerlConfig.Scale_PlayerFrame)
463 if (XPerl_Player) then
464 XPerl_Player:SetScale(XPerlConfig.Scale_PlayerFrame)
465 end
466  
467 XPerlConfig.Scale_PetFrame = ValidScale(XPerlConfig.Scale_PetFrame)
468 if (XPerl_Player_Pet) then
469 XPerl_Player_Pet:SetScale(XPerlConfig.Scale_PetFrame)
470 end
471  
472 XPerlConfig.Scale_PartyFrame = ValidScale(XPerlConfig.Scale_PartyFrame)
473 if (XPerl_ScaleParty) then
474 XPerl_ScaleParty(XPerlConfig.Scale_PartyFrame)
475 end
476  
477 XPerlConfig.Scale_PartyPets = ValidScale(XPerlConfig.Scale_PartyPets)
478 if (XPerl_ScalePartyPets) then
479 XPerl_ScalePartyPets(XPerlConfig.Scale_PartyPets)
480 end
481  
482 XPerlConfig.Scale_TargetFrame = ValidScale(XPerlConfig.Scale_TargetFrame)
483 XPerlConfig.Scale_TargetTargetFrame = ValidScale(XPerlConfig.Scale_TargetTargetFrame)
484 if (XPerl_Target) then
485 XPerl_Target:SetScale(XPerlConfig.Scale_TargetFrame)
486 end
487 if (XPerl_ScaleTargetTarget) then
488 XPerl_ScaleTargetTarget(XPerlConfig.Scale_TargetTargetFrame)
489 end
490  
491 XPerlConfig.Scale_Raid = ValidScale(XPerlConfig.Scale_Raid)
492 if (XPerl_ScaleRaid) then
493 XPerl_ScaleRaid(XPerlConfig.Scale_Raid)
494 end
495  
496 if (XPerl_ArcaneBarFrame) then
497 XPerl_ArcaneBar_Set()
498 end
499  
500 SetCastParty()
501 XPerl_SetBarTextures()
502 XPerl_Setup_StatsFrames()
503  
504 XPerl_SetAllFrames()
505 XPerl_SetTransparency(XPerlConfig.Transparency)
506  
507 if (XPerl_Player) then XPerl_Player_UpdateDisplay() end
508 if (XPerl_Player_Pet_UpdateDisplay) then XPerl_Player_Pet_UpdateDisplay () end
509 if (XPerl_Target) then XPerl_Target_UpdateDisplay() end
510 if (XPerl_TargetTarget) then
511 XPerl_TargetTarget_UpdateDisplay(XPerl_TargetTarget)
512 if (XPerl_TargetTargetTarget) then
513 XPerl_TargetTarget_UpdateDisplay(XPerl_TargetTargetTarget)
514 end
515 end
516  
517 if (XPerl_party1) then XPerl_Party_UpdateDisplayAll() end
518 if (XPerl_partypet1) then XPerl_Party_Pet_UpdateDisplayAll() end
519  
520 if (XPerl_Raid_Position) then
521 if (XPerl_raid1) then
522 XPerl_Raid_Set_Bits()
523 XPerl_Raid_Position()
524 XPerl_RaidTitles()
525 end
526 end
527 end