26c8dda - Remove heal absorb from player and target frames
[wowui.git] / OmaUF / PlayerFrame.lua
index 25d361e..960591d 100644 (file)
@@ -2,14 +2,13 @@
 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 GameTooltip = GameTooltip;
+local GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor;
 
 local registerUnitEvents = OmaUFEvents.RegisterUnitEvents;
+local registerCastEvents = OmaUFCastBar.RegisterCastEvents;
+local unregisterCastEvents = OmaUFCastBar.UnregisterCastEvents;
 local unitEvent = OmaUFEvents.UnitEvent;
-local createAuraFrame = OmaUFAuras.CreateAuraFrame;
 
 local Settings = OmaUFSettings;
 local baseColor = Settings.BaseColor;
@@ -17,7 +16,6 @@ local bgColor = Settings.BgColor;
 local healthColor = Settings.HealthColor;
 local shieldColor = Settings.ShieldColor;
 local shieldhlColor = Settings.ShieldhlColor;
-local healpredColor = Settings.HealpredColor;
 local healabsorbColor = Settings.HealabsorbColor;
 local width, height = Settings.Player.Width, Settings.Player.Height;
 local anchorX, anchorY = Settings.Player.AnchorX, Settings.Player.AnchorY;
@@ -25,11 +23,12 @@ local anchorX, anchorY = Settings.Player.AnchorX, Settings.Player.AnchorY;
 local attributes = {};
 
 local inheritedFrames = "SecureUnitButtonTemplate,SecureHandlerStateTemplate";
+local barTexture = "Interface\\AddOns\\OmaRF\\images\\minimalist";
 
 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");
@@ -37,25 +36,38 @@ local function frameShow(frame)
     frame:RegisterEvent("PLAYER_UPDATE_RESTING");
     frame:RegisterEvent("PARTY_LEADER_CHANGED");
     registerUnitEvents(frame);
+    registerCastEvents(frame.castbar);
     unitEvent(frame, "UPDATE_ALL_BARS");
 end
 
 local function frameHide(frame)
     frame:UnregisterAllEvents();
+    unregisterCastEvents(frame.castbar);
 end
 
 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
 
-function OmaUnitFrames.InitializePlayer(parent)
+local vehicletoggle = [=[
+    if newstate == "vehicle" then
+        self:SetAttribute("displayed", self:GetAttribute("vehicle"));
+    else
+        self:SetAttribute("displayed", self:GetAttribute("unit"));
+    end
+]=]
+
+function OmaUnitFrames.UpdatePlayerTooltips()
     GameTooltip = _G["GameTooltip"];
     GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
+end
+
+function OmaUnitFrames.InitializePlayer(parent)
     attributes = Settings.Character.Clickheal;
 
     local secure = CreateFrame("Button", "OmaPlayerSecure", parent, inheritedFrames);
@@ -63,6 +75,8 @@ function OmaUnitFrames.InitializePlayer(parent)
     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;
@@ -83,31 +97,31 @@ function OmaUnitFrames.InitializePlayer(parent)
     frame.healthback = frame:CreateTexture(nil, "BACKGROUND", nil, 1);
     frame.healthback:SetPoint("TOPLEFT", frame, "TOPLEFT", 1, -1);
     frame.healthback:SetPoint("BOTTOMRIGHT", frame, "RIGHT", -1, -5);
-    frame.healthback:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill");
+    frame.healthback:SetTexture(barTexture);
     frame.healthback:SetVertexColor(unpack(bgColor));
     frame.health = frame:CreateTexture(nil, "BORDER");
     frame.health:SetPoint("TOPLEFT", frame.healthback, "TOPLEFT");
     frame.health:SetPoint("BOTTOMLEFT", frame.healthback, "BOTTOMLEFT");
-    frame.health:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill");
+    frame.health:SetTexture(barTexture);
     frame.health:SetVertexColor(unpack(healthColor));
     frame.healthText = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightLarge");
-    frame.healthText:SetPoint("RIGHT", frame.healthback, "RIGHT", -2, 0);
+    frame.healthText:SetPoint("RIGHT", frame.healthback, "RIGHT", -2, 1);
     frame.manaback = frame:CreateTexture(nil, "BACKGROUND", nil, 1);
     frame.manaback:SetPoint("TOPLEFT", frame, "LEFT", 1, -5);
     frame.manaback:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -1, 1);
-    frame.manaback:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill");
+    frame.manaback:SetTexture(barTexture);
     frame.manaback:SetVertexColor(unpack(bgColor));
     frame.mana = frame:CreateTexture(nil, "BORDER");
     frame.mana:SetPoint("TOPLEFT", frame.manaback, "TOPLEFT");
     frame.mana:SetPoint("BOTTOMLEFT", frame.manaback, "BOTTOMLEFT");
-    frame.mana:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill");
+    frame.mana:SetTexture(barTexture);
     frame.manaText = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlight");
-    frame.manaText:SetPoint("RIGHT", frame.manaback, "RIGHT", -2, 0);
+    frame.manaText:SetPoint("RIGHT", frame.manaback, "RIGHT", -2, 1);
     frame.manaText:Hide();
     frame.shield = frame:CreateTexture(nil, "BORDER");
     frame.shield:SetPoint("TOPLEFT", frame.health, "TOPRIGHT");
     frame.shield:SetPoint("BOTTOMLEFT", frame.health, "BOTTOMRIGHT");
-    frame.shield:SetTexture("Interface\\RaidFrame\\Shield-Fill");
+    frame.shield:SetTexture(barTexture);
     frame.shield:SetVertexColor(unpack(shieldColor));
     frame.shield:Hide();
     frame.shieldhl = frame:CreateTexture(nil, "ARTWORK");
@@ -115,16 +129,6 @@ function OmaUnitFrames.InitializePlayer(parent)
     frame.shieldhl:SetPoint("BOTTOMRIGHT", frame.healthback, "BOTTOMRIGHT", 1, 0);
     frame.shieldhl:SetColorTexture(unpack(shieldhlColor));
     frame.shieldhl:Hide();
-    frame.healpred = frame:CreateTexture(nil, "ARTWORK");
-    frame.healpred:SetPoint("TOPLEFT", frame.health, "TOPRIGHT");
-    frame.healpred:SetPoint("BOTTOMLEFT", frame.health, "BOTTOMRIGHT");
-    frame.healpred:SetColorTexture(unpack(healpredColor));
-    frame.healpred:Hide();
-    frame.healabsorb = frame:CreateTexture(nil, "ARTWORK");
-    frame.healabsorb:SetPoint("TOPRIGHT", frame.health, "TOPRIGHT");
-    frame.healabsorb:SetPoint("BOTTOMRIGHT", frame.health, "BOTTOMRIGHT");
-    frame.healabsorb:SetColorTexture(unpack(healabsorbColor));
-    frame.healabsorb:Hide();
     frame.status = frame:CreateTexture(nil, "OVERLAY");
     frame.status:SetPoint("TOPLEFT", frame.manaback, "BOTTOMLEFT", -8, 8);
     frame.status:SetPoint("BOTTOMRIGHT", frame.manaback, "BOTTOMLEFT", 8, -8);
@@ -141,6 +145,13 @@ function OmaUnitFrames.InitializePlayer(parent)
     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();
+    frame.castbar = OmaUFCastBar.CreateCastBar(frame, unit, 8);
     -- set scripts
     frame:SetScript("OnShow", frameShow);
     frame:SetScript("OnHide", frameHide);
@@ -155,7 +166,10 @@ function OmaUnitFrames.InitializePlayer(parent)
     -- rest give target and menu
     secure:SetAttribute("*type1", "target");
     secure:SetAttribute("*type2", "togglemenu");
+    secure:SetAttribute("toggleForVehicle", true);
     RegisterUnitWatch(frame);
     RegisterUnitWatch(secure);
+    RegisterStateDriver(secure, "vehicleui", "[vehicleui] vehicle; no");
+    secure:SetAttribute("_onstate-vehicleui", vehicletoggle);
     return frame;
 end