/branches/border/Aloft/Aloft
local SML = LibStub("LibSharedMedia-3.0") |
local AloftVisibility = nil |
local AloftAlpha = nil |
----------------------------------------------------------------------------- |
Aloft.namespace = "aloft" |
end |
self.showClassColorInVKey = GetCVarBool("ShowClassColorInNameplate") |
AloftVisibility = Aloft:GetModule("Visibility", true) |
AloftAlpha = Aloft:GetModule("Alpha", true) |
--[[ |
table.insert(PreLoadDebugHistory, "ALOFT END") |
----------------------------------------------------------------------------- |
-- NOTE: this notion of "original" alpha does seem to work here... but it does not work in AloftIsTargetData:DoNameplateShow(); TODO: figure out why |
function Aloft:GetTargetNameplate(unitName) |
-- ChatFrame7:AddMessage("Aloft:GetTargetNameplate(): enter") |
end |
-- ChatFrame7:AddMessage("Aloft:GetTargetNameplate(): seek " .. (targetName or "<NOTARGET>")) |
local aloftData = self:GetNameplateByAlpha(targetName, 1) |
local original = AloftAlpha and AloftAlpha:IsEnabled() and AloftVisibility and AloftVisibility:IsEnabled() and AloftVisibility.db and AloftVisibility.db.profile and AloftVisibility.db.profile.useAlpha and AloftVisibility.db.profile.target |
local aloftData = self:GetNameplateByAlpha(targetName, 1, original) |
if (not aloftData) then |
-- ChatFrame7:AddMessage("Aloft:GetTargetNameplate(): no nameplate") |
noTargetNameplate = true |
return aloftData |
end |
function Aloft:GetNameplateByAlpha(unitName, nameplateAlpha) |
-- NOTE: this notion of "original" alpha does seem to work here... but it does not work in AloftIsTargetData:DoNameplateShow(); TODO: figure out why |
function Aloft:GetNameplateByAlpha(unitName, nameplateAlpha, original) |
-- ChatFrame7:AddMessage("Aloft:GetNameplateByAlpha(): enter" --[[.. debugstack()]]) |
if not unitName then return end |
-- local aloftData = nameToNameplateMap[unitName] |
if (nameToNameplateMultiMap[unitName]) then |
for aloftData in pairs(nameToNameplateMultiMap[unitName]) do |
if aloftData and aloftData.nameplateFrame:GetAlpha() == nameplateAlpha then |
local nameplateFrame = aloftData and aloftData.nameplateFrame |
if nameplateFrame and ((nameplateFrame:GetAlpha() == nameplateAlpha) or (original and nameplateFrame.originalAlpha == nameplateAlpha)) then |
-- ChatFrame7:AddMessage("Aloft:GetNameplateByAlpha(): fast " .. tostring(aloftData.name)) |
return aloftData |
end |
-- full visible nameplate search |
-- ChatFrame7:AddMessage("Aloft:GetNameplateByAlpha(): iterate visible nameplates") |
for aloftData in pairs(visibleNameplateList) do |
if aloftData.name == unitName and aloftData.nameplateFrame:GetAlpha() == nameplateAlpha then |
-- record it for future reference |
nameToNameplateMap[unitName] = aloftData -- most recently seen nameplate with this unit name |
if (not nameToNameplateMultiMap[unitName]) then nameToNameplateMultiMap[unitName] = { } end |
nameToNameplateMultiMap[aloftData.name][aloftData] = true |
-- ChatFrame7:AddMessage("Aloft:GetNameplateByAlpha(): slow " .. tostring(aloftData.name)) |
return aloftData |
if aloftData.name == unitName then |
local nameplateFrame = aloftData and aloftData.nameplateFrame |
if nameplateFrame and ((nameplateFrame:GetAlpha() == nameplateAlpha) or (original and nameplateFrame.originalAlpha == nameplateAlpha)) then |
-- record it for future reference |
nameToNameplateMap[unitName] = aloftData -- most recently seen nameplate with this unit name |
if (not nameToNameplateMultiMap[unitName]) then nameToNameplateMultiMap[unitName] = { } end |
nameToNameplateMultiMap[aloftData.name][aloftData] = true |
-- ChatFrame7:AddMessage("Aloft:GetNameplateByAlpha(): slow " .. tostring(aloftData.name)) |
return aloftData |
end |
end |
end |
local _, healthBarMaxValue = healthBar:GetMinMaxValues() |
aloftData.healthBarMaxValue = healthBarMaxValue |
aloftData.isTarget = nil |
aloftData.nameplateFrame.originalAlpha = nil |
aloftData.isBoss = aloftData.bossIconRegion:IsShown() |
local levelTextRegion = aloftData.levelTextRegion |