private void UpdateStatesFromLinks()
{
if (links == null)
return;
foreach (var link in links)
{
if (!started && !starting)
return;
Input input = GetInput(link.InputId);
Output output = GetOutput(link.OutputId);
input.Value = output.Value;
//update node internal logic
Node node = GetInputOwner(input);
node.CheckInputDataTypeIsCorrect(input);
if (node.GetNodeOptions().ResetOutputsIfAnyInputIsNull
&& node.Inputs.Any(i => !i.IsOptional && i.Value == null))
node.ResetOutputs();
else
node.OnInputChange(input);
}
}