-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathTargetOfTargetFrame.lua
109 lines (90 loc) · 4.55 KB
/
TargetOfTargetFrame.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
local addonName = "ArenaLiveUnitFrames";
local function TargetOfTargetOnUpdate(self, elapsed)
if ( self.unit ) then
local guid = UnitGUID(self.unit);
if ( UnitExists(self.unit) and guid ~= self.guid ) then
self:SetUnitGUID(self.unit);
self:Update();
end
end
end
function ALUF_TargetofTargetFrame:Initialise()
local prefix = self:GetName();
local frameType = "TargetOfTargetFrame";
local onRightClick = nil;
local healthBar = _G[prefix.."HealthBar"];
local powerBar = _G[prefix.."PowerBar"];
local portrait = _G[prefix.."Portrait"];
local name = _G[prefix.."Name"];
local scale = ArenaLiveCore:GetDBEntry(addonName, "TargetOfTargetFrame/Scale");
scale = scale / 100;
self:SetScale(scale);
ArenaLiveCore:AddFrame(self, "UnitFrame", addonName, frameType, onRightClick, false);
ArenaLiveCore:AddFrame(healthBar, "HealthBar", self, true);
ArenaLiveCore:AddFrame(powerBar, "PowerBar", self, true);
ArenaLiveCore:AddFrame(portrait, "Portrait", _G[prefix.."PortraitTexture"], _G[prefix.."Portrait3D"], self);
ArenaLiveCore:AddFrame(name, "NameText", self);
ArenaLiveCore:AddFrame(_G[prefix.."Mover"], "FrameMover", _G[prefix.."MoverText"], self);
self:SetUnit("targettarget");
self:SetScript("OnUpdate", TargetOfTargetOnUpdate);
end
function ALUF_TargetofTargetFrame:Toggle()
local enabled = ArenaLiveCore:GetDBEntry("ArenaLiveUnitFrames", self.frameType.."/Enabled");
if ( enabled ) then
if ( not self.unit ) then
self:SetUnit("targettarget");
end
else
self:ResetUnit();
end
end
function ALUF_TargetofTargetFrame:ResetPosition()
local prefix = self.frameType.."/Position/";
ArenaLiveCore:SetDBEntry(addonName, prefix.."Point", ArenaLiveUnitFrames.DEFAULTS[prefix.."Point"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."RelativeTo", ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativeTo"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."RelativePoint", ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativePoint"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."XOffset", ArenaLiveUnitFrames.DEFAULTS[prefix.."XOffset"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."YOffset", ArenaLiveUnitFrames.DEFAULTS[prefix.."YOffset"]);
self:ClearAllPoints();
self:SetPoint(ArenaLiveUnitFrames.DEFAULTS[prefix.."Point"], ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativeTo"], ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativePoint"], ArenaLiveUnitFrames.DEFAULTS[prefix.."XOffset"], ArenaLiveUnitFrames.DEFAULTS[prefix.."YOffset"]);
end
function ALUF_TargetofFocusFrame:Initialise()
local prefix = self:GetName();
local frameType = "TargetOfFocusFrame";
local onRightClick = nil;
local healthBar = _G[prefix.."HealthBar"];
local powerBar = _G[prefix.."PowerBar"];
local portrait = _G[prefix.."Portrait"];
local name = _G[prefix.."Name"];
local scale = ArenaLiveCore:GetDBEntry(addonName, "TargetOfFocusFrame/Scale");
scale = scale / 100;
self:SetScale(scale);
ArenaLiveCore:AddFrame(self, "UnitFrame", addonName, frameType, onRightClick, false);
ArenaLiveCore:AddFrame(healthBar, "HealthBar", self, true);
ArenaLiveCore:AddFrame(powerBar, "PowerBar", self, true);
ArenaLiveCore:AddFrame(portrait, "Portrait", _G[prefix.."PortraitTexture"], _G[prefix.."Portrait3D"], self);
ArenaLiveCore:AddFrame(name, "NameText", self);
ArenaLiveCore:AddFrame(_G[prefix.."Mover"], "FrameMover", _G[prefix.."MoverText"], self);
self:SetUnit("focus-target");
self:SetScript("OnUpdate", TargetOfTargetOnUpdate);
end
function ALUF_TargetofFocusFrame:Toggle()
local enabled = ArenaLiveCore:GetDBEntry("ArenaLiveUnitFrames", self.frameType.."/Enabled");
if ( enabled ) then
if ( not self.unit ) then
self:SetUnit("focus-target");
end
else
self:ResetUnit();
end
end
function ALUF_TargetofFocusFrame:ResetPosition()
local prefix = self.frameType.."/Position/";
ArenaLiveCore:SetDBEntry(addonName, prefix.."Point", ArenaLiveUnitFrames.DEFAULTS[prefix.."Point"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."RelativeTo", ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativeTo"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."RelativePoint", ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativePoint"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."XOffset", ArenaLiveUnitFrames.DEFAULTS[prefix.."XOffset"]);
ArenaLiveCore:SetDBEntry(addonName, prefix.."YOffset", ArenaLiveUnitFrames.DEFAULTS[prefix.."YOffset"]);
self:ClearAllPoints();
self:SetPoint(ArenaLiveUnitFrames.DEFAULTS[prefix.."Point"], ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativeTo"], ArenaLiveUnitFrames.DEFAULTS[prefix.."RelativePoint"], ArenaLiveUnitFrames.DEFAULTS[prefix.."XOffset"], ArenaLiveUnitFrames.DEFAULTS[prefix.."YOffset"]);
end