Exemple #1
0
        public static BTFsm CreateFromOtherTemplate(BTFsm targetFsm, BTTemplate source)
        {
            for (int i = 0; i < source.totalEvent.Count; i++)
            {
                BTEvent.Create(targetFsm, source.totalEvent[i]);
            }

            for (int i = 0; i < source.totalState.Count; i++)
            {
                BTState.Create(targetFsm, source.totalState[i]);
            }
            for (int i = 0; i < source.totalState.Count; i++)
            {
                var state = targetFsm.totalState[i];
                state.ReFindEvent();
            }

            for (int i = 0; i < source.totalVariable.Count; i++)
            {
                BTVariable.Create(targetFsm, source.totalVariable[i]);
            }

            targetFsm.startEvent = targetFsm.FindGlobalEvent(source.startEvent.Name);

            return(targetFsm);
        }
Exemple #2
0
        public static BTFsm CreateFromOwnerTemplate(BTFsm targetFsm, BTTemplate source)
        {
            for (int i = 0; i < source.totalEvent.Count; i++)
            {
                targetFsm.totalEvent[i].Owner = targetFsm;
            }
            targetFsm.totalState.Clear();

            for (int i = 0; i < source.totalState.Count; i++)
            {
                BTState.Create(targetFsm, source.totalState[i]);
            }

            for (int i = 0; i < targetFsm.totalState.Count; i++)
            {
                var state = targetFsm.totalState[i];
                for (int j = 0; j < state.totalEvent.Count; j++)
                {
                    if (state.totalEvent[j].TargetState != null)
                    {
                        state.totalEvent[j].TargetState = targetFsm.FindState(state.totalEvent[j].TargetState.Name);
                    }
                }
            }
            targetFsm.totalVariable.Clear();
            for (int i = 0; i < source.totalVariable.Count; i++)
            {
                BTVariable.Create(targetFsm, source.totalVariable[i]);
            }

            targetFsm.startEvent = targetFsm.FindGlobalEvent(targetFsm.startEvent.Name);
            return(targetFsm);
        }
Exemple #3
0
        public static BTVariable Create(BTFsm btFsm, BTVariable source)
        {
            var btVar = Instantiate(source);

            btVar.Owner  = btFsm;
            btVar.Source = source;
            btVar.Name   = source.Name;
            btFsm.totalVariable.Add(btVar);
            return(btVar);
        }
Exemple #4
0
 public BTVariable FindVar(BTVariable variable)
 {
     for (int i = 0; i < totalVariable.Count; i++)
     {
         if (totalVariable[i].Source == variable)
         {
             return(totalVariable[i]);
         }
     }
     return(null);
 }