3e6730c - Add pet, boss and arena frames
[wowui.git] / OmaUF / PlayerFrame.lua
index 25d361e..1ce80da 100644 (file)
@@ -2,14 +2,11 @@
 local _;
 local unpack, pairs = unpack, pairs;
 local format = string.format;
 local _;
 local unpack, pairs = unpack, pairs;
 local format = string.format;
-local CreateFrame, RegisterStateDriver, RegisterUnitWatch = CreateFrame, RegisterStateDriver, RegisterUnitWatch;
-local STANDARD_TEXT_FONT = STANDARD_TEXT_FONT;
 local GameTooltip = nil;
 local GameTooltip_SetDefaultAnchor = nil;
 
 local registerUnitEvents = OmaUFEvents.RegisterUnitEvents;
 local unitEvent = OmaUFEvents.UnitEvent;
 local GameTooltip = nil;
 local GameTooltip_SetDefaultAnchor = nil;
 
 local registerUnitEvents = OmaUFEvents.RegisterUnitEvents;
 local unitEvent = OmaUFEvents.UnitEvent;
-local createAuraFrame = OmaUFAuras.CreateAuraFrame;
 
 local Settings = OmaUFSettings;
 local baseColor = Settings.BaseColor;
 
 local Settings = OmaUFSettings;
 local baseColor = Settings.BaseColor;
@@ -29,7 +26,7 @@ local inheritedFrames = "SecureUnitButtonTemplate,SecureHandlerStateTemplate";
 local function frameShow(frame)
     frame:RegisterEvent("UNIT_ENTERED_VEHICLE");
     frame:RegisterEvent("UNIT_EXITED_VEHICLE");
 local function frameShow(frame)
     frame:RegisterEvent("UNIT_ENTERED_VEHICLE");
     frame:RegisterEvent("UNIT_EXITED_VEHICLE");
-    frame:RegisterEvent("UNIT_PET"); -- TODO needed?
+    frame:RegisterEvent("GROUP_ROSTER_UPDATE");
     frame:RegisterEvent("PLAYER_ENTERING_WORLD");
     frame:RegisterEvent("PLAYER_LEVEL_UP");
     frame:RegisterEvent("PLAYER_REGEN_DISABLED");
     frame:RegisterEvent("PLAYER_ENTERING_WORLD");
     frame:RegisterEvent("PLAYER_LEVEL_UP");
     frame:RegisterEvent("PLAYER_REGEN_DISABLED");
@@ -46,13 +43,21 @@ end
 
 local function showTooltip(secure)
     GameTooltip_SetDefaultAnchor(GameTooltip, secure);
 
 local function showTooltip(secure)
     GameTooltip_SetDefaultAnchor(GameTooltip, secure);
-    GameTooltip:SetUnit(secure:GetAttribute("unit"));
+    GameTooltip:SetUnit(secure:GetAttribute("displayed"));
 end
 
 local function hideTooltip(secure)
     GameTooltip:FadeOut();
 end
 
 end
 
 local function hideTooltip(secure)
     GameTooltip:FadeOut();
 end
 
+local vehicletoggle = [=[
+    if newstate == "vehicle" then
+        self:SetAttribute("displayed", self:GetAttribute("vehicle"));
+    else
+        self:SetAttribute("displayed", self:GetAttribute("unit"));
+    end
+]=]
+
 function OmaUnitFrames.InitializePlayer(parent)
     GameTooltip = _G["GameTooltip"];
     GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
 function OmaUnitFrames.InitializePlayer(parent)
     GameTooltip = _G["GameTooltip"];
     GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
@@ -63,6 +68,8 @@ function OmaUnitFrames.InitializePlayer(parent)
     local unit = "player";
     secure:SetPoint("CENTER", parent, "CENTER", anchorX, anchorY);
     secure:SetAttribute("unit", unit);
     local unit = "player";
     secure:SetPoint("CENTER", parent, "CENTER", anchorX, anchorY);
     secure:SetAttribute("unit", unit);
+    secure:SetAttribute("displayed", unit);
+    secure:SetAttribute("vehicle", "vehicle");
     frame:SetPoint("CENTER", parent, "CENTER", anchorX, anchorY);
     frame:SetAttribute("unit", unit);
     frame.unit = unit;
     frame:SetPoint("CENTER", parent, "CENTER", anchorX, anchorY);
     frame:SetAttribute("unit", unit);
     frame.unit = unit;
@@ -141,6 +148,12 @@ function OmaUnitFrames.InitializePlayer(parent)
     frame.leader:Hide();
     frame.level = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
     frame.level:SetPoint("LEFT", frame.manaback, "LEFT", 2, 1);
     frame.leader:Hide();
     frame.level = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
     frame.level:SetPoint("LEFT", frame.manaback, "LEFT", 2, 1);
+    frame.targeticon = frame:CreateTexture(nil, "OVERLAY");
+    frame.targeticon:SetPoint("CENTER", frame.healthback, "TOP");
+    frame.targeticon:SetWidth(18);
+    frame.targeticon:SetHeight(18);
+    frame.targeticon:SetTexture("Interface\\TARGETINGFRAME\\UI-RaidTargetingIcons");
+    frame.targeticon:Hide();
     -- set scripts
     frame:SetScript("OnShow", frameShow);
     frame:SetScript("OnHide", frameHide);
     -- set scripts
     frame:SetScript("OnShow", frameShow);
     frame:SetScript("OnHide", frameHide);
@@ -155,7 +168,10 @@ function OmaUnitFrames.InitializePlayer(parent)
     -- rest give target and menu
     secure:SetAttribute("*type1", "target");
     secure:SetAttribute("*type2", "togglemenu");
     -- rest give target and menu
     secure:SetAttribute("*type1", "target");
     secure:SetAttribute("*type2", "togglemenu");
+    secure:SetAttribute("toggleForVehicle", true);
     RegisterUnitWatch(frame);
     RegisterUnitWatch(secure);
     RegisterUnitWatch(frame);
     RegisterUnitWatch(secure);
+    RegisterStateDriver(secure, "vehicleui", "[vehicleui] vehicle; no");
+    secure:SetAttribute("_onstate-vehicleui", vehicletoggle);
     return frame;
 end
     return frame;
 end