changeset 69:b467bba0224d

okay, now do vehicle swapping in a better, simpler way that will also show debuffs
author Chris Mellon <arkanes@gmail.com>
date Sat, 30 Jun 2012 18:27:23 -0500
parents f5bd73181349
children 4b03e050842d
files KBF.lua
diffstat 1 files changed, 12 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/KBF.lua	Sat Jun 30 18:18:18 2012 -0500
+++ b/KBF.lua	Sat Jun 30 18:27:23 2012 -0500
@@ -127,22 +127,6 @@
         buffCount = buffCount+1
     end
 
-    if self.vehicleHeader:IsShown() then
-        local unit = "vehicle"
-        for idx=1,99 do
-            local frame = self.vehicleHeader:GetAttribute("child"..idx)
-            if not (frame and frame:IsShown()) then break end
-            if true then 
-                if self:BindBarToBuff(frame, unit) then break end
-            end
-            self:UpdateBarExpirationTime(frame)
-            -- Don't forget to refresh shown tooltips
-            if ( GameTooltip:IsOwned(frame) ) then
-                self:OnEnter(frame)
-            end
-        end
-    end
-
     -- SAH correctly binds the weapon enchant templates now, but when temp enchants
     -- are present and used, it seems that it doesn't correctly hide un-bound 
     -- buff frames, which breaks all the layout and so forth.
@@ -504,37 +488,23 @@
     consolidateHeader:SetWidth(height + width)
     consolidateHeader:SetHeight(height)
     consolidateHeader:Show()
-    
-    local vehicleHeader = CreateFrame("FRAME", "KBFBuffFrame", UIParent, "SecureAuraHeaderTemplate")
-    self:SetCommonSecureHeaderAttributes(vehicleHeader)
-    vehicleHeader:SetAttribute("unit", "vehicle")
-    vehicleHeader:SetPoint("TOP", anchor, "TOP", 0, 0)
-    vehicleHeader:SetWidth(height + width)
-    vehicleHeader:SetHeight(height)
-    RegisterUnitWatch(vehicleHeader)
-    
+       
 
-    local frameHider = CreateFrame("FRAME", "KBFFrameHider", UIParent, "SecureHandlerStateTemplate")
-    frameHider:SetAttribute("unit", "vehicle")
-    frameHider:SetFrameRef("frame1", secureHeader)
-    frameHider:SetFrameRef("frame2", consolidateHeader)
-    frameHider:SetFrameRef("frame3", consolidateProxy)
-    frameHider:SetAttribute("_onstate-unitexists", [[
-        for idx=1,99 do
-            local frame = self:GetFrameRef("frame"..idx)
-            if frame then
-                if newstate then
-                    frame:Hide()
-                else
-                    frame:Show()
-                end
-            end
+    local vehicleSwapper = CreateFrame("FRAME", "KBFVehicleSwapper", UIParent, "SecureHandlerStateTemplate")
+    vehicleSwapper:SetAttribute("unit", "vehicle")
+    vehicleSwapper:SetFrameRef("secureHeader", secureHeader)
+    vehicleSwapper:SetAttribute("_onstate-unitexists", [[
+        local frame = self:GetFrameRef("secureHeader")
+        if newstate then
+            frame:SetAttribute("unit", "vehicle")
+        else
+            frame:SetAttribute("unit", "player")
         end
     ]])
-    RegisterUnitWatch(frameHider, true)
+    RegisterUnitWatch(vehicleSwapper, true)
 
 
-    return anchor, secureHeader, consolidateHeader, consolidateProxy, vehicleHeader
+    return anchor, secureHeader, consolidateHeader, consolidateProxy
 end
 
 --- sets the attributes needed by all the headers