Added some stuff |
expand the page on how data variants work with dynamic impulses |
||
Line 4: | Line 4: | ||
<!--T:2--> | <!--T:2--> | ||
'''Dynamic impulses''' allow for [[ProtoFlux Impulses|impulses]] to travel to other ProtoFlux programs anywhere in the world, and allow for large, complex programs to be built out of simple pieces. | '''Dynamic impulses''' allow for [[ProtoFlux Impulses|impulses]] to travel to other [[ProtoFlux]] programs anywhere in the world, and allow for large, complex programs to be built out of simple pieces. | ||
<!--T:12--> | |||
Dynamic Impulses also have button component variants that also have alt versions for sending data. These components can trigger ProtoFlux just like [[ProtoFlux:Dynamic Impulse Trigger|Dynamic Impulse Trigger]] ProtoFlux nodes can. | |||
= Usage = <!--T:3--> | = Usage = <!--T:3--> | ||
Line 12: | Line 15: | ||
<!--T:5--> | <!--T:5--> | ||
A '''receiver''' takes a string tag. | A '''receiver''' takes a string tag and for the with data variant outputs a value. The tag and type determines what it listens for. A dynamic impulse is triggered only with an impulse of the correct tag and datatype. If no type is specified, the receiver has to have no type. Only when those conditions are met an impulse will flow out of the node. | ||
<!--T:6--> | <!--T:6--> | ||
A '''trigger''' takes a slot to target and a | A '''trigger''' takes a slot to target, a tag, and optionally a value to use. Every receiver under the targeted slot with a matching tag and value's datatype will be triggered. If the trigger has no datatype the receiver must have no data type. | ||
<!--T:7--> | <!--T:7--> | ||
Line 30: | Line 33: | ||
<!--T:11--> | <!--T:11--> | ||
Importantly, this means that anything available in the context of the triggering impulse, such as the collider that a collision occurred with, is also available to the receivers. This also makes dynamic impulses instant. If there are several receivers, they run in order; they will never run simultaneously. An infinite loop of dynamic impulses will eventually cause the involved nodes to break. | Importantly, this means that anything available in the context of the triggering impulse, such as the collider that a collision occurred with, is also available to the receivers. This also makes dynamic impulses instant. If there are several receivers, they run in order; they will never run simultaneously. An infinite loop of dynamic impulses will eventually cause the involved nodes to break. | ||
TODO: What about ASync Dynamic Impulse Triggers and Recievers? | |||
{{Stub}} |
Revision as of 06:14, 3 February 2024
Dynamic impulses allow for impulses to travel to other ProtoFlux programs anywhere in the world, and allow for large, complex programs to be built out of simple pieces.
Dynamic Impulses also have button component variants that also have alt versions for sending data. These components can trigger ProtoFlux just like Dynamic Impulse Trigger ProtoFlux nodes can.
Usage
There are two main parts to dynamic impulses: triggers and receivers.
A receiver takes a string tag and for the with data variant outputs a value. The tag and type determines what it listens for. A dynamic impulse is triggered only with an impulse of the correct tag and datatype. If no type is specified, the receiver has to have no type. Only when those conditions are met an impulse will flow out of the node.
A trigger takes a slot to target, a tag, and optionally a value to use. Every receiver under the targeted slot with a matching tag and value's datatype will be triggered. If the trigger has no datatype the receiver must have no data type.
Optionally, dynamic impulses can also carry a single value or reference. ProtoFlux nodes that can do this are Dynamic Impulse Trigger With Data and Dynamic Impulse Receiver With Data. There are also component variants, like Button Dynamic Impulse Trigger With Reference and Button Dynamic Impulse Trigger With Value. The value is sent by the trigger and received by the receiver.
Specifics
Dynamic Impulse Trigger and Dynamic Impulse Receiver are used for dynamic impulses that do not include a value.
A dynamic impulse trigger sends the impulse it received to all matching receivers.
Importantly, this means that anything available in the context of the triggering impulse, such as the collider that a collision occurred with, is also available to the receivers. This also makes dynamic impulses instant. If there are several receivers, they run in order; they will never run simultaneously. An infinite loop of dynamic impulses will eventually cause the involved nodes to break.
TODO: What about ASync Dynamic Impulse Triggers and Recievers?
This article or section is a Stub. You can help the Resonite Wiki by expanding it.