Mercurial > wow > dependencyloader
comparison DependencyLoader/Core.lua @ 18:e7995d599184 tip
updated pkgmeta
fix the inversion in addon:Enable
added support for late-loading
author | mckenziemc |
---|---|
date | Tue, 21 Dec 2010 00:23:57 -0800 |
parents | f825ccf94a89 |
children |
comparison
equal
deleted
inserted
replaced
17:f825ccf94a89 | 18:e7995d599184 |
---|---|
46 function Core:CanForceLoad() | 46 function Core:CanForceLoad() |
47 return self:IsForceLoadAvailable() and self:IsForceLoadAllowed() | 47 return self:IsForceLoadAvailable() and self:IsForceLoadAllowed() |
48 end | 48 end |
49 | 49 |
50 | 50 |
51 function Core:CanLoadLate() | |
52 -- assume we've already logged in | |
53 return true | |
54 -- TODO: check user settings | |
55 end | |
56 | |
57 | |
51 -- Enables any dependencies needed by the addons | 58 -- Enables any dependencies needed by the addons |
52 -- that have already been enabled | 59 -- that have already been enabled |
53 function Core:PrepareAllAddons() | 60 function Core:PrepareAllAddons() |
54 for i=1, GetNumAddOns() do | 61 for i=1, GetNumAddOns() do |
55 local addon = classes.Addon:Get(i) | 62 local addon = classes.Addon:Get(i) |
101 -- deps will all get loaded since req. for root to load | 108 -- deps will all get loaded since req. for root to load |
102 -- else | 109 -- else |
103 -- if it can be loaded with a reloadui then prepare after login | 110 -- if it can be loaded with a reloadui then prepare after login |
104 -- else | 111 -- else |
105 -- it can't be loaded, maybe tell the user | 112 -- it can't be loaded, maybe tell the user |
113 | |
114 debug("EnableAddOn hook, checking", addon:GetName()) | |
106 | 115 |
107 if tree:CanForceLoad() then | 116 if tree:CanForceLoad() then |
108 if addon:CanLoD() then | 117 if addon:CanLoD() then |
109 tree:PrepareForLoD() | 118 tree:PrepareForLoD() |
110 else | 119 else |
142 -- can't be loaded, maybe tell the user | 151 -- can't be loaded, maybe tell the user |
143 | 152 |
144 if tree:CanLoD() then | 153 if tree:CanLoD() then |
145 tree:PrepareForLoad() | 154 tree:PrepareForLoad() |
146 -- don't actually intend to reload, just enable everything | 155 -- don't actually intend to reload, just enable everything |
156 elseif self:CanLoadLate() and tree:CanLoadLate() then | |
157 tree:LoadLate() | |
147 elseif tree:CanLoad() then | 158 elseif tree:CanLoad() then |
148 tree:PrepareForLoad() | 159 tree:PrepareForLoad() |
149 requestReload = true | 160 requestReload = true |
150 else | 161 else |
151 -- TODO: tell user | 162 -- TODO: tell user |
199 self.queuedEnables[addon] = true | 210 self.queuedEnables[addon] = true |
200 end | 211 end |
201 | 212 |
202 | 213 |
203 function Core:RawEnableAddOn(...) | 214 function Core:RawEnableAddOn(...) |
215 debug("RawEnableAddOn: enabling", ...) | |
204 return self.hooks.EnableAddOn(...) | 216 return self.hooks.EnableAddOn(...) |
205 end | 217 end |
206 | 218 |
207 | 219 |
208 function Core:RawLoadAddOn(...) | 220 function Core:RawLoadAddOn(...) |