Mercurial > wow > dependencyloader
view DependencyLoader_Core/frontend.lua @ 0:9852fcd5e59e
initial import
author | mckenziemc |
---|---|
date | Tue, 30 Nov 2010 16:13:04 -0800 |
parents | |
children |
line wrap: on
line source
-- main.lua -- local addonName, addonTable = ... local DependencyLoader = LibStub("AceAddon-3.0"):NewAddon(addonName) _G[addonName] = DependencyLoader local libPrint = LibStub("LibPrint-1.0") DependencyLoader.printStream = libPrint:NewStream("DependencyLoader", "DpLdr", print) DependencyLoader.debugStream = libPrint:NewStream("DependencyLoader", "DpLdr", "mcm") -- temp DependencyLoader.classes = addonTable.classes function DependencyLoader:Print(...) self.printStream:Print(...) end function DependencyLoader:Debug(...) self.debugStream:Print(...) end function DependencyLoader:OnInitialize() self:Debug("Initializing and enabling", addonName) self:Enable() end function DependencyLoader:OnEnable() self.core = addonTable.classes.Core:New() self:Print("Enabled", addonName) self:FixCurrentAddons() end function DependencyLoader:OnDisable() self:Print("Disabled", addonName) end -- TODO: move this into core? -- Enables any dependencies needed by the addons -- that have already been enabled function DependencyLoader:FixCurrentAddons() local core = self.core for i=1, GetNumAddOns() do local addon = self.core:GetAddon(i) if addon:IsEnabled() then if addon:IsLoaded() then -- TODO: it might still help to enable its embeds else self:Debug("Checking", addon:GetName()) if addonTable.classes.Core:ForceLoadAvailable() then if core:CanForceLoadTree(addon:GetName()) then core:ForceLoadTree(addon:GetName()) else print("Can't force load", addon:GetName()) end else if core:CanLoDTree(addon:GetName()) then core:PrepareLoDTree(addon:GetName()) else print("Couldn't load", addon:GetName(), "on demand.") end end end end end end