MyNodes.Nodes.NodesEngine.OnInputChange C# (CSharp) Method

OnInputChange() public method

public OnInputChange ( MyNodes.Nodes.Input input ) : void
input MyNodes.Nodes.Input
return void
        public void OnInputChange(Input input)
        {
            if (!started)
                return;

            Node node = GetInputOwner(input.Id);

            if (node == null)
                return;

            ShowNodeActivity(node);

            if (changedInputsStack.Contains(input))
            {
                try
                {
                    changedInputsStack.Remove(input);
                }
                catch { }
                LogEngineError($"Event dropped in [{node.PanelName}: {node.Type}].");
                return;
            }
            changedInputsStack.Add(input);

            node.CheckInputDataTypeIsCorrect(input);

            OnInputStateUpdated?.Invoke(input);

            if (node.GetNodeOptions().ResetOutputsIfAnyInputIsNull
                && node.Inputs.Any(i => !i.IsOptional && i.Value == null))
                node.ResetOutputs();
            else
                node.OnInputChange(input);

            try
            {
                if (changedInputsStack.Contains(input))
                    changedInputsStack.Remove(input);
            }
            catch { }

        }