Files
Nanami-DPS/Core.lua
rucky 5c3f2243c4 更新发送到功能
更新仇恨计算方式 还在开发
更新其他细节
2026-03-23 10:26:31 +08:00

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)