From a5940de0c59cc9f6acc34c09402dbe137fcf4650 Mon Sep 17 00:00:00 2001 From: Aleksi Blinnikka Date: Sun, 4 Feb 2018 04:53:19 +0200 Subject: [PATCH 1/1] Add raid marker support --- OmaRF/Events.lua | 25 +++++++++++++++---------- OmaRF/RaidFrame.lua | 6 ++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/OmaRF/Events.lua b/OmaRF/Events.lua index 26565ab..404e063 100644 --- a/OmaRF/Events.lua +++ b/OmaRF/Events.lua @@ -16,6 +16,7 @@ local UnitGetTotalHealAbsorbs = UnitGetTotalHealAbsorbs; local UnitHasVehicleUI, UnitTargetsVehicleInRaidUI = UnitHasVehicleUI, UnitTargetsVehicleInRaidUI; local GetReadyCheckTimeLeft, GetReadyCheckStatus = GetReadyCheckTimeLeft, GetReadyCheckStatus; local UnitGroupRolesAssigned = UnitGroupRolesAssigned; +local GetRaidTargetIndex, SetRaidTargetIconTexture = GetRaidTargetIndex, SetRaidTargetIconTexture; local RAID_CLASS_COLORS = RAID_CLASS_COLORS; local READY_CHECK_READY_TEXTURE = READY_CHECK_READY_TEXTURE; local READY_CHECK_NOT_READY_TEXTURE = READY_CHECK_NOT_READY_TEXTURE; @@ -39,6 +40,7 @@ function M.RegisterEvents(frame) frame:RegisterEvent("READY_CHECK"); frame:RegisterEvent("READY_CHECK_FINISHED"); frame:RegisterEvent("GROUP_ROSTER_UPDATE"); + frame:RegisterEvent("RAID_TARGET_UPDATE"); if frame.unit == "focus" then frame:RegisterEvent("PLAYER_FOCUS_CHANGED") end end @@ -88,7 +90,6 @@ function M.RegisterUnitEvents(frame) frame:RegisterUnitEvent("UNIT_ENTERED_VEHICLE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_EXITED_VEHICLE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_PET", frame.unit, displayed); - frame:RegisterUnitEvent("RAID_TARGET_UPDATE", frame.unit, displayed); end local registerUnitEvents = M.RegisterUnitEvents; @@ -287,22 +288,20 @@ local function updateRole(frame, unit) if role == "HEALER" then frame.role:SetTexCoord(0.75, 1, 0, 1); frame.role:Show(); - if not frame.role.healer then - registerPower(frame); - frame.role.healer = true; - end + registerPower(frame); + frame.role.healer = true; elseif role == "TANK" then frame.role:SetTexCoord(0.5, 0.75, 0, 1); frame.role:Show(); if frame.role.healer then - unregisterPower(frame); frame.role.healer = false; + unregisterPower(frame); end else frame.role:Hide(); if frame.role.healer then - unregisterPower(frame); frame.role.healer = false; + unregisterPower(frame); end end end @@ -324,7 +323,13 @@ local function updateReadyCheck(frame, unit) end local function updateRaidMarker(frame, unit) - --print(unit, "marker"); + local index = GetRaidTargetIndex(unit); + if index then + SetRaidTargetIconTexture(frame.targeticon, index); + frame.targeticon:Show(); + else + frame.targeticon:Hide(); + end end local eventFuncs = { @@ -393,7 +398,7 @@ local eventFuncs = { updateReadyCheck(frame, frame.unit); end, ["RAID_TARGET_UPDATE"] = function(frame) - updateRaidMarker(frame, frame.unit); + updateRaidMarker(frame, frame.displayed); end, ["UPDATE_ALL_BARS"] = function(frame) updateRole(frame, frame.unit); @@ -414,7 +419,7 @@ local eventFuncs = { updateName(frame, frame.displayed); updateIncomingRes(frame, frame.unit); updateReadyCheck(frame, frame.unit); - updateRaidMarker(frame, frame.unit); + updateRaidMarker(frame, frame.displayed); end, }; eventFuncs["UNIT_HEALTH_FREQUENT"] = eventFuncs["UNIT_HEALTH"]; diff --git a/OmaRF/RaidFrame.lua b/OmaRF/RaidFrame.lua index f5db419..f8ca89f 100644 --- a/OmaRF/RaidFrame.lua +++ b/OmaRF/RaidFrame.lua @@ -145,6 +145,12 @@ local function setupFrame(frame, secure, unit) frame.ready:SetPoint("TOPLEFT", frame.background, "BOTTOMLEFT", 0, 14); frame.ready:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMLEFT", 14, 0); frame.ready:Hide(); + frame.targeticon = frame:CreateTexture(nil, "OVERLAY"); + frame.targeticon:SetPoint("CENTER", frame.background, "TOP"); + frame.targeticon:SetWidth(12); + frame.targeticon:SetHeight(12); + frame.targeticon:SetTexture("Interface\\TARGETINGFRAME\\UI-RaidTargetingIcons"); + frame.targeticon:Hide(); -- set up indicators setupIndicators(frame, class); -- set scripts -- 2.39.5