vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |