public override AINodeResult Execute(ref AINode lastRunningNode, AIMember aiMember) { lastRunningNode = null; for (; index < Childs.Count; index++) { AINode node = Childs[index]; AINodeResult nResult = node.Run(ref lastRunningNode, aiMember); if (nResult == AINodeResult.Failure) { continue; } if (nResult == AINodeResult.Success) { index = 0; return(AINodeResult.Success); } if (nResult == AINodeResult.Running) { lastRunningNode = node; return(AINodeResult.Running); } } index = 0; return(AINodeResult.Failure); }
public AINodeResult Run(ref AINode lastRunningNode, AIMember aiMember) { AINodeResult result = Execute(ref lastRunningNode, aiMember); ResultState = result; return(result); }
private AINodeResult RunTrueNode(ref AINode lastRunningNode, AIMember aiMember) { AINodeResult nResult = TrueNode.Run(ref lastRunningNode, aiMember); if (nResult == AINodeResult.Running) { _trueNodeInRunning = true; lastRunningNode = TrueNode; return(AINodeResult.Running); } return(nResult); }
private void OnResult(AINodeResult result) { ResultState = result; }