Pixel-Composer/scripts/node_feedback_input/node_feedback_input.gml
2024-04-01 16:10:01 +07:00

26 lines
962 B
Plaintext

function Node_Feedback_Input(_x, _y, _group = noone) : Node_Group_Input(_x, _y, _group) constructor {
name = "Feedback Input";
color = COLORS.node_blend_feedback;
is_group_io = true;
setDimension(96, 32 + 24 * 2);
outputs[| 0].getValueDefault = method(outputs[| 0], outputs[| 0].getValueRecursive); //Get value from outside loop
outputs[| 0].getValueRecursive = function(arr, _time) {
var _node_output = noone;
for( var i = 0; i < array_length(outputs[| 1].value_to); i++ ) {
var vt = outputs[| 1].value_to[i];
if(vt.value_from == outputs[| 1])
_node_output = vt;
}
if(CURRENT_FRAME > 0 && _node_output != noone && _node_output.node.cache_value != noone) { //use cache from output
arr[@ 0] = _node_output.node.cache_value;
arr[@ 1] = inParent;
return;
}
outputs[| 0].getValueDefault(arr);
}
outputs[| 1] = nodeValue("Feedback loop", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, 0).nonForward();
}