DIFF

class ScriptInvokerSource

ScriptInvoker Class provide list of callbacks
usage:

class Player
{
	ref ScriptInvoker m_DeathInvoker	= new ScriptInvoker();

	void OnKilled()
	{
		m_DeathInvoker.Invoke(this);
	}
}

void LogPlayerDeath(p)
{
	Print("RIP " + p);
}

class Game
{
	void RemovePlayer(Player p)
	{
	}

	void GameOver()
	{
	}
}

void OnPlayerSpaned(Player p)
{
	Game game = g_Game;
	p.m_DeathInvoker.Insert(LogPlayerDeath);
	p.m_DeathInvoker.Insert(game.RemovePlayer);
	p.m_DeathInvoker.Insert(game.GameOver);
}

Methods 5

proto void Invoke(void param1 = NULL, void param2 = NULL, void param3 = NULL, void param4 = NULL, void param5 = NULL, void param6 = NULL, void param7 = NULL, void param8 = NULL, void param9 = NULL)

invoke call on all inserted methods with given arguments

proto bool Insert(func fn, int flags = EScriptInvokerInsertFlags.IMMEDIATE)

insert method to list

proto bool Remove(func fn, int flags = EScriptInvokerRemoveFlags.ALL)

remove specific call from list

proto int Count(func fn)

count how many times this fn is actively present in the Invoker