/// <summary>
        /// Adds the breakpoint overlay and relays events.
        /// </summary>
        public static void CreateAndSetup(int id, SfcPatchNode patch, BreakpointManager target)
        {
            BreakpointOverlayButton button = (BreakpointOverlayButton)GD.Load <PackedScene>(Scene).Instance();

            button._patchId = id;
            button._target  = target;
            button.Connect("toggled", button, nameof(OnButtonToggled));
            patch.OverlayWith(button);
        }
 /// <summary>
 /// Initializes the whole sfc editor
 /// </summary>
 public override void InitialiseWith(IMainNode mainNode, ILessonEntity openedLesson)
 {
     _mainNode       = mainNode;
     _processingData = InitialisePlant(openedLesson);
     InitialiseDiagram(openedLesson);
     InitialiseSimulation(openedLesson);
     _breakpoints = new BreakpointManager(_simulationMaster, _sfc2dEditorNode);
     if (!_isExecutable)
     {
         GetNode <Label>(_errorLabelPath).Visible = true;
     }
 }