vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 local module = ArcHUD:NewModule("PetMana")
2 module.unit = "pet"
3 module.defaults = {
4 Enabled = true,
5 Outline = true,
6 ShowPerc = true,
7 }
8 module.options = {
9 {name = "ShowPerc", text = "SHOWPERC", tooltip = "SHOWPERC"},
10 }
11 module.localized = true
12  
13 function module:Initialize()
14 -- Setup the frame we need
15 self.f = self:CreateRing(true, ArcHUDFrame)
16  
17 self.f.BG:SetReversed(true)
18 self.f.BG:SetAngle(180)
19  
20 self.f:SetReversed(true)
21 self.f:SetAlpha(0)
22 self.f:SetScale(0.6)
23  
24 self.f:SetPoint("TOPLEFT", self.parent:GetModule("Anchors").Right, "LEFT", 0, 90)
25  
26 self.MPPerc = self:CreateFontString(self.f, "BACKGROUND", {100, 17}, 16, "LEFT", {1.0, 1.0, 1.0}, {"BOTTOMLEFT", self.f, "BOTTOMLEFT", 65, -125})
27 end
28  
29 function module:Update()
30 if(self.db.profile.ShowPerc) then
31 self.MPPerc:Show()
32 else
33 self.MPPerc:Hide()
34 end
35  
36 if(self.db.profile.Outline) then
37 self.f.BG:Show()
38 else
39 self.f.BG:Hide()
40 end
41 end
42  
43 function module:Enable()
44 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
45 self.f:SetMax(10)
46 self.f:SetValue(10)
47  
48 if(UnitExists(self.unit)) then
49 self.MPPerc:SetText(floor((UnitHealth(self.unit) / UnitHealthMax(self.unit)) * 100).."%")
50 self.f:SetMax(UnitManaMax(self.unit))
51 self.f:SetValue(UnitMana(self.unit))
52 else
53 self.MPPerc:SetText("")
54 self.f:SetValue(0)
55 end
56  
57 -- Register the events we will use
58 self:RegisterEvent("PET_UI_UPDATE", "UpdatePet")
59 self:RegisterEvent("PLAYER_PET_CHANGED", "UpdatePet")
60 self:RegisterEvent("PET_BAR_CHANGED", "UpdatePet")
61 self:RegisterEvent("UNIT_PET", "UpdatePet")
62 self:RegisterEvent("UNIT_MANA", "UpdateMana")
63 self:RegisterEvent("UNIT_MAXMANA", "UpdateMana")
64 self:RegisterEvent("UNIT_ENERGY", "UpdateMana")
65 self:RegisterEvent("UNIT_MAXENERGY", "UpdateMana")
66 self:RegisterEvent("UNIT_RAGE", "UpdateMana")
67 self:RegisterEvent("UNIT_MAXRAGE", "UpdateMana")
68 self:RegisterEvent("UNIT_FOCUS", "UpdateMana")
69 self:RegisterEvent("UNIT_MAXFOCUS", "UpdateMana")
70 self:RegisterEvent("UNIT_DISPLAYPOWER")
71 --self:RegisterEvent("PET_UI_CLOSE")
72  
73 -- Activate the timers
74 self:StartMetro(self.name .. "Alpha")
75 self:StartMetro(self.name .. "Fade")
76 self:StartMetro(self.name .. "Update")
77  
78 self.f:Show()
79 end
80  
81 function module:UNIT_DISPLAYPOWER()
82 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
83 self.f:SetMax(UnitManaMax(self.unit))
84 end
85  
86 function module:UpdatePet()
87 if(event == "UNIT_PET" and arg1 ~= "player") then return end
88 if(UnitExists(self.unit)) then
89 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
90 self.f:SetMax(UnitManaMax(self.unit))
91 self.f:SetValue(UnitMana(self.unit))
92 self.MPPerc:SetText(floor((UnitMana(self.unit) / UnitManaMax(self.unit)) * 100).."%")
93 self.f:Show()
94 else
95 self.f:Hide()
96 end
97 end
98  
99 function module:UpdateMana()
100 if(arg1 == self.unit) then
101 if(event == "UNIT_MAXMANA" or event == "UNIT_MAXENERGY" or event == "UNIT_MAXRAGE" or event == "UNIT_MAXFOCUS") then
102 self.f:UpdateColor(ManaBarColor[UnitPowerType(self.unit)])
103 self.f:SetMax(UnitManaMax(self.unit))
104 else
105 self.f:SetValue(UnitMana(self.unit))
106 self.MPPerc:SetText(floor((UnitMana(self.unit) / UnitManaMax(self.unit)) * 100).."%")
107 end
108 end
109 end
110