public override void Import(AbstractEventHandler @from) { EventHandler EventHandler = (EventHandler)from; if (EventHandler != null) { eventListeners.AddRange(EventHandler.eventListeners); } }
public static void AddListenerToHandler <T>(AbstractEventHandler handler, AbstractEventHandler.OnEvent <T> onEvent, params object[] arg) where T : Event { if (CheckIfEditor()) { return; } //clear to be removed if being added again if (Instance.queuedRemoveListeners.RemoveAll(l => l.internalDelegate == onEvent) <= 0) { //add the listener to the event handler handler.AddListener(onEvent, WrapListener(onEvent), onEvent.Target as UnityEngine.Object, arg); } }
public override void Import(AbstractEventHandler from) { if (from is WeightedEventHandler <T> ) { eventListeners.AddRange(((WeightedEventHandler <T>)from).eventListeners); } else if (from is EventHandler) { EventHandler EventHandler = (EventHandler)from; foreach (var eventListener in EventHandler.eventListeners) { eventListeners.Add(new ListenerWrapperWeighted(eventListener.Callback, eventListener.Handle, 1)); } } }
public static AbstractEventHandler RegisterEvent(Type type, AbstractEventHandler mainListener) { CheckEventType(type); if (Instance.eventListeners.ContainsKey(type)) { Debug.LogWarningFormat("Event Handler for type {0} is already defined, replacing with new handler. All listeners will be transferred", type.FullName); mainListener.Import(Instance.eventListeners[type]); Instance.eventListeners[type] = mainListener; } else { Instance.eventListeners.Add(type, mainListener); } return(mainListener); }
public static void RegisterEvent <T>(AbstractEventHandler listener) where T : Event { RegisterEvent(typeof(T), listener); }
public abstract void Import(AbstractEventHandler from);