vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 local module = ArcHUD:NewModule("Mana")
2 module.unit = "player"
3 module.defaults = {
4 Enabled = true,
5 Outline = true,
6 ShowText = true,
7 ShowPerc = true,
8 Side = 2,
9 Level = 0,
10 }
11 module.options = {
12 {name = "ShowText", text = "SHOWTEXT", tooltip = "SHOWTEXT"},
13 {name = "ShowPerc", text = "SHOWPERC", tooltip = "SHOWPERC"},
14 attach = true,
15 }
16 module.localized = true
17  
18 function module:Initialize()
19 -- Setup the frame we need
20 self.f = self:CreateRing(true, ArcHUDFrame)
21 self.f:SetAlpha(0)
22  
23 self.MPText = self:CreateFontString(self.f, "BACKGROUND", {150, 15}, 14, "LEFT", {1.0, 1.0, 0.0}, {"TOPLEFT", ArcHUDFrameCombo, "TOPRIGHT", 0, 0})
24 self.MPPerc = self:CreateFontString(self.f, "BACKGROUND", {40, 14}, 12, "LEFT", {1.0, 1.0, 1.0}, {"TOPLEFT", self.MPText, "BOTTOMLEFT", 0, 0})
25 end
26  
27 function module:Update()
28 if(self.db.profile.ShowText) then
29 self.MPText:Show()
30 else
31 self.MPText:Hide()
32 end
33  
34 if(self.db.profile.ShowPerc) then
35 self.MPPerc:Show()
36 else
37 self.MPPerc:Hide()
38 end
39  
40 if(self.db.profile.Outline) then
41 self.f.BG:Show()
42 else
43 self.f.BG:Hide()
44 end
45  
46 -- Clear all points for the ring
47 self.f:ClearAllPoints()
48 self.f:SetValue(0)
49 if(self.db.profile.Side == 1) then
50 -- Attach to left side
51 self.f:SetPoint("TOPLEFT", self.parent:GetModule("Anchors").Left, "TOPLEFT", self.db.profile.Level * -15, 0)
52 self.f.BG:SetReversed(false)
53 self.f:SetReversed(false)
54 else
55 -- Attach to right side
56 self.f:SetPoint("TOPRIGHT", self.parent:GetModule("Anchors").Right, "TOPRIGHT", self.db.profile.Level * 15, 0)
57 self.f.BG:SetReversed(true)
58 self.f:SetReversed(true)
59 end
60 self.f:SetValue(UnitMana(self.unit))
61 self.f.BG:SetAngle(180)
62 end
63  
64 function module:Enable()
65 self.f.pulse = false
66  
67 if(UnitIsGhost(self.unit)) then
68 self.f:GhostMode(true, self.unit)
69 else
70 self.f:GhostMode(false, self.unit)
71  
72 if (UnitPowerType(self.unit) == 0) then
73 info = { r = 0.00, g = 1.00, b = 1.00 }
74 else
75 info = ManaBarColor[UnitPowerType(self.unit)]
76 end
77 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
78 self.MPText:SetVertexColor(info.r, info.g, info.b)
79  
80 self.f:SetMax(UnitManaMax(self.unit))
81 self.f:SetValue(UnitMana(self.unit))
82 self.MPText:SetText(UnitMana(self.unit).."/"..UnitManaMax(self.unit))
83 self.MPPerc:SetText(floor((UnitMana(self.unit)/UnitManaMax(self.unit))*100).."%")
84 end
85  
86 -- Register the events we will use
87 self:RegisterEvent("UNIT_MANA", "UpdateMana")
88 self:RegisterEvent("UNIT_MAXMANA", "UpdateMana")
89 self:RegisterEvent("UNIT_ENERGY", "UpdateMana")
90 self:RegisterEvent("UNIT_MAXENERGY", "UpdateMana")
91 self:RegisterEvent("UNIT_RAGE", "UpdateMana")
92 self:RegisterEvent("UNIT_MAXRAGE", "UpdateMana")
93 self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateMana")
94 self:RegisterEvent("PLAYER_ALIVE", "UpdateMana")
95 self:RegisterEvent("PLAYER_LEVEL_UP")
96  
97 -- Activate the timers
98 self:StartMetro(self.name .. "Alpha")
99 self:StartMetro(self.name .. "Fade")
100 self:StartMetro(self.name .. "Update")
101  
102 self.f:Show()
103 end
104  
105 function module:PLAYER_LEVEL_UP()
106 self.f:SetMax(UnitManaMax(self.unit))
107 end
108  
109 function module:UpdateMana()
110 if (arg1 == self.unit) then
111 if(UnitIsGhost(self.unit) or (UnitIsDead(self.unit) and event == "PLAYER_ALIVE")) then
112 self.f:GhostMode(true, self.unit)
113 else
114 self.f:GhostMode(false, self.unit)
115  
116 if(event == "UNIT_DISPLAYPOWER") then
117 if(UnitPowerType(self.unit) == 0) then
118 info = { r = 0.00, g = 1.00, b = 1.00 }
119 else
120 info = ManaBarColor[UnitPowerType(self.unit)]
121 end
122 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
123 self.MPText:SetVertexColor(info.r, info.g, info.b)
124 end
125  
126 self.MPText:SetText(UnitMana(self.unit).."/"..UnitManaMax(self.unit))
127 self.MPPerc:SetText(floor((UnitMana(self.unit)/UnitManaMax(self.unit))*100).."%")
128  
129 self.f:SetMax(UnitManaMax(self.unit))
130 self.f:SetValue(UnitMana(self.unit))
131 end
132 end
133 end