예제 #1
0
 /// <summary>
 /// Removes listener from events procesing.
 /// </summary>
 /// <param name="listener">External listener.</param>
 public void RemoveListener(IEcsFilterListener listener)
 {
     if (listener != null)
     {
         for (var i = _listenersCount - 1; i >= 0; i--)
         {
             if (_listeners[i] == listener)
             {
                 _listenersCount--;
                 Array.Copy(_listeners, i + 1, _listeners, i, _listenersCount - i);
                 break;
             }
         }
     }
 }
예제 #2
0
        /// <summary>
        /// Adds listener to events procesing.
        /// </summary>
        /// <param name="listener">External listener.</param>
        public void AddListener(IEcsFilterListener listener)
        {
#if DEBUG
            if (listener == null)
            {
                throw new System.ArgumentNullException();
            }

            for (var i = 0; i < _listenersCount; i++)
            {
                if (_listeners[i] == listener)
                {
                    throw new System.Exception("Listener already added");
                }
            }
#endif
            if (_listenersCount == _listeners.Length)
            {
                Array.Resize(ref _listeners, _listenersCount << 1);
            }
            _listeners[_listenersCount++] = listener;
        }
예제 #3
0
        /// <summary>
        /// Adds listener to events procesing.
        /// </summary>
        /// <param name="listener">External listener.</param>
        public void AddListener(IEcsFilterListener listener)
        {
#if DEBUG
            if (listener == null)
            {
                throw new System.ArgumentNullException();
            }

            for (var i = 0; i < _listenersCount; i++)
            {
                if (_listeners[i] == listener)
                {
                    throw new System.Exception("Listener already added");
                }
            }
#endif
            if (_listenersCount == _listeners.Length)
            {
                var newListeners = new IEcsFilterListener[_listenersCount << 1];
                Array.Copy(_listeners, 0, newListeners, 0, _listenersCount);
                _listeners = newListeners;
            }
            _listeners[_listenersCount++] = listener;
        }