WoWInterface SVN oUF_Smee2

[/] [trunk/] [oUF/] [elements/] [masterlooter.lua] - Rev 4

Compare with Previous | Blame | View Log

local parent = debugstack():match[[\AddOns\(.-)\]]
local global = GetAddOnMetadata(parent, 'X-oUF')
assert(global, 'X-oUF needs to be defined in the parent add-on.')
local oUF = _G[global]

local function Update(self, event)
        local unit
        local method, pid, rid = GetLootMethod()
        if(method == 'master') then
                if(pid) then
                        if(pid == 0) then
                                unit = 'player'
                        else
                                unit = 'party'..pid
                        end
                elseif(rid) then
                        unit = 'raid'..rid
                end

                if(UnitIsUnit(unit, self.unit)) then
                        self.MasterLooter:Show()
                elseif(self.MasterLooter:IsShown()) then
                        self.MasterLooter:Hide()
                end
        elseif(self.MasterLooter:IsShown()) then
                self.MasterLooter:Hide()
        end
end

local function Enable(self, unit)
        local masterlooter = self.MasterLooter
        if(masterlooter) then
                self:RegisterEvent('PARTY_LOOT_METHOD_CHANGED', Update)
                self:RegisterEvent('PARTY_MEMBERS_CHANGED', Update)

                if(masterlooter:IsObjectType('Texture') and not masterlooter:GetTexture()) then
                        masterlooter:SetTexture([[Interface\GroupFrame\UI-Group-MasterLooter]])
                end

                return true
        end
end

local function Disable(self)
        if(self.MasterLooter) then
                self:UnregisterEvent('PARTY_LOOT_METHOD_CHANGED', Update)
                self:UnregisterEvent('PARTY_MEMBERS_CHANGED', Update)
        end
end

oUF:AddElement('MasterLooter', Update, Enable, Disable)

Compare with Previous | Blame