Exemplo n.º 1
0
        /// <summary>
        /// 取消订阅状态机事件。
        /// </summary>
        protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                Debug.LogError("状态机事件处理方法为空,无法取消订阅状态机事件");
            }

            if (_eventHandlers.ContainsKey(eventId))
            {
                _eventHandlers[eventId] -= eventHandler;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 响应状态机事件。
        /// </summary>
        public void OnEvent(Fsm <T> fsm, object sender, int eventId, object userData)
        {
            FsmEventHandler <T> eventHandlers = null;

            if (_eventHandlers.TryGetValue(eventId, out eventHandlers))
            {
                if (eventHandlers != null)
                {
                    eventHandlers(fsm, sender, userData);
                }
            }
        }
Exemplo n.º 3
0
    protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
    {
        if (eventHandler == null)
        {
            Debug.LogError("State Event Is null ,Can't UnSubscribe StateEvent");
        }

        if (m_EventHandlers.ContainsKey(eventId))
        {
            m_EventHandlers[eventId] -= eventHandler;
        }
    }
Exemplo n.º 4
0
        /// <summary>
        /// 取消订阅有限状态机事件。
        /// </summary>
        /// <param name="eventId">事件编号。</param>
        /// <param name="eventHandler">有限状态机事件响应函数。</param>
        protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                throw new System.Exception("Event handler is invalid.");
            }

            if (m_EventHandlers.ContainsKey(eventId))
            {
                m_EventHandlers[eventId] -= eventHandler;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 响应有限状态机事件时调用。
        /// </summary>
        /// <param name="fsm">有限状态机引用。</param>
        /// <param name="sender">事件源。</param>
        /// <param name="eventId">事件编号。</param>
        /// <param name="userData">用户自定义数据。</param>
        internal void OnEvent(IFsm fsm, object sender, int eventId, object userData)
        {
            FsmEventHandler eventHandlers = null;

            if (m_EventHandlers.TryGetValue(eventId, out eventHandlers))
            {
                if (eventHandlers != null)
                {
                    eventHandlers(fsm, sender, userData);
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 取消订阅有限状态机事件。
        /// </summary>
        /// <param name="eventId">事件编号。</param>
        /// <param name="eventHandler">有限状态机事件响应函数。</param>
        public void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                throw new GameFrameworkException("Event handler is invalid.");
            }

            if (m_EventHandlers.ContainsKey(eventId))
            {
                m_EventHandlers[eventId] -= eventHandler;
            }
        }
Exemplo n.º 7
0
        internal void Subscribe(FsmActiveChance fsmActiveChance, FsmEventHandler <T> fsmEvent)
        {
            int id = (int)fsmActiveChance;

            if (fsmEvents[id] == null)
            {
                fsmEvents[id] = fsmEvent;
            }
            else
            {
                fsmEvents[id] += fsmEvent;
            }
        }
Exemplo n.º 8
0
    /// <summary>
    /// 响应有限状态机事件时调用。
    /// </summary>
    /// <param name="fsm">有限状态机引用。</param>
    /// <param name="sender">事件源。</param>
    /// <param name="eventId">事件编号。</param>
    /// <param name="userData">用户自定义数据。</param>
    internal bool OnEvent(IFsm <T> fsm, object sender, int eventId, object userData)
    {
        FsmEventHandler <T> eventHandlers = null;

        if (m_EventHandlers.TryGetValue(eventId, out eventHandlers))
        {
            if (eventHandlers != null)
            {
                return(eventHandlers(fsm, sender, userData));
            }
        }
        return(false);
    }
Exemplo n.º 9
0
 protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
 {
     if (eventHandler)
     {
         throw;
     }
     if (!m_EventHandlers.ContainsKey(eventId))
     {
         m_EventHandlers[eventId] = eventHandler;
     }
     else
     {
         m_EventHandlers[eventId] += eventHandler;
     }
 }
Exemplo n.º 10
0
 protected void SubscribeEvent(int eventId, FsmEventHandler <T> handler)
 {
     if (handler == null)
     {
         throw new ArgumentNullException(nameof(handler));
     }
     if (!_events.ContainsKey(eventId))
     {
         _events[eventId] = handler;
     }
     else
     {
         _events[eventId] += handler;
     }
 }
Exemplo n.º 11
0
 /// <summary>
 /// 订阅状态机事件
 /// </summary>
 /// <param name="eventId"></param>
 /// <param name="eventHandler"></param>
 protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
 {
     if (eventHandler == null)
     {
         Debug.LogError("状态机事件响应方法为空,无法订阅状态机事件!");
     }
     if (!m_EventHandlers.ContainsKey(eventId))
     {
         m_EventHandlers.Add(eventId, eventHandler);
     }
     else
     {
         m_EventHandlers[eventId] += eventHandler;
     }
 }
Exemplo n.º 12
0
        /// <summary>
        /// 订阅有限状态机事件。
        /// </summary>
        /// <param name="eventId">事件编号。</param>
        /// <param name="eventHandler">有限状态机事件响应函数。</param>
        protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                throw new AshException("Event handler is invalid.");
            }

            if (!m_EventHandlers.ContainsKey(eventId))
            {
                m_EventHandlers[eventId] = eventHandler;
            }
            else
            {
                m_EventHandlers[eventId] += eventHandler;
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// 订阅有限状态机事件。
        /// </summary>
        /// <param name="eventId">事件编号。</param>
        /// <param name="eventHandler">有限状态机事件响应函数。</param>
        protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                Logger.LogError("Event handler is invalid.");
            }

            if (!mEventHandlers.ContainsKey(eventId))
            {
                mEventHandlers[eventId] = eventHandler;
            }
            else
            {
                mEventHandlers[eventId] += eventHandler;
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// 订阅状态机事件。
        /// </summary>
        protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler)
        {
            if (eventHandler == null)
            {
                Debug.LogError("状态机事件处理方法为空,无法订阅状态机事件");
            }

            if (!_eventHandlers.ContainsKey(eventId))
            {
                _eventHandlers[eventId] = eventHandler;
            }
            else
            {
                _eventHandlers[eventId] += eventHandler;
            }
        }
Exemplo n.º 15
0
        internal void UnSubscribe(FsmActiveChance fsmActiveChance, FsmEventHandler <T> fsmEvent)
        {
            int id = (int)fsmActiveChance;

            fsmEvents[id] -= fsmEvent;
        }
Exemplo n.º 16
0
 internal void UnSubscribeChange(int id, FsmEventHandler <T> fsmEventHandler)
 {
     changeEvents[id] -= fsmEventHandler;
 }