/// <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); }
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!"); } }