annotate Templates.lua @ 107:ff00679a7817

- Template config creation includes sub-tables keyed by player guid
author Nenue
date Sun, 29 Jan 2017 09:57:09 -0500
parents 8df154a2bfd6
children a41f6b74709a
rev   line source
Nenue@90 1 -- Veneer
Nenue@90 2 -- Templates.lua
Nenue@90 3 -- Created: 10/24/2016 9:16 AM
Nenue@90 4 -- %file-revision%
Nenue@90 5 --
Nenue@90 6 -- Mover Widget base
Nenue@90 7 local print = DEVIAN_WORKSPACE and function(...) _G.print('VnTemplate', ...) end or nop
Nenue@102 8 local debugTemplates = {}
Nenue@90 9
Nenue@90 10 VeneerConfigLayerMixin = {}
Nenue@90 11 VeneerAnimationMixin = {}
Nenue@102 12 VeneerHandlerMixin = {
Nenue@102 13 anchorPoint = 'CENTER',
Nenue@102 14 data = {},
Nenue@102 15 }
Nenue@90 16
Nenue@90 17 function VeneerConfigLayerMixin:OnLoad()
Nenue@90 18 local handler = self:GetParent()
Nenue@90 19 print(handler:GetName(), 'configLayers')
Nenue@90 20 handler.ConfigLayers = handler.ConfigLayers or {}
Nenue@90 21 for i, region in ipairs(handler.ConfigLayers) do
Nenue@90 22 region:SetShown(Veneer.ConfigMode)
Nenue@90 23 end
Nenue@90 24 end
Nenue@90 25
Nenue@90 26 function VeneerConfigLayerMixin:OnUpdate()
Nenue@90 27 local handler = self:GetParent()
Nenue@90 28 handler.ConfigLayers = handler.ConfigLayers or {}
Nenue@90 29
Nenue@90 30 self.ConfigName:SetText(handler:GetName())
Nenue@90 31 self.ConfigID:SetText(handler:GetID())
Nenue@90 32 end
Nenue@90 33
Nenue@90 34 function VeneerAnimationMixin:OnPlay()
Nenue@90 35 PlaySoundKitID(229)
Nenue@90 36 self.animating = true
Nenue@90 37 print('|cFF00FF00Anim:OnPlay|r @', unpack(self.sourcePoint))
Nenue@90 38 end
Nenue@90 39 function VeneerAnimationMixin:OnStop()
Nenue@90 40 PlaySoundKitID(229)
Nenue@90 41 self.animating = nil
Nenue@90 42 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint))
Nenue@90 43 end
Nenue@90 44 function VeneerAnimationMixin:OnFinished()
Nenue@90 45 PlaySoundKitID(229)
Nenue@90 46 self.animating = nil
Nenue@90 47 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint))
Nenue@93 48 end
Nenue@93 49
Nenue@93 50 function VeneerHandlerMixin:OnShow()
Nenue@93 51 self:Reanchor()
Nenue@93 52 Veneer:StaticReanchor(self)
Nenue@93 53 end
Nenue@93 54 function VeneerHandlerMixin:OnHide()
Nenue@93 55 Veneer:DynamicReanchor()
Nenue@93 56 end
Nenue@93 57 function VeneerHandlerMixin:Reanchor (anchorAll)
Nenue@99 58 Veneer:DynamicReanchor()
Nenue@98 59 end
Nenue@102 60 function VeneerHandlerMixin:Setup()
Nenue@102 61 local configName = self:GetName():gsub('^Veneer', '')
Nenue@107 62 VeneerData[configName] = VeneerData[configName] or self.defaultSettings or {}
Nenue@102 63
Nenue@102 64 -- reconcile any data accumulated before login trigger
Nenue@102 65 for k,v in pairs(self.data) do
Nenue@102 66 if not VeneerData[configName][k] then
Nenue@102 67 print('reconciling pre-data:', k, v)
Nenue@102 68 VeneerData[configName][k] = v
Nenue@102 69 end
Nenue@102 70 end
Nenue@107 71 local guid = UnitGUID('player')
Nenue@102 72 self.data = VeneerData[configName]
Nenue@107 73 self.data[guid] = self.data[guid] or {}
Nenue@107 74 self.profile = self.data[guid]
Nenue@102 75 print('data table loaded:', configName)
Nenue@102 76 self.initialized = true
Nenue@102 77 end
Nenue@98 78
Nenue@98 79 function VeneerHandlerMixin:Print(...)
Nenue@98 80 local txt = '|cFFFFFF00'..self:GetName()..'|r:'
Nenue@98 81 for i = 1, select('#', ...) do
Nenue@98 82 txt = txt .. ' '.. tostring(select(i, ...))
Nenue@98 83 end
Nenue@98 84
Nenue@102 85
Nenue@102 86
Nenue@98 87 DEFAULT_CHAT_FRAME:AddMessage(txt)
Nenue@103 88 end
Nenue@103 89
Nenue@103 90 function VeneerHandlerMixin:UpdateConfigLayers (configMode)
Nenue@103 91 -- Override to manage config visual elements when a config update is fired from /vn or login
Nenue@103 92 if not self:IsShown() then
Nenue@103 93 self:SetShown(configMode)
Nenue@103 94 self:Reanchor()
Nenue@103 95 end
Nenue@103 96 self.configMode = configMode
Nenue@90 97 end