79 lines
1.7 KiB
Lua
79 lines
1.7 KiB
Lua
NanamiDPS = {}
|
|
|
|
NanamiDPS.version = "1.0.0"
|
|
|
|
NanamiDPS.modules = {}
|
|
NanamiDPS.moduleOrder = {}
|
|
NanamiDPS.windows = {}
|
|
|
|
NanamiDPS.callbacks = {
|
|
refresh = {},
|
|
}
|
|
|
|
local defaultConfig = {
|
|
barHeight = 16,
|
|
barSpacing = 1,
|
|
fontSize = 10,
|
|
trackAllUnits = false,
|
|
mergePets = true,
|
|
visible = true,
|
|
locked = false,
|
|
maxSegments = 10,
|
|
backdropAlpha = 0.92,
|
|
showClassIcons = true,
|
|
}
|
|
|
|
function NanamiDPS:RegisterModule(name, mod)
|
|
if self.modules[name] then return end
|
|
self.modules[name] = mod
|
|
table.insert(self.moduleOrder, name)
|
|
end
|
|
|
|
function NanamiDPS:GetModule(name)
|
|
return self.modules[name]
|
|
end
|
|
|
|
function NanamiDPS:FireCallback(name, a1, a2, a3, a4, a5)
|
|
if self.callbacks[name] then
|
|
for _, fn in pairs(self.callbacks[name]) do
|
|
fn(a1, a2, a3, a4, a5)
|
|
end
|
|
end
|
|
end
|
|
|
|
function NanamiDPS:RegisterCallback(name, id, fn)
|
|
if not self.callbacks[name] then
|
|
self.callbacks[name] = {}
|
|
end
|
|
self.callbacks[name][id] = fn
|
|
end
|
|
|
|
StaticPopupDialogs["NANAMI_DPS_CONFIRM"] = {
|
|
button1 = YES,
|
|
button2 = NO,
|
|
timeout = 0,
|
|
whileDead = 1,
|
|
hideOnEscape = 1,
|
|
}
|
|
|
|
local initFrame = CreateFrame("Frame")
|
|
initFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
initFrame:SetScript("OnEvent", function()
|
|
if not NanamiDPS_DB then
|
|
NanamiDPS_DB = {}
|
|
end
|
|
|
|
NanamiDPS_DB.config = NanamiDPS_DB.config or {}
|
|
for k, v in pairs(defaultConfig) do
|
|
if NanamiDPS_DB.config[k] == nil then
|
|
NanamiDPS_DB.config[k] = v
|
|
end
|
|
end
|
|
NanamiDPS.config = NanamiDPS_DB.config
|
|
|
|
NanamiDPS_DB.windows = NanamiDPS_DB.windows or {}
|
|
NanamiDPS_DB.windowPositions = NanamiDPS_DB.windowPositions or {}
|
|
|
|
NanamiDPS:FireCallback("INIT")
|
|
end)
|