forked from Kiatra/BlizzMove
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBlizzMoveAPI.lua
135 lines (78 loc) · 3.09 KB
/
BlizzMoveAPI.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
-- upvalue the globals
local _G = getfenv(0);
local LibStub = _G.LibStub;
local pairs = _G.pairs;
local name = ... or "BlizzMove";
---@type BlizzMove
local BlizzMove = LibStub("AceAddon-3.0"):GetAddon(name);
if not BlizzMove then return; end
_G.BlizzMoveAPI = _G.BlizzMoveAPI or {};
---@class BlizzMoveAPI
local BlizzMoveAPI = _G.BlizzMoveAPI;
function BlizzMoveAPI:GetVersion()
local rawVersion = BlizzMove.Config.version;
if(rawVersion == '@project' .. '-version@') then
return rawVersion, nil, nil, nil, nil;
end
local mayor, minor, patch = string.match(rawVersion, 'v(%d*)%.(%d*)%.(%d*)[a-z]?')
local versionInt = patch + minor * 100 + mayor * 10000;
return rawVersion, mayor, minor, patch, versionInt
end
------------------------------------------------------------------------------------------------------
-- API: Debug Functions
------------------------------------------------------------------------------------------------------
function BlizzMoveAPI:ToggleDebugPrints()
BlizzMove.DB.DebugPrints = not BlizzMove.DB.DebugPrints;
BlizzMove:Print("Debug prints have been:", (BlizzMove.DB.DebugPrints and "Enabled") or "Disabled");
end
------------------------------------------------------------------------------------------------------
-- API: Frame Registering Functions
------------------------------------------------------------------------------------------------------
function BlizzMoveAPI:RegisterFrames(framesTable)
for frameName, frameData in pairs(framesTable) do
if not BlizzMove:ValidateFrame(frameName, frameData) then
BlizzMove:DebugPrint("Invalid frame data provided for frame: '", frameName, "'.");
return false;
end
BlizzMove:RegisterFrame(nil, frameName, frameData, true);
end
if BlizzMove.initialized then
BlizzMove.Config:RegisterOptions();
end
end
function BlizzMoveAPI:RegisterAddOnFrames(addOnFramesTable)
for addOnName, framesTable in pairs(addOnFramesTable) do
for frameName, frameData in pairs(framesTable) do
if not BlizzMove:ValidateFrame(frameName, frameData) then
BlizzMove:DebugPrint("Invalid frame data provided for frame: '", frameName, "'.");
return;
end
BlizzMove:RegisterFrame(addOnName, frameName, frameData, true);
end
end
if BlizzMove.initialized then
BlizzMove.Config:RegisterOptions();
end
end
function BlizzMoveAPI:UnregisterFrame(addOnName, frameName, permanent)
return BlizzMove:UnregisterFrame(addOnName, frameName, permanent);
end
function BlizzMoveAPI:GetRegisteredAddOns()
return BlizzMove:GetRegisteredAddOns();
end
function BlizzMoveAPI:GetRegisteredFrames(addOnName)
return BlizzMove:GetRegisteredFrames(addOnName);
end
function BlizzMoveAPI:IsFrameDefaultDisabled(addOnName, frameName)
return BlizzMove:IsFrameDefaultDisabled(addOnName, frameName);
end
function BlizzMoveAPI:IsFrameDisabled(addOnName, frameName)
return BlizzMove:IsFrameDisabled(addOnName, frameName);
end
function BlizzMoveAPI:SetFrameDisabled(addOnName, frameName, disable)
if disable then
return BlizzMove:DisableFrame(addOnName, frameName);
else
return BlizzMove:EnableFrame(addOnName, frameName);
end
end