public EventListenerDispatcher(string eventName, IEventListener <T> eventListener, GameObject gameObject, ReceiveEventStates receiveEventState) { EventName = eventName; EventListener = eventListener; GameObject = gameObject; ReceiveEventState = receiveEventState; }
/// <summary> /// Copy listener properties from the given listener /// </summary> /// <param name="copyFrom">listener to copy properties from</param> public void CopyFrom(NamedEventListener copyFrom) { if (copyFrom == null || !copyFrom.IsValid()) { UnityEngine.Debug.LogError("Invalid interaction to copy from."); return; } EventName = copyFrom.EventName; CopyEventListener(copyFrom.EventListener); EventListenerPropertyType = copyFrom.EventListenerPropertyType; ReceiveEventState = copyFrom.ReceiveEventState; }
/// <summary> /// Copy interaction properties from the given Interaction /// </summary> /// <param name="interactionToUpdate">Interaction to copy properties from</param> private void CopyFrom(Interaction copyFrom) { if (copyFrom == null || !copyFrom.IsValid()) { Debug.LogError("Invalid interaction to copy from."); return; } Event = copyFrom.Event; ValueConverter = gameObject.AddComponentFrom(copyFrom.ValueConverter); EventHandler = gameObject.AddComponentFrom(copyFrom.EventHandler); EventController = copyFrom.EventController; EventPropertyType = copyFrom.EventPropertyType; EventHandlerPropertyType = copyFrom.EventHandlerPropertyType; ReceiveEventState = copyFrom.ReceiveEventState; }
public void Add(IEventListener <TEventListener> listener, GameObject owner, ReceiveEventStates receiveEventState) { EventListenerInfo info = new EventListenerInfo { Listener = listener, Owner = owner, ReceiveEventState = receiveEventState, }; if (receiveEventState == ReceiveEventStates.Always) { _alwaysReceiveEvents.Add(info); } else { List <EventListenerInfo> listeners; if (!_gameObjToListenersMap.TryGetValue(owner, out listeners)) { listeners = new List <EventListenerInfo>(); _gameObjToListenersMap[owner] = listeners; } listeners.Add(info); } }
public static void AddListener(string eventName, IEventListener <TEventListener> listener, GameObject owner, ReceiveEventStates receiveEventState) { EventListenerCollection listeners; if (!_eventNameToListeners.TryGetValue(eventName, out listeners)) { listeners = new EventListenerCollection(); _eventNameToListeners[eventName] = listeners; } listeners.Add(listener, owner, receiveEventState); }