Exemplo n.º 1
0
        protected override void OnTransition(BehaviorInputData Input)
        {
            if (NeedExit_)
            {
                OnExit(Input, BehaviorRunningState.Error);
            }

            SetActiveNode(null);
            TerminalState_ = BehaviorTerminalState.Ready;
            NeedExit_      = false;
        }
Exemplo n.º 2
0
        protected override BehaviorRunningState OnTick(BehaviorInputData Input)
        {
            var State = BehaviorRunningState.Finish;

            if (TerminalState_ == BehaviorTerminalState.Ready)
            {
                OnEnter(Input);
                NeedExit_      = true;
                TerminalState_ = BehaviorTerminalState.Running;
                SetActiveNode(this);
            }

            if (TerminalState_ == BehaviorTerminalState.Running)
            {
                State = OnExecute(Input);
                SetActiveNode(this);

                if (State == BehaviorRunningState.Finish || State == BehaviorRunningState.Error)
                {
                    TerminalState_ = BehaviorTerminalState.Finish;
                }
            }

            if (TerminalState_ == BehaviorTerminalState.Finish)
            {
                if (NeedExit_)
                {
                    OnExit(Input, State);
                }

                TerminalState_ = BehaviorTerminalState.Ready;
                NeedExit_      = false;
                SetActiveNode(null);
            }

            return(State);
        }
Exemplo n.º 3
0
 public BehaviorTerminalNode()
     : base(string.Empty, null, null)
 {
     TerminalState_ = BehaviorTerminalState.Ready;
     NeedExit_      = false;
 }