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;
        }
Exemple #3
0
        /// <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);
        }