i'm sure I can figure this out on my own but I feel like the way i'm writing it is already too expensive and coupled.
I am writing a simulator with a security robot and a intruder, I have a collision function, where in the 3rd if statement it checks if an intruder (rectangle of width 11) collides with an surveillance camera (arc) and if that happens then I want to activate my function for the security robot to chase the intruder.
<-- Important note: the checkShapeIntersection function is inside a timeLine event so its running constantly -->
private boolean checkShapeIntersection(Shape block) {
    //Name to check for intruder and surveillance collision
    String Surveillance = "Arc";
    boolean collisionDetected = false;
    for (Shape static_bloc : nodes) {
        if (static_bloc != block) {
            Shape intersect = Shape.intersect(block, static_bloc);
            if (intersect.getBoundsInLocal().getWidth() != -1) {
                collisionDetected = true;
                //Checks of intruder collides with an arc (surveillance), the 11th width is only for intruder rectangles
                if ( Surveillance.equals(block.getClass().getSimpleName()) && static_bloc.getBoundsInLocal().getWidth() == 11) {
                    //Activate Chase function
                    testRobot.chaseIntruder(static_bloc);
                    detected = true;
                }
            }
        }
    }
    if (collisionDetected) {
        block.setFill(Color.BLUE);
    } else {
        block.setFill(Color.RED);
    }
    return detected;
}
And inside my Security Robot Class
public void chaseIntruder(Shape intruder) {
    destinationsList.add(new Vector2D(intruder.getLayoutBounds().getMinX(),intruder.getLayoutBounds().getMinY()));
    this.updatePosition();
}
 
    