public void RegisterListener(EventListenerSO listener, ObjectEvent callback) { if (!IsRegistered(listener)) { listenersCallbacks.Add(new ListenerEventPair(listener, callback)); } }
public void UnregisterListener(EventListenerSO listener) { ListenerEventPair listenerEventPair = null; if (Find(listener, out listenerEventPair)) { listenersCallbacks.Remove(listenerEventPair); } }
private bool IsRegistered(EventListenerSO listener) { for (int i = listenersCallbacks.Count - 1; i >= 0; i--) { if (listenersCallbacks[i].listener == listener) { return(true); } } return(false); }
private bool Find(EventListenerSO listener, out ListenerEventPair listenerEventPair) { listenerEventPair = null; for (int i = listenersCallbacks.Count - 1; i >= 0; i--) { if (listenersCallbacks[i].listener == listener) { listenerEventPair = listenersCallbacks[i]; return(true); } } return(false); }
public ListenerEventPair(EventListenerSO listener, ObjectEvent objectEvent) { this.listener = listener; this.objectEvent = objectEvent; }