C# Help Determining Issue

Godot Version

4.3 Mono

Question

Im currently trying to adapt some GDScript to C# but the visual output is incorrect but im having difficulty discerning if the draw logic is flawed or if it its the actual method. i should be getting a visual representation of the Minimum Spanning Tree between my rooms. but instead i get this monstrosity.

Here is the MST Method

private AStar2D FindMST(Array<Vector2> roomPositions)
    {
        path.AddPoint(path.GetAvailablePointId(),roomPositions[0]);
        roomPositions.RemoveAt(0);
        while (roomPositions.Count > 0)
        {
            float minDistance = float.PositiveInfinity;
            Vector2 closestPosition = Vector2.Inf;
            Vector2 currentPosition = Vector2.Inf;
            for (int i = 0; i < path.GetPointIds().Length; i++)
            {
                Vector2 startingPoint = path.GetPointPosition(i);
                foreach (Vector2 position in roomPositions)
                {
                    if (startingPoint.DistanceTo(position) < minDistance)
                    {
                        minDistance = startingPoint.DistanceTo(position);
                        closestPosition = position;
                        currentPosition = startingPoint;
                    }
                }
            }
            long nextPoint = path.GetAvailablePointId();
            path.AddPoint(nextPoint,closestPosition);
            path.ConnectPoints(path.GetClosestPoint(currentPosition),nextPoint);
            roomPositions.Remove(closestPosition);
        }
        return path;
    }

Here is the Draw Method (first part works)

public override void _Draw()
    {
        if (rooms.GetChildCount() > 0)
        {
            foreach (Node child in rooms.GetChildren())
            {
                int newX = (int)(child as Node2D).Position.X - (int)((child as Room).size.X/2);
				int newY = (int)(child as Node2D).Position.Y - (int)((child as Room).size.Y/2);
                DrawRect(new Rect2(new Vector2(newX,newY),(child as Room).size), new Color(32,228,0),false);
            }
        }
        if (path != null)
        {
            for (int i = 0; i < path.GetPointCount(); i++)
            {
                for (int j = 0; j < path.GetPointConnections(i).Length; j++)
                {
                    DrawLine(path.GetPointPosition(i),path.GetPointPosition(j),new Color(1,1,0), 15, true);
                }
            }
        }
    }

Any help would be much appreciated.