add RelationalClasses
add attachevent
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
class ICCME_EventBase extends Object
|
||||
class ICCME_EventBase extends RelationalClasses
|
||||
abstract;
|
||||
|
||||
// time the event was created (relative to game start)
|
||||
@@ -7,8 +7,48 @@ var float createdTime;
|
||||
// Tell the engine this event must be treated in the current Tick() context and not the next one
|
||||
var bool bUrgent;
|
||||
|
||||
var array<ICCME_EventListenerBase> _ar_AttachedEventListener;
|
||||
var bool _bBroadcast;
|
||||
|
||||
// print Event relevent informations in the main UT log file
|
||||
function doLog()
|
||||
{
|
||||
log("===== Event:"@Self.Class@"["$createdTime$"]"@"=====");
|
||||
}
|
||||
|
||||
static function attach(ICCME_EventListenerBase EventListener)
|
||||
{
|
||||
local int i;
|
||||
local bool bAlreadyRegistered;
|
||||
|
||||
if(EventListener.bMonitor) return;
|
||||
|
||||
for(i=0;i<default._ar_AttachedEventListener.Length;i++)
|
||||
{
|
||||
if(default._ar_AttachedEventListener[i] == EventListener)
|
||||
{
|
||||
bAlreadyRegistered=True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!bAlreadyRegistered)
|
||||
{
|
||||
default._ar_AttachedEventListener.Length = default._ar_AttachedEventListener.Length + 1;
|
||||
default._ar_AttachedEventListener[default._ar_AttachedEventListener.Length-1] = EventListener;
|
||||
}
|
||||
|
||||
for(i=0;i<default.Tchilds.length;i++)
|
||||
{
|
||||
class<ICCME_EventBase>(default.Tchilds[i]).static.attach(EventListener);
|
||||
}
|
||||
}
|
||||
|
||||
function RunAttached()
|
||||
{
|
||||
local int i;
|
||||
for(i=0;i<default._ar_AttachedEventListener.Length;i++)
|
||||
{
|
||||
default._ar_AttachedEventListener[i].ProcessEvent(Self);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user