Files
pfUI-DQB/core.lua
T
2026-09-03 10:22:12 +01:00

110 lines
2.0 KiB
Lua

--[[
pfUI-DQB
Dialog, QuestLog & Books pfUI Style
Core
]]
local addonName = "pfUI-DQB"
-- Make sure pfUI exists.
if not pfUI then
return
end
-- DQB namespace
pfUI.dqb = pfUI.dqb or {}
local DQB = pfUI.dqb
DQB.name = addonName
DQB.version = "0.1.0"
-- Configuration root
DQB.config = DQB.config or {}
-- Runtime state
DQB.modules = DQB.modules or {}
-- Register a DQB module.
function DQB:RegisterModule(name, func)
if not name or not func then
return
end
self.modules[name] = func
end
-- Safely get a pfUI global configuration value.
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
-- Safely get DQB configuration.
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
-- Set DQB configuration.
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
-- Simple debug helper.
function DQB:Debug(message)
if DEFAULT_CHAT_FRAME then
DEFAULT_CHAT_FRAME:AddMessage(
"|cff33ffccpf|cffffffffUI-DQB|r: " .. tostring(message)
)
end
end
-- Wait until pfUI's configuration and GUI are available.
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
-- The actual DQB configuration is initialized by config.lua.
if DQB.InitializeConfig then
DQB:InitializeConfig()
end
-- Build the pfUI configuration entries.
if DQB.InitializeGUI then
DQB:InitializeGUI()
end
this:UnregisterAllEvents()
end)