Example #1
0
        //----------------------------------------------------------------------

        private void ReplaceWithNull(IGameEventReceiver <TMessage> r)
        {
            var oldIndex = IndexOf(r);

            if (oldIndex >= 0)
            {
                m_array[oldIndex] = null;
            }
        }
Example #2
0
        private int IndexOf(IGameEventReceiver <TMessage> t)
        {
            if (m_array == null)
            {
                return(-1);
            }

            return(Array.IndexOf(m_array, t, 0, m_length));
        }
Example #3
0
        //----------------------------------------------------------------------

        public void Add(IGameEventReceiver <TMessage> r)
        {
            var oldIndex = IndexOf(r);

            if (oldIndex < 0)
            {
                var newIndex = m_length;
                Array.Resize(ref m_array, ++m_length);
                m_array[newIndex] = r;
            }
        }
Example #4
0
 private void RemoveFromArray(IGameEventReceiver <TMessage> r)
 {
     for (int o = 0, n = m_length; o < n; ++o)
     {
         if (m_array[o] == r)
         {
             for (int i = o + 1; i < n; ++o, ++i)
             {
                 m_array[o] = m_array[i];
             }
             m_length -= 1;
             return;
         }
     }
 }
Example #5
0
 public void Remove(IGameEventReceiver <TMessage> r)
 {
     if (m_array == null)
     {
         return;
     }
     if (m_invocationInProgress)
     {
         ReplaceWithNull(r);
     }
     else
     {
         RemoveFromArray(r);
     }
 }
        public static void RegisterEventListener(GameEventType aType, IGameEventReceiver aListener)
        {
            if(aListener == null)
            {
                return;
            }

            switch(aType)
            {
                case GameEventType.GAME:
                    instance.m_GameEventListener.Add(aListener);
                    break;
                case GameEventType.UNIT:
                    instance.m_UnitEventListener.Add(aListener);
                    break;
                case GameEventType.TRIGGER:
                    instance.m_TriggerEventListener.Add(aListener);
                    break;
            }
        }
 public static void Add(IGameEventReceiver <object> receiver)
 {
     s_receivers.Add(receiver);
 }
 public static void Remove(IGameEventReceiver <object> receiver)
 {
     s_receivers.Remove(receiver);
 }