02682ca - Add Empowered Pulse Grenade to be tracked
[wowui.git] / OmaUF / TargetFrame.lua
index c88519d..9192038 100644 (file)
@@ -2,12 +2,12 @@
 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;
 
@@ -17,7 +17,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.Target.Width, Settings.Target.Height;
 local anchorX, anchorY = Settings.Target.AnchorX, Settings.Target.AnchorY;
@@ -25,22 +24,22 @@ local anchorX, anchorY = Settings.Target.AnchorX, Settings.Target.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");
-    frame:RegisterEvent("GROUP_ROSTER_UPDATE"); -- TODO needed? won't be having group number in frames
+    frame:RegisterEvent("GROUP_ROSTER_UPDATE");
     frame:RegisterEvent("PLAYER_ENTERING_WORLD");
     frame:RegisterEvent("PLAYER_TARGET_CHANGED");
     frame:RegisterEvent("PARTY_LEADER_CHANGED");
     frame:RegisterUnitEvent("UNIT_LEVEL", frame.unit);
     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)
@@ -52,9 +51,12 @@ local function hideTooltip(secure)
     GameTooltip:FadeOut();
 end
 
-function OmaUnitFrames.InitializeTarget(parent)
+function OmaUnitFrames.UpdateTargetTooltips()
     GameTooltip = _G["GameTooltip"];
     GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
+end
+
+function OmaUnitFrames.InitializeTarget(parent)
     attributes = Settings.Character.Clickheal;
 
     local secure = CreateFrame("Button", "OmaTargetSecure", parent, inheritedFrames);
@@ -66,7 +68,6 @@ function OmaUnitFrames.InitializeTarget(parent)
     frame:SetAttribute("unit", unit);
     frame.unit = unit;
     frame.displayed = unit;
-    --frame.vehicle = unit.."pet"; -- TODO nothing extra needed for target vehicles?
     -- hide frame to get initial frameShow call
     frame:Hide();
     -- create visuals
@@ -82,31 +83,31 @@ function OmaUnitFrames.InitializeTarget(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");
@@ -114,11 +115,6 @@ function OmaUnitFrames.InitializeTarget(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");
@@ -140,8 +136,17 @@ function OmaUnitFrames.InitializeTarget(parent)
     frame.leader:Hide();
     frame.name = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlightLarge");
     frame.name:SetPoint("LEFT", frame.healthback, "LEFT", 2, 1);
+    frame.name.count = 8;
     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);
+    createAuraFrame(frame, unit);
     -- set scripts
     frame:SetScript("OnShow", frameShow);
     frame:SetScript("OnHide", frameHide);
@@ -156,7 +161,7 @@ function OmaUnitFrames.InitializeTarget(parent)
     -- rest give target and menu
     secure:SetAttribute("*type1", "target");
     secure:SetAttribute("*type2", "togglemenu");
-    createAuraFrame(frame, unit);
+    secure:SetAttribute("toggleForVehicle", false);
     RegisterUnitWatch(frame);
     RegisterUnitWatch(secure);
     return frame;