Files
pfUI-DQB/core.lua
T
2026-09-03 16:51:31 +01:00

167 lines
3.7 KiB
Lua

local addonName = "pfUI-DQB"
-- pfUI-DQB only works when pfUI is loaded.
if not pfUI then
return
end
-- Main pfUI-DQB namespace
pfUI.dqb = pfUI.dqb or {}
local DQB = pfUI.dqb
DQB.name = addonName
DQB.version = "0.1.1"
DQB.config = DQB.config or {}
DQB.modules = DQB.modules or {}
------------------------------------------------------------
-- Module system
------------------------------------------------------------
function DQB:RegisterModule(name, func)
if not name or not func then
return
end
self.modules[name] = func
end
------------------------------------------------------------
-- Configuration helpers
------------------------------------------------------------
function DQB:GetGlobalConfig(key, default)
if not pfUI_config
or not pfUI_config.global
or pfUI_config.global[key] == nil then
return default
end
return pfUI_config.global[key]
end
function DQB:GetConfig(module, key, default)
if not pfUI_config
or not pfUI_config.dqb
or not pfUI_config.dqb[module]
or pfUI_config.dqb[module][key] == nil then
return default
end
return pfUI_config.dqb[module][key]
end
function DQB:SetConfig(module, key, value)
if not pfUI_config then
pfUI_config = {}
end
if not pfUI_config.dqb then
pfUI_config.dqb = {}
end
if not pfUI_config.dqb[module] then
pfUI_config.dqb[module] = {}
end
pfUI_config.dqb[module][key] = value
end
------------------------------------------------------------
-- Enable / Disable
------------------------------------------------------------
function DQB:IsEnabled()
return self:GetConfig("general", "enable", "1") == "1"
end
function DQB:SetEnabled(enabled)
if enabled then
self:SetConfig("general", "enable", "1")
else
self:SetConfig("general", "enable", "0")
end
end
------------------------------------------------------------
-- Debug / chat output
------------------------------------------------------------
function DQB:Debug(message)
if DEFAULT_CHAT_FRAME then
DEFAULT_CHAT_FRAME:AddMessage(
"|cff33ffccpf|cffffffffUI-DQB|r: " .. tostring(message)
)
end
end
------------------------------------------------------------
-- Initialization
------------------------------------------------------------
function DQB:Initialize()
self:Debug(
"initialized v" .. tostring(self.version)
)
self:Debug(
"status: " .. (self:IsEnabled() and "enabled" or "disabled")
)
end
------------------------------------------------------------
-- Load after WoW variables and pfUI are ready
------------------------------------------------------------
local loader = CreateFrame("Frame")
loader:RegisterEvent("VARIABLES_LOADED")
loader:SetScript("OnEvent", function()
if event ~= "VARIABLES_LOADED" then
return
end
if not pfUI then
return
end
--------------------------------------------------------
-- Initialize configuration
--------------------------------------------------------
if DQB.InitializeConfig then
DQB:InitializeConfig()
end
--------------------------------------------------------
-- Initialize pfUI GUI
--------------------------------------------------------
if DQB.InitializeGUI then
DQB:InitializeGUI()
end
--------------------------------------------------------
-- Initialize DQB
--------------------------------------------------------
DQB:Initialize()
--------------------------------------------------------
-- We only need VARIABLES_LOADED once
--------------------------------------------------------
this:UnregisterAllEvents()
end)