//Three parameters static public void AddListener <T, U, V>(MessageId_Receive messageID, Callback <T, U, V> handler) { uint eventType = (uint)messageID; OnListenerAdding(eventType, handler); m_eventListenTable[eventType] = (Callback <T, U, V>)m_eventListenTable[eventType] + handler; }
//Three parameters static public void RemoveListener <T, U, V>(MessageId_Receive messageID, Callback <T, U, V> handler) { uint eventType = (uint)messageID; if (OnListenerRemoving(eventType, handler)) { m_eventListenTable[eventType] = (Callback <T, U, V>)m_eventListenTable[eventType] - handler; if (m_eventListenTable[eventType] == null) { Remove(eventType); } } }
static public void BroadcastAsync <T, U, V>(MessageId_Receive eventType, T arg1, U arg2, V arg3) { DoBroadcast <T, U, V>((uint)eventType, arg1, arg2, arg3, true); }
//Two parameters static public void Broadcast <T, U>(MessageId_Receive eventType, T arg1, U arg2) { DoBroadcast <T, U>((uint)eventType, arg1, arg2, false); }
static public void BroadcastAsync <T>(MessageId_Receive eventType, T arg1) { DoBroadcast <T>((uint)eventType, arg1, true); }
static public void BroadcastAsync(MessageId_Receive eventType) { DoBroadcast((uint)eventType, true); }
static public void Broadcast(MessageId_Receive eventType) { DoBroadcast((uint)eventType, false); }
protected void SendToClient(MessageId_Receive messageId, IMessage message) { Game.NetworkManager.Session.OnMessage((ushort)messageId, message); }