All pastes #194324 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-10-07 20:11 UTC
rendered paste body
aUFBanzai = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceHook-2.0")

local _G = getfenv(0)

function aUFBanzai:OnEnable()
	if not aUF then return end	

	-- add aggro methods to unit prototype
	function aUF.classes.aUFunit.prototype:Banzai_UnitGainedAggro(byevent)
		if type(byevent) =="table" and not byevent[self.unit] then return end		
		self.HealthBar:SetStatusBarColor(1, 0, 0)
	end	
	
	function aUF.classes.aUFunit.prototype:Banzai_UnitLostAggro(byevent)
		if type(byevent) =="table" and not byevent[self.unit] then return end		
	end	
	
	-- register events in current instances
	for k,v in aUF.units do
		v:RegisterEvent("Banzai_UnitGainedAggro")
		v:RegisterEvent("Banzai_UnitLostAggro")
	end
	
	-- all future instances will have events registered
	function aUF.classes.aUFunit.prototype:RegisterEventsNew(allEvents,unregister)
		if not unregister and self.eventsRegistered == false then
			self:RegisterEvent("Banzai_UnitGainedAggro")
			self:RegisterEvent("Banzai_UnitLostAggro")
		elseif self.eventsRegistered == true and unregister then
			self:UnregisterEvent("Banzai_UnitGainedAggro")
			self:UnregisterEvent("Banzai_UnitLostAggro")		
		end
		self:RegisterEventsOld(allEvents,unregister)
	end
	
	-- hook RegisterEvents
	aUF.classes.aUFunit.prototype.RegisterEventsOld = aUF.classes.aUFunit.prototype.RegisterEvents
	aUF.classes.aUFunit.prototype.RegisterEvents = aUF.classes.aUFunit.prototype.RegisterEventsNew
end