ProtoFlux:For: Difference between revisions

From Resonite Wiki
m ProbablePrime moved page For (ProtoFlux) to ProtoFlux:For: Creating protoflux Namespace
m fix types
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
|Inputs=
|Inputs=
[
[
{"Name": "*", "Type": "Impulse"},
{"Name": "*", "Type": "Call"},
{"Name": "Count", "Type": "int"},
{"Name": "Count", "Type": "int"},
{"Name": "Reverse", "Type": "bool"}
{"Name": "Reverse", "Type": "bool"}
Line 10: Line 10:
|Outputs=
|Outputs=
[
[
{"Name": "LoopStart", "Type":"Impulse"},
{"Name": "LoopStart", "Type":"Call"},
{"Name": "LoopIteration", "Type":"Impulse"},
{"Name": "LoopIteration", "Type":"Call"},
{"Name": "LoopEnd", "Type":"Continuation"},
{"Name": "LoopEnd", "Type":"Continuation"},
{"Name": "iteration", "Type":"int"}
{"Name": "iteration", "Type":"int"}
Line 18: Line 18:
The For node is used to perform looping operations. allowing to fire impulses a set amount of times. As well as outputting the current iteration count.
The For node is used to perform looping operations. allowing to fire impulses a set amount of times. As well as outputting the current iteration count.


For the async variant. See [[ASync For (ProtoFlux)|Async For]]
For the async variant. See [[ProtoFlux:ASync For|Async For]]


== Inputs ==
== Inputs ==


=== * (Call) ===  
=== * ([[Impulses|Call]]) ===  


When an impulse is received. It triggers the for node. Starting the loop.
When an impulse is received. It triggers the for node. Starting the loop.
Line 36: Line 36:
== Outputs ==
== Outputs ==


=== LoopStart (Call) ===
=== LoopStart ([[Impulses|Call]]) ===


Fires once immediately after <code>*</code> is pulsed. completing the connected node chain before the loop starts and any impulses are fired from <code>LoopIteration</code>. Allowing for operations to be done before the loop.
Fires once immediately after <code>*</code> is pulsed. completing the connected node chain before the loop starts and any impulses are fired from <code>LoopIteration</code>. Allowing for operations to be done before the loop.


=== LoopIteration (Call) ===
=== LoopIteration ([[Impulses|Call]]) ===


Fires impulses sequentially until the total amount equals <code>Count</code>. No impulses will be fired if <code>Count</code> is 0 or a negative number. the impulse chain will complete before the next <code>LoopIteration</code> is fired. unless there is any type of async delay in the chain. causing it to execute up until the delay before firing the next impulse.
Fires impulses sequentially until the total amount equals <code>Count</code>. No impulses will be fired if <code>Count</code> is 0 or a negative number. the impulse chain will complete before the next <code>LoopIteration</code> is fired. unless there is any type of async delay in the chain. causing it to execute up until the delay before firing the next impulse.


=== LoopEnd (Continuation) ===
=== LoopEnd ([[Impulses|Continuation]]) ===


Fires once after the loop is completed. Allowing the execution chain to continue. Allowing for operations to be done after the loop has been completed.
Fires once after the loop is completed. Allowing the execution chain to continue. Allowing for operations to be done after the loop has been completed.

Latest revision as of 20:15, 9 February 2024

For
*
LoopStart
Count
LoopIteration
Reverse
LoopEnd
iteration
Flow

The For node is used to perform looping operations. allowing to fire impulses a set amount of times. As well as outputting the current iteration count.

For the async variant. See Async For

Inputs

* (Call)

When an impulse is received. It triggers the for node. Starting the loop.

Count (Int)

sets the number of iterations the for loop will run for. The count is evaluated before the LoopStart impulse is fired and the count cannot be changed during the loop. The default is 0.

Reverse (Bool)

Controls whether the Iteration increases or decreases for each LoopIteration. The default is false.

Outputs

LoopStart (Call)

Fires once immediately after * is pulsed. completing the connected node chain before the loop starts and any impulses are fired from LoopIteration. Allowing for operations to be done before the loop.

LoopIteration (Call)

Fires impulses sequentially until the total amount equals Count. No impulses will be fired if Count is 0 or a negative number. the impulse chain will complete before the next LoopIteration is fired. unless there is any type of async delay in the chain. causing it to execute up until the delay before firing the next impulse.

LoopEnd (Continuation)

Fires once after the loop is completed. Allowing the execution chain to continue. Allowing for operations to be done after the loop has been completed.

Iteration (Int)

Outputs the current iteration of the loop. Updates every time LoopIteration is fired. If Reverse is false. Iteration will start at 0 and increase each loop. ending at Count - 1. If Reverse is true. it will start at Count - 1 and decrease each loop. ending at 0.

If Count is 5 and Reverse is false. The iteration during the loop would be 0, 1, 2, 3, 4

And if Reverse is true. The iteration would be 4, 3, 2, 1, 0

Examples