Exemplo n.º 1
0
 public override void SendMessage <T>(T message)
 {
     for (int i = 0; i < listeners.Count; i++)
     {
         MatchMessageListener listener = listeners[i];
         if (listener.MessageType == message.GetType())
         {
             ((MatchMessageHandler <T>)listener.Handler).Invoke(message, 0);
         }
     }
 }
Exemplo n.º 2
0
        private void ReceiveMessage <T>(T message, double timestamp) where T : MatchMessage
        {
            float travelTime = (float)(NetTime.Now - timestamp);

            for (int i = 0; i < listeners.Count; i++)
            {
                MatchMessageListener listener = listeners[i];
                if (listener.MessageType == message.GetType())
                {
                    ((MatchMessageHandler <T>)listener.Handler).Invoke(message, travelTime);
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Removes the first found listener (if any) matching to the supplied handler delegate.
 /// </summary>
 /// <typeparam name="T">Message type to look for.</typeparam>
 /// <param name="handler">Handler to remove.</param>
 /// <returns>True if a listener was removed, false if none found.</returns>
 public bool RemoveListener <T>(MatchMessageHandler <T> handler) where T : MatchMessage
 {
     for (int i = 0; i < listeners.Count; i++)
     {
         MatchMessageListener listenerEntry = listeners[i];
         if (listenerEntry.MessageType == typeof(T) && (MatchMessageHandler <T>)listenerEntry.Handler == handler)
         {
             listeners.Remove(listenerEntry);
             return(true);
         }
     }
     return(false);
 }