private IEnumerator SetValues(IGraphRunner graph, IVariableDictionary variables, int iteration, Variable item) { if (Index.IsValid) { Index.Execute(variables); // Variable.Int(iteration) } if (Value.IsValid) { Value.Execute(variables); // item } yield return(graph.Run(Loop, variables, nameof(Loop))); }
public override IEnumerator Run(IGraphRunner graph, IVariableDictionary variables) { for (var i = 0; i < Sequence.Count; i++) { var node = Sequence[i]; if (node) { yield return(graph.Run(node, variables, GetConnectionName(nameof(Sequence), i))); } } }
public override IEnumerator Run(IGraphRunner graph, IVariableDictionary variables) { var index = 0; while (true) { if (Index.IsValid) { Index.Assign(variables, Variable.Int(index++)); } var condition = Condition.Execute(variables, VariableType.Bool); if (!condition.AsBool || Loop == null) { break; } yield return(graph.Run(Loop, variables, nameof(Loop))); } }
private IEnumerator Run(IGraphRunner graph, IVariableDictionary variables, GraphNode node, string source, NodeState state) { yield return(graph.Run(node, variables, source)); state.IsFinished = true; }