-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathBlizzMoveAPI.lua
More file actions
99 lines (79 loc) · 3.24 KB
/
Copy pathBlizzMoveAPI.lua
File metadata and controls
99 lines (79 loc) · 3.24 KB
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
-- upvalue the globals
local LibStub = LibStub;
local pairs = pairs;
local string_match = string.match;
local name = ... or "BlizzMove";
---@type BlizzMove
local BlizzMove = LibStub("AceAddon-3.0"):GetAddon(name); ---@diagnostic disable-line: assign-type-mismatch
if not BlizzMove then return; end
_G.BlizzMoveAPI = {};
---@class BlizzMoveAPI
local BlizzMoveAPI = _G.BlizzMoveAPI;
--- @return string rawVersion
--- @return number mayor
--- @return number minor
--- @return number patch
--- @return number versionInt
function BlizzMoveAPI:GetVersion()
local rawVersion = BlizzMove.Config.version;
local mayor, minor, patch = string_match(rawVersion, "v(%d*)%.(%d*)%.(%d*)[a-z]?")
local versionInt = patch and (patch + minor * 100 + mayor * 10000);
return rawVersion, mayor, minor, patch, versionInt
end
function BlizzMoveAPI:ToggleDebugPrints()
BlizzMove.DB.DebugPrints = not BlizzMove.DB.DebugPrints;
BlizzMove:Print("Debug prints have been:", (BlizzMove.DB.DebugPrints and "Enabled") or "Disabled");
end
--- @param framesTable BlizzMoveAPI_FrameTable
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
--- @param addOnFramesTable BlizzMoveAPI_AddonFrameTable
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
--- @return table<string, string> # Returns a table with the addon name as key and value
function BlizzMoveAPI:GetRegisteredAddOns()
return BlizzMove:GetRegisteredAddOns();
end
--- @param addOnName ?string # The name of the addon, defaults to BlizzMove (i.e. framexml frames)
--- @return table<string, string> # Returns a table with the frame name as key and value
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