private void ProcessNode(ActionNode node, params SerializablePoint[] actionPositions) { using var log = Logger.LogBlock(); if (node.Is(ActionNodeFlags.ResetTrigger)) { Graph.ResetState(); } if (node.Actions is null) { Thread.Sleep(node.AdditionalDelayAfterLastAction); node.CurrentCrossing++; return; } if (actionPositions.Length > 0) { foreach (var actionPosition in actionPositions) { InputSimulator.MoveEvent(actionPosition); InputSimulator.Simulate(node.Actions, actionPosition, node.AdditionalDelayBetweenActions); Thread.Sleep(node.AdditionalDelayAfterLastAction); } } else { InputSimulator.Simulate(node.Actions, null, node.AdditionalDelayBetweenActions); } node.CurrentCrossing++; }