//draw first socket - down right side
BCS.addDataSocket(gpBottom, curSocket.getKind(), false);
//rb.updateSocketPoint(curSocket, rightSocket);
} else { //there is a connected block
Block connectedBlock = rb.getWorkspace().getEnv().getBlock(curSocket.getBlockID());
RenderableBlock connectedRBlock = rb.getWorkspace().getEnv().getRenderableBlock(curSocket.getBlockID());
//calculate and update the new socket point
//update the socket point of this cursocket which should now adopt the plug socket point of its
//connected block since we're also adopting the left side of its shape
//Use coordinates when the zoom level is 1.0 to calculate socket point
double unzoomX = connectedRBlock.getSocketPixelPoint(connectedBlock.getPlug()).getX() / connectedRBlock.getZoom();
double unzoomY = connectedRBlock.getSocketPixelPoint(connectedBlock.getPlug()).getY() / connectedRBlock.getZoom();
Point2D connectedBlockSocketPoint = new Point2D.Double(unzoomX, unzoomY);
Point2D currentPoint = gpBottom.getCurrentPoint();
double newX = connectedBlockSocketPoint.getX() + Math.abs(connectedBlockSocketPoint.getX() - currentPoint.getX());
double newY = connectedBlockSocketPoint.getY() + Math.abs(connectedRBlock.getBlockHeight() / connectedRBlock.getZoom() - currentPoint.getY());
rb.updateSocketPoint(curSocket, new Point2D.Double(newX, newY));
BlockShape connectedBlockShape = rb.getWorkspace().getEnv().getRenderableBlock(curSocket.getBlockID()).getBlockShape();
//append left side of connected block