Exemplo n.º 1
0
        /// <summary>
        /// 获取条件
        /// </summary>
        /// <typeparam name="T">基础状态机条件</typeparam>
        /// <returns>状态机条件</returns>
        public T GetCondition <T>() where T : BaseFSMCondition
        {
            BaseFSMCondition t_Condition;

            IConditionMapDataStructure.TryGetValue(typeof(T).Name, out t_Condition);
            return(t_Condition as T);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 移除状态机条件
        /// </summary>
        /// <param name="t_FSMName">状态机条件的类名</param>
        public void RemoveCondition(string t_ConditionName)
        {
            BaseFSMCondition value;

            IConditionMapDataStructure.TryGetValue(t_ConditionName, out value);

            if (!IStateMapDataStructure.ContainsKey(t_ConditionName))
            {
                IStateMapDataStructure.Remove(t_ConditionName);
            }
            if (null != value)
            {
                value.OnConditionDestroy(this);
            }
        }