/// <summary>
    /// Saves a single user created question
    /// </summary>
    private void SaveQuestion()
    {
        string option1 = option1Line.Text;
        string option2 = option2Line.Text;
        string option3 = option3Line.Text;
        string option4 = option4Line.Text;

        int correctOption = Int32.Parse(Regex.Match(checkboxGroup.GetPressedButton().Name, @"\d+").Value);

        /*GD.Print("\nQuestion Number:" + GetQuestionNumber() +"\nQuestion Title: " + questionTitleLine.Text + "\nOption 1: " + option1 + "\nOption 2: " + option2 +
         *  "\nOption 3: " + option3 + "\nOption 4: " + option4 + "\nCorrect Option: " + correctOption);*/

        createLevelBL.SaveQuestion((GetQuestionNumber() - 1), option1, option2, option3, option4, correctOption, questionTitleLine.Text); //questionNumber - 1 = questionId
    }
    public override void _Process(float delta)
    {
        if (editorInterface == null) // Something's not right... bail!
        {
            return;
        }

        // View mode polling.
        var viewModeChangedThisFrame = false;
        var newViewMode = viewModeButtonGroup.GetPressedButton().GetIndex();

        if (viewModeIndex != newViewMode)
        {
            viewModeIndex            = newViewMode;
            viewModeChangedThisFrame = true;
            RecursiveChangeViewMode(GetTree().EditedSceneRoot);
        }

        // Zooming.
        if (Input.IsMouseButtonPressed((int)ButtonList.WheelUp))
        {
            zoomLevel += 1;
        }
        else if (Input.IsMouseButtonPressed((int)ButtonList.WheelDown))
        {
            zoomLevel -= 1;
        }
        float zoom = GetZoomAmount();

        // Viewport size.
        Vector2 size = GetGlobalRect().Size;

        viewport2d.Size = size;

        // Viewport transform.
        Transform2D viewportTrans = Transform2D.Identity;

        viewportTrans.x                *= zoom;
        viewportTrans.y                *= zoom;
        viewportTrans.origin            = viewportTrans.BasisXform(viewportCenter) + size / 2;
        viewport2d.CanvasTransform      = viewportTrans;
        viewportOverlay.CanvasTransform = viewportTrans;

        // Delete unused gizmos.
        var selection       = editorInterface.GetSelection().GetSelectedNodes();
        var overlayChildren = viewportOverlay.GetChildren();

        foreach (Gizmo25D overlayChild in overlayChildren)
        {
            bool contains = false;
            foreach (Node selected in selection)
            {
                if (selected == overlayChild.node25d && !viewModeChangedThisFrame)
                {
                    contains = true;
                }
            }
            if (!contains)
            {
                overlayChild.QueueFree();
            }
        }
        // Add new gizmos.
        foreach (Node sel in selection)
        {
            if (sel is Node25D selected)
            {
                var newNode = true;
                foreach (Gizmo25D overlayChild2 in overlayChildren)
                {
                    if (selected == overlayChild2.node25d)
                    {
                        newNode = false;
                    }
                }
                if (newNode)
                {
                    Gizmo25D gizmo = (Gizmo25D)gizmo25dScene.Instance();
                    viewportOverlay.AddChild(gizmo);
                    gizmo.node25d = selected;
                    gizmo.Initialize();
                }
            }
        }
    }