Pixel-Composer/scripts/node_iterate_each/node_iterate_each.gml
2024-09-04 08:57:11 +07:00

39 lines
1.2 KiB
Plaintext

function Node_Iterate_Each(_x, _y, _group = noone) : Node_Iterator(_x, _y, _group) constructor {
name = "Loop Array";
newInput(0, nodeValue("Array", self, CONNECT_TYPE.input, VALUE_TYPE.any, [] ))
.setVisible(true, true);
newOutput(0, nodeValue_Output("Array", self, VALUE_TYPE.any, [] ));
custom_input_index = array_length(inputs);
custom_output_index = array_length(inputs);
if(NODE_NEW_MANUAL) { #region
var input = nodeBuild("Node_Iterator_Each_Input", -256, -32, self);
var output = nodeBuild("Node_Iterator_Each_Output", 256, -32, self);
output.inputs[0].setFrom(input.outputs[0]);
} #endregion
static onStep = function() { #region
var type = inputs[0].value_from == noone? VALUE_TYPE.any : inputs[0].value_from.type;
inputs[0].setType(type);
} #endregion
static doInitLoop = function() { #region
var arrIn = getInputData(0);
var arrOut = outputs[0].getValue();
if(array_length(arrOut) != array_length(arrIn))
outputs[0].setValue([]);
} #endregion
static getIterationCount = function() { #region
var arrIn = getInputData(0);
var maxIter = is_array(arrIn)? array_length(arrIn) : 0;
if(!is_real(maxIter)) maxIter = 1;
return maxIter;
} #endregion
}