public void Unsubscribe <ComponentType>(int eventName, IntraObjectHandler <ComponentType> handler, bool suppressWarnings) { if (!intraObjectDispatcher.TryGetValue(eventName, out List <IntraObjectHandlerBase> value)) { if (!suppressWarnings) { Debug.LogWarning("Failed to Unsubscribe event handler: " + handler.ToString() + "\nNo subscriptions have been made to event"); } } else { int num = value.IndexOf((IntraObjectHandlerBase)handler); if (num == -1) { if (!suppressWarnings) { Debug.LogWarning("Failed to Unsubscribe event handler: " + handler.ToString() + "\nNot subscribed to event"); } } else { Unsubscribe(eventName, num, suppressWarnings); } } }
public int Subscribe <ComponentType>(int eventName, IntraObjectHandler <ComponentType> handler) { if (!intraObjectDispatcher.TryGetValue(eventName, out List <IntraObjectHandlerBase> value)) { value = new List <IntraObjectHandlerBase>(); intraObjectDispatcher.Add(eventName, value); } int num = value.IndexOf((IntraObjectHandlerBase)handler); if (num == -1) { value.Add((IntraObjectHandlerBase)handler); num = value.Count - 1; } intraObjectRoutes.Add(new IntraObjectRoute(eventName, num)); return(num); }