コード例 #1
0
ファイル: ParallelNode.cs プロジェクト: RhythNS/RunAndGun
        /// <summary>
        /// Handles what happens when a child finishes execution.
        /// </summary>
        /// <param name="onFinish">The action that should be done.</param>
        /// <param name="childIndex">The child that finished execution.</param>
        /// <returns>Wheter the node should continue to execute its children.</returns>
        private bool HandleOnFinish(BNodeUtil.ReturnOperation onFinish, int childIndex)
        {
            switch (onFinish)
            {
            case BNodeUtil.ReturnOperation.ReturnFailure:
                CurrentStatus = Status.Failure;
                return(false);

            case BNodeUtil.ReturnOperation.Restart:
                children[childIndex].Restart();
                children[childIndex].Beginn();
                break;

            case BNodeUtil.ReturnOperation.ReturnSuccess:
                CurrentStatus = Status.Success;
                return(false);
            }
            return(true);
        }
コード例 #2
0
ファイル: IfElseNode.cs プロジェクト: RhythNS/RunAndGun
        private bool OnCheckReturnOperation(BNodeUtil.ReturnOperation operation, BNode node)
        {
            switch (operation)
            {
            case BNodeUtil.ReturnOperation.ReturnFailure:
                CurrentStatus = Status.Failure;
                return(false);

            case BNodeUtil.ReturnOperation.Restart:
                node.Restart();
                node.Beginn();
                return(true);

            case BNodeUtil.ReturnOperation.ReturnSuccess:
                CurrentStatus = Status.Success;
                return(false);

            default:
                throw new System.Exception(operation + " not implemented!");
            }
        }