diff BuffFrame/BuffFrame.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
children 16465f3fd919
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BuffFrame/BuffFrame.lua	Thu Apr 28 06:58:13 2016 -0400
@@ -0,0 +1,64 @@
+--------------------------------------------
+-- Veneer
+-- Nick
+-- @project-revision@ @project-hash@
+-- @file-revision@ @file-hash@
+-- Created: 4/28/2016 5:58 AM
+--------------------------------------------
+
+local B = select(2,...).frame
+local M = B:RegisterModule('BuffFrame')
+
+function M:OnInitialize()
+  local displays = M.displays
+  local c= M.Conf
+  -- suffix tables
+
+  M.drawn = B.Abstract(displays, 'drawn', M.drawn )
+  -- Lesser extent of guide frames that have been positioned
+  M.positioned = B.Abstract(displays, 'positioned', M.positioned)
+  -- Backdrop style frame
+  M.decors = B.Abstract(displays, 'decorator', M.decors)
+  -- Static positioning frames
+  M.guides = B.Abstract(displays, 'guides', M.guides)
+  -- Anchor points for guides
+  M.anchors = B.Abstract(displays, 'anchor', M.anchors)
+  -- Stored functions for doing icon texture adjustments
+  M.zoom = B.Abstract(displays, 'zoom', M.zoom )
+
+
+  for name, display in pairs(displays) do
+    display.conf = setmetatable({}, {
+      __index = function(_, k)
+        --print('config check '.. name .. k)
+        return c[name .. k] or c['BuffButton' .. k]
+      end,
+      __newindex = function(_, k , v)
+        c[name..k] = v
+      end,
+    })
+  end
+
+  M:RegisterUnitEvent("UNIT_AURA", "player", "vehicle")
+  M:RegisterEvent("GROUP_ROSTER_UPDATE")
+  M:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
+  hooksecurefunc("BuffFrame_UpdateAllBuffAnchors", M.PostBuffAnchors)
+  hooksecurefunc("RaidBuffTray_Update", M.UpdateRaidBuffs)
+end
+
+function M:OnUpdate ()
+  local displays = M.displays
+  M.ShowConsolidated = (IsInGroup() and GetCVarBool("consolidateBuffs"))
+  M.ShowMissingBuffs = (IsInGroup() and M.Conf.RaidShowMissing)
+
+  for name, auraType in pairs(displays) do
+
+    M.UpdateBuffs(auraType.buffName, true)
+    print(name, auraType)
+    _G[name..'Anchor']:EnableMouse(B.Conf.ConfigMode)
+  end
+
+  M.UpdateAnchorAnchors()
+  M.UpdateRaidBuffs()
+  M.UpdateBuffsTodo()
+end
\ No newline at end of file