-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. "live/exists " .. tostring(targetId)) |
|
local targetGUId = UnitGUID(targetId) |
self:ClearGUIdTracking(targetGUId) |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(targetGUId)) |
if targetGUId then |
self:ClearGUIdTracking(targetGUId) |
|
local name = UnitName(targetId) |
local race, _ = UnitRace(targetId) -- assuming that if there is a race, the unit name is unique (i.e. a player char) |
local _, class = UnitClass(targetId) -- assuming that if there is a class, the unit name is unique (i.e. a player char) |
local raidTargetIndex = GetRaidTargetIndex(targetId) -- the target is required to have a raid icon assigned |
local isUnique = self:IsUnique(name, UnitClassification(targetId), UnitLevel(targetId)) |
local name = UnitName(targetId) |
local race, _ = UnitRace(targetId) -- assuming that if there is a race, the unit name is unique (i.e. a player char) |
local _, class = UnitClass(targetId) -- assuming that if there is a class, the unit name is unique (i.e. a player char) |
local raidTargetIndex = GetRaidTargetIndex(targetId) -- the target is required to have a raid icon assigned |
local isUnique = self:IsUnique(name, UnitClassification(targetId), UnitLevel(targetId)) |
local nameplateId |
|
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(race) .. "/" .. tostring(class) .. "/" .. tostring(raidTargetIndex) .. "/" .. tostring(isUnique)) |
if targetGUId and ((race and class) or raidTargetIndex or isUnique) then |
local nameplateId |
if race and class then |
nameplateId = self:FormatNameplateId(name, true, nil, nil) |
elseif raidTargetIndex or isUnique then |
nameplateId = self:FormatNameplateId(name, nil, raidTargetIndex, isUnique) |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(race) .. "/" .. tostring(class) .. "/" .. tostring(raidTargetIndex) .. "/" .. tostring(isUnique)) |
if ((race and class) or raidTargetIndex or isUnique) then |
if race and class then |
nameplateId = self:FormatNameplateId(name, true, nil, nil) |
elseif raidTargetIndex or isUnique then |
nameplateId = self:FormatNameplateId(name, nil, raidTargetIndex, isUnique) |
end |
|
if nameplateId then |
AloftTargetTrackingData.targetIdToNameplateId[targetId] = nameplateId |
if (not AloftTargetTrackingData.nameplateIdToTargetId[nameplateId]) then AloftTargetTrackingData.nameplateIdToTargetId[nameplateId] = { } end |
AloftTargetTrackingData.nameplateIdToTargetId[nameplateId][targetId] = true |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(self.targetIdToNameplateId[targetId]) .. "/" .. tostring(self.nameplateIdToTargetId[nameplateId][targetId])) |
|
self.nameplateIdToTargetGUId[nameplateId] = targetGUId |
self.targetGUIdToNameplateId[targetGUId] = nameplateId |
self.targetGUIdToNameplateTime[targetGUId] = GetTime() |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): >>>>> " .. tostring(targetGUId) .. "/" .. tostring(self.targetGUIdToNameplateId[targetGUId]) .. "/" .. tostring(self.targetGUIdToNameplateTime[targetGUId]) .. "/" .. tostring(nameplate and self.nameplateIdToTargetGUId[nameplateId]) .. "/" .. tostring(name)) |
end |
end |
|
AloftTargetTrackingData.targetIdToNameplateId[targetId] = nameplateId |
if (not AloftTargetTrackingData.nameplateIdToTargetId[nameplateId]) then AloftTargetTrackingData.nameplateIdToTargetId[nameplateId] = { } end |
AloftTargetTrackingData.nameplateIdToTargetId[nameplateId][targetId] = true |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(self.targetIdToNameplateId[targetId]) .. "/" .. tostring(self.nameplateIdToTargetId[nameplateId][targetId])) |
-- for friendly group-members and arena unitids only |
if not suffix then |
self.unitidToGUId[targetId] = targetGUId |
|
self.nameplateIdToTargetGUId[nameplateId] = targetGUId |
self.targetGUIdToNameplateId[targetGUId] = nameplateId |
self.targetGUIdToNameplateTime[targetGUId] = GetTime() |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): >>>>> " .. tostring(targetGUId) .. "/" .. tostring(self.targetGUIdToNameplateId[targetGUId]) .. "/" .. tostring(self.targetGUIdToNameplateTime[targetGUId]) .. "/" .. tostring(nameplate and self.nameplateIdToTargetGUId[nameplateId]) .. "/" .. tostring(name)) |
-- create an empty guid->unitid map |
if not self.guidToUnitid[targetGUId] then |
self.guidToUnitid[targetGUId] = { } |
end |
self.guidToUnitid[targetGUId][targetId] = true |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(name) .. " --- " .. tostring(targetId) .. "/" .. tostring(self.guidToUnitid[targetGUId][targetId]) .. " <> " .. tostring(targetGUId) .. "/" .. tostring(self.unitidToGUId[targetId])) |
end |
|
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): trigger " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(targetGUId)) |
self:SendMessage("AloftTargetTrackingData:OnTargetTrackingDataUpdated", targetId, nameplateId) |
if nameplateId then |
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): trigger " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(targetGUId)) |
self:SendMessage("AloftTargetTrackingData:OnTargetTrackingDataUpdated", targetId, nameplateId) |
end |
end |
|
-- for non-targets/friendly group-members only |
if not suffix then |
self.unitidToGUId[targetId] = targetGUId |
self.guidToUnitid[targetGUId] = targetId |
end |
end |
|
--[[ |