Mercurial > wow > buffalo2
comparison Veneer.lua @ 48:9837069e366a
move BuffFrame-specific things out of Veneer.lua
straighten out table hierarchy for BuffFrame module
| author | Nenue |
|---|---|
| date | Thu, 28 Apr 2016 06:58:13 -0400 |
| parents | 1a322b92dbfa |
| children | 16465f3fd919 |
comparison
equal
deleted
inserted
replaced
| 47:1a322b92dbfa | 48:9837069e366a |
|---|---|
| 129 return B[key] | 129 return B[key] |
| 130 end | 130 end |
| 131 | 131 |
| 132 | 132 |
| 133 --- localize for speed | 133 --- localize for speed |
| 134 local layers, refs, displays = B.configLayers, B.configLayersRef, B.displays | |
| 135 | 134 |
| 136 local ModulesCall = function(func, flag) | 135 local ModulesCall = function(func, flag) |
| 137 | 136 |
| 138 local n = 0 | 137 local n = 0 |
| 139 for i = 1, #moduleStack do | 138 for i = 1, #moduleStack do |
| 167 --- The things that happen repeatedly | 166 --- The things that happen repeatedly |
| 168 local Init = function () | 167 local Init = function () |
| 169 end | 168 end |
| 170 | 169 |
| 171 | 170 |
| 171 local layers, refs, displays = B.configLayers, B.configLayersRef, B.displays | |
| 172 --- Things that happen immediately upon entering world | 172 --- Things that happen immediately upon entering world |
| 173 local InitOnce = function() | 173 local InitOnce = function() |
| 174 print('entering world first time') | 174 print('entering world first time') |
| 175 local defaults = B.ConfDefaults | 175 local defaults = {} |
| 176 print('|cFFFFFF00Veneer|r') | 176 print('|cFFFFFF00Veneer|r') |
| 177 if not VeneerData then | 177 if not VeneerData then |
| 178 VeneerData = {} | 178 VeneerData = {} |
| 179 for k,v in pairs(defaults) do | 179 for k,v in pairs(defaults) do |
| 180 | |
| 181 | |
| 182 VeneerData[k] = v | 180 VeneerData[k] = v |
| 183 end | 181 end |
| 184 print('Veneer defaults being used.') | 182 print('Veneer defaults being used.') |
| 185 end | 183 end |
| 186 | |
| 187 B.Conf = setmetatable(VeneerData, {__index = function(_, k) return defaults[k] end}) | 184 B.Conf = setmetatable(VeneerData, {__index = function(_, k) return defaults[k] end}) |
| 188 | |
| 189 | |
| 190 | |
| 191 -- suffix tables | |
| 192 for name, display in pairs(displays) do | |
| 193 display.conf = setmetatable({}, { | |
| 194 __index = function(_, k) | |
| 195 --print('config check '.. name .. k) | |
| 196 return B.Conf[name .. k] or B.Conf['BuffButton' .. k] | |
| 197 end, | |
| 198 __newindex = function(_, k , v) | |
| 199 B.Conf[name..k] = v | |
| 200 end, | |
| 201 }) | |
| 202 end | |
| 203 | 185 |
| 204 -- To ensure that modules are run in controlled order, walk the dependency list; if the dep shows up | 186 -- To ensure that modules are run in controlled order, walk the dependency list; if the dep shows up |
| 205 -- in the loaded manifest, remove the value. If the dep list isn't empty, move that module to the next | 187 -- in the loaded manifest, remove the value. If the dep list isn't empty, move that module to the next |
| 206 -- layer. | 188 -- layer. |
| 207 local loaded = {} | 189 local loaded = {} |
| 249 loaded[name] = true | 231 loaded[name] = true |
| 250 end | 232 end |
| 251 end | 233 end |
| 252 i = i + 1 | 234 i = i + 1 |
| 253 until i > stackLevels | 235 until i > stackLevels |
| 254 | |
| 255 | 236 |
| 256 for level, batch in ipairs(moduleStack) do | 237 for level, batch in ipairs(moduleStack) do |
| 257 print('config level', level) | 238 print('config level', level) |
| 258 for name, module in pairs(batch) do | 239 for name, module in pairs(batch) do |
| 259 if not VeneerData[name] then | 240 if not VeneerData[name] then |
| 280 end | 261 end |
| 281 | 262 |
| 282 end | 263 end |
| 283 end | 264 end |
| 284 | 265 |
| 285 | 266 --- Pull in any XML templates |
| 286 if #checkForConfig >= 1 then | 267 if #checkForConfig >= 1 then |
| 287 local queuedFrame = tremove(checkForConfig) | 268 local queuedFrame = tremove(checkForConfig) |
| 288 while queuedFrame do | 269 while queuedFrame do |
| 289 B.SetConfigLayers(queuedFrame) | 270 B.SetConfigLayers(queuedFrame) |
| 290 B.UpdateXMLFrame(queuedFrame) | 271 B.UpdateXMLFrame(queuedFrame) |
| 291 queuedFrame = tremove(checkForConfig) | 272 queuedFrame = tremove(checkForConfig) |
| 292 end | 273 end |
| 293 end | 274 end |
| 294 -- remove from existing | |
| 295 end | 275 end |
| 296 | 276 |
| 297 --- Fires an update to all modules | 277 --- Fires an update to all modules |
| 298 local lastUpdate | 278 local lastUpdate |
| 299 function B.UpdateAll(...) | 279 function B.UpdateAll(...) |
| 391 refs[subframe] = nil | 371 refs[subframe] = nil |
| 392 end | 372 end |
| 393 end | 373 end |
| 394 end | 374 end |
| 395 | 375 |
| 396 B.UpdateConfigLayers = function() | 376 B.ToggleGuideLayers = function() |
| 397 local print = B.fprint() | 377 local print = B.fprint() |
| 398 local func = B.Conf.GuidesMode and 'Show' or 'Hide' | 378 local func = B.Conf.GuidesMode and 'Show' or 'Hide' |
| 399 local numAnchors = 0 | 379 local numAnchors = 0 |
| 400 for name, display in pairs(displays) do | 380 |
| 401 numAnchors = numAnchors + 1 | |
| 402 display.anchor:EnableMouse(B.Conf.GuidesMode) | |
| 403 if B.Conf.GuidesMode then | |
| 404 display.anchor:SetScript('OnUpdate', display.anchor.OnUpdate) | |
| 405 else | |
| 406 display.anchor:SetScript('OnUpdate', nil) | |
| 407 | |
| 408 for i, anchorButton in ipairs(display.anchor.anchorButton) do | |
| 409 anchorButton:Hide() | |
| 410 end | |
| 411 | |
| 412 end | |
| 413 --print(B.Conf.ConfigMode) | |
| 414 display.anchor:EnableMouse(B.Conf.ConfigMode) | |
| 415 end | |
| 416 for id, region in pairs(layers) do | 381 for id, region in pairs(layers) do |
| 417 --print(id, region:GetName(), func) | 382 --print(id, region:GetName(), func) |
| 418 region[func](region) | 383 region[func](region) |
| 419 end | 384 end |
| 420 | 385 |
| 421 --print('['..func..'] updated', #layers, 'regions,', numAnchors, 'frames') | 386 --print('['..func..'] updated', #layers, 'regions,', numAnchors, 'frames') |
| 387 end | |
| 388 B.UpdateConfigLayers = function() | |
| 389 print('|cFFFF0000', debugstack()) | |
| 390 B.ToggleGuideLayers() | |
| 422 end | 391 end |
| 423 | 392 |
| 424 local XMLFrame_Enable = function(self, value) | 393 local XMLFrame_Enable = function(self, value) |
| 425 local name = self:GetName() | 394 local name = self:GetName() |
| 426 local print = B.print('XML') | 395 local print = B.print('XML') |
