public override NodeStates Evaluate() { mDebug(); if (m_outputs[0].m_connectedTo != null) { BaseNode node = m_outputs[0].m_connectedTo.m_holderNode; switch (node.Evaluate()) { case NodeStates.FAILURE: m_nodeState = NodeStates.SUCCESS; return(m_nodeState); case NodeStates.SUCCESS: m_nodeState = NodeStates.FAILURE; return(m_nodeState); case NodeStates.RUNNING: m_nodeState = NodeStates.RUNNING; return(m_nodeState); } } m_nodeState = NodeStates.SUCCESS; return(m_nodeState); }
public override NodeStates Evaluate() { mDebug(); foreach (NodeOutput output in m_outputs) { if (output == null) { continue; } if (output.m_connectedTo == null) { continue; } BaseNode node = output.m_connectedTo.m_holderNode; switch (node.Evaluate()) { case NodeStates.FAILURE: continue; case NodeStates.SUCCESS: m_nodeState = NodeStates.SUCCESS; return(m_nodeState); case NodeStates.RUNNING: m_nodeState = NodeStates.RUNNING; return(m_nodeState); default: continue; } } m_nodeState = NodeStates.FAILURE; return(m_nodeState); }
public override NodeStates Evaluate() { mDebug(); bool anyChildRunning = false; foreach (NodeOutput output in m_outputs) { if (output.m_connectedTo == null) { continue; } BaseNode node = output.m_connectedTo.m_holderNode; switch (node.Evaluate()) { case NodeStates.FAILURE: m_nodeState = NodeStates.FAILURE; return(m_nodeState); case NodeStates.SUCCESS: continue; case NodeStates.RUNNING: anyChildRunning = true; m_nodeState = NodeStates.RUNNING; return(m_nodeState); default: m_nodeState = NodeStates.SUCCESS; return(m_nodeState); } } m_nodeState = anyChildRunning ? NodeStates.RUNNING : NodeStates.SUCCESS; return(m_nodeState); }