Problemas com animação no JavaFX > Mover shapes replicados por um laço FOR

Estou tentando controlar uma barra de retângulos e textos (shapes do JavaFX) com botões que (deveriam) movimentar os figuras para a esquerda, direita e parar, conforme o clique em cada botão.

Quando o botão é clicado apenas o último Rectangle e o último Text obedecem os comandos dos botões.

Até que eu consegui alguma coisa, mas como estou aprendendo, está difícil de avançar.

Obrigado!

Intellj Community 2020.1
Java 14
JavaFX 14

2020-07-09T03:00:00Z

Texto pré-formatado
import javafx.animation.*;
import javafx.application.Application;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main extends Application {

private static int min = 10;

private Pane root = new Pane();

private Parent createContent() {

    root.setPrefSize(1200, 500);

    for (int i = 0; i < 24; i++) {
        Tile tile = new Tile(i * min);
        tile.setLayoutX(-5);
        tile.setLayoutY(100);
        tile.setTranslateX(i * 50);
        tile.setTranslateY(i * 0);

        root.getChildren().add(tile);

    }

    return root;

}

@Override
public void start(Stage primaryStage) throws Exception {

    primaryStage.setScene(new Scene(createContent()));
    primaryStage.show();

}

private int veloc = 10000;

private class Tile extends StackPane {

    public Tile(int minutos) {
        Rectangle border = new Rectangle(50,20);
        border.setFill(null);
        border.setStroke(Color.BLACK);

        Text hText = new Text();

        TranslateTransition tRect = new TranslateTransition();
        TranslateTransition tHora = new TranslateTransition();

        tRect.setNode(border);
        tRect.setDuration(Duration.millis(veloc));
        tRect.setByX(-1000);
        tRect.setCycleCount(Animation.INDEFINITE);
        tRect.setAutoReverse(false);
        tRect.setInterpolator(Interpolator.LINEAR);
        tRect.pause();

        tHora.setNode(hText);
        tHora.setDuration(Duration.millis(veloc));
        tHora.setByX(-1000);
        tHora.setCycleCount(Animation.INDEFINITE);
        tHora.setAutoReverse(false);
        tHora.setInterpolator(Interpolator.LINEAR);
        tHora.pause();

        // mostra e atualiza a hora
        Timeline relogio = new Timeline(new KeyFrame(Duration.ZERO, e -> {

            LocalDateTime agora = LocalDateTime.now().plusMinutes(minutos);
            DateTimeFormatter formataHora = DateTimeFormatter.ofPattern("HH:mm");
            String horaAtual = agora.format(formataHora);

            hText.setText(horaAtual);

        }),
                new KeyFrame(Duration.seconds(1))
        );

        relogio.setCycleCount(Animation.INDEFINITE);
        relogio.play();

        getChildren().addAll(border,hText);

        ToggleButton tbRecua = new ToggleButton("Recua");
        ToggleButton tbPara = new ToggleButton("Para");
        ToggleButton tbAvanca = new ToggleButton("Avança");

        tbRecua.setLayoutX(50);
        tbRecua.setLayoutY(50);
        tbPara.setLayoutX(250);
        tbPara.setLayoutY(50);
        tbAvanca.setLayoutX(450);
        tbAvanca.setLayoutY(50);

        tbRecua.setOnAction(e -> {

                tRect.setByX(-1000);
                tHora.setByX(-1000);
                tRect.play();
                tHora.play();

        });

        tbPara.setOnAction(e -> {

                tRect.pause();
                tHora.pause();

        });

        tbAvanca.setOnAction(e -> {

                tRect.setByX(1000);
                tHora.setByX(1000);
                tRect.play();
                tHora.play();

        });

        root.getChildren().addAll(tbRecua,tbPara,tbAvanca);

    }

}
public static void main(String[] args) {
    launch(args);
}

}

Resolvido!
Mudei tudo, fiz direitinho agora.