WoWInterface SVN Aloft

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /branches/4.2/Aloft/Aloft
    from Rev 2264 to Rev 2275
    Reverse comparison

Rev 2264 → Rev 2275

AloftGroupTargetCountData.lua
15,6 → 15,7
-----------------------------------------------------------------------------
 
local groupTargetCount = setmetatable({ }, { __index = function() return 0 end })
local groupTargetGUIDCount = setmetatable({ }, { __index = function() return 0 end })
 
-----------------------------------------------------------------------------
 
26,6 → 27,14
numeric = true
}
 
Aloft.TagData.GroupTargetGUIDCount =
{
data = "groupTargetGUIDCount",
events = "Aloft:OnGroupTargetGUIDCountChanged",
tableData = "groupTargetGUIDCount",
numeric = true
}
 
-----------------------------------------------------------------------------
 
--[[
38,10 → 47,11
-----------------------------------------------------------------------------
 
function AloftGroupTargetCountData:ProvidesData()
return "groupTargetCount"
return "groupTargetCount", "groupTargetGUIDCount"
end
 
function AloftGroupTargetCountData:EnableDataSource()
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:EnableDataSource(): enter")
self:ScheduleRepeatingTimer(function() AloftGroupTargetCountData:Update() end, 0.25) -- 4x per second
end
 
71,50 → 81,104
-----------------------------------------------------------------------------
 
function AloftGroupTargetCountData:Update()
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:Update(): enter")
 
for k in pairs(groupTargetCount) do
groupTargetCount[k] = nil
end
for k in pairs(groupTargetGUIDCount) do
groupTargetGUIDCount[k] = nil
end
 
local groupTarget = nil
local playerTarget = nil
local playerTargetGUID = nil
local raidMembers = GetNumRaidMembers()
if raidMembers > 0 then
groupTarget = true
for i=1,raidMembers-1 do -- Exclude the player, who is the top raid#
local name = UnitName("raid"..i.."target")
local uid = "raid"..i.."target"
local name = UnitName(uid)
local guid = UnitGUID(uid)
if name then
groupTargetCount[name] = groupTargetCount[name] + 1
end
if guid then
groupTargetGUIDCount[guid] = groupTargetGUIDCount[guid] + 1
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:Update(): raid " .. tostring(name) .. "/" .. tostring(guid) .. "/" .. tostring(groupTargetGUIDCount[guid]))
end
end
else
local partyMembers = GetNumPartyMembers()
if partyMembers > 0 then
groupTarget = true
for i=1,partyMembers do
local name = UnitName("party"..i.."target")
local uid = "party"..i.."target"
local name = UnitName(uid)
local guid = UnitGUID(uid)
if name then
groupTargetCount[name] = groupTargetCount[name] + 1
end
if guid then
groupTargetGUIDCount[guid] = groupTargetGUIDCount[guid] + 1
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:Update(): group " .. tostring(name) .. "/" .. tostring(guid) .. "/" .. tostring(groupTargetGUIDCount[guid]))
end
end
elseif (UnitExists("pet")) then -- the simplest form of "group": the player with a pet
playerTarget = UnitName("target") -- just add the player
 
local guid = UnitGUID("target")
if guid then
groupTargetGUIDCount[guid] = groupTargetGUIDCount[guid] + 1
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:Update(): player " .. tostring(name) .. "/" .. tostring(guid) .. "/" .. tostring(groupTargetGUIDCount[guid]))
end
end
end
-- TODO: incorporate race/class and raid target assignment to differentiate counts
-- TODO: add an option to include pets?
 
-- list of nameplates with a modified groupTargetGUIDCount
local groupTargetGUIDList = { }
 
for aloftData in Aloft:IterateVisibleNameplates() do
-- clear the GUID target count
local guid = aloftData.groupTargetGUIDCount
if guid then
aloftData.groupTargetGUIDCount = nil
groupTargetGUIDList[aloftData] = true
end
 
-- process the name-based target count
local count
if (groupTarget) then
if groupTarget then
count = groupTargetCount[aloftData.name]
elseif playerTarget == aloftData.name and (aloftData.isTarget or aloftData:IsTarget()) then
count = 1
end
 
if count ~= aloftData.groupTargetCount then -- this clears if needed
aloftData.groupTargetCount = count
self:SendMessage("Aloft:OnGroupTargetCountChanged", aloftData)
end
-- ChatFrame7:AddMessage("AloftGroupTargetCountData:Update(): " .. tostring(aloftData.name) .. "/" .. tostring(aloftData.groupTargetCount))
end
 
local targetGUID = UnitGUID("target")
if targetGUID then
local aloftData = Aloft:GetTargetNameplate()
if aloftData then
local guid = groupTargetGUIDCount[targetGUID]
if guid then
aloftData.groupTargetGUIDCount = guid
groupTargetGUIDList[aloftData] = true
end
end
end
 
for aloftData in pairs(groupTargetGUIDList) do
groupTargetGUIDList[aloftData] = nil
self:SendMessage("Aloft:OnGroupTargetGUIDCountChanged", aloftData)
end
end
 
-----------------------------------------------------------------------------
AloftCommentText.lua
170,6 → 170,7
self.textMethodData = Aloft:CreateTag(self.db.profile.format, true)
self.textMethod = self.textMethodData.method
end
-- ChatFrame7:AddMessage("AloftCommentText:UpdateText(): " .. tostring(aloftData.name) .. "/" .. tostring(self.textMethodData.functionString))
local text = self.textMethod and self.textMethod(aloftData)
-- ChatFrame7:AddMessage("AloftCommentText:UpdateText(): " .. tostring(aloftData.name) .. "/" .. tostring(text))