diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/CompositeCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/CompositeCommand.java index 74c5e95b..a931a85a 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/CompositeCommand.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/CompositeCommand.java @@ -1,7 +1,7 @@ package mock.model.commandFactory; -import java.util.ArrayDeque; import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedDeque; /** * Wraps multiple commands into a composite to execute queued commands during a frame. @@ -10,15 +10,15 @@ public class CompositeCommand implements Command { private Queue commands; public CompositeCommand() { - this.commands = new ArrayDeque<>(); + this.commands = new ConcurrentLinkedDeque<>(); } public void addCommand(Command command) { - commands.add(command); + commands.offer(command); } @Override public void execute() { - while(!commands.isEmpty()) commands.remove().execute(); + while(commands.peek() != null) commands.poll().execute(); } } diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java index f4eacb5e..4af633e9 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java @@ -246,6 +246,11 @@ public class RaceController extends Controller { } }; trackBoat.start(); + + System.out.println(boat.getCurrentLeg().getEndCompoundMark().toString()); + boat.legProperty().addListener((o, prev, curr) -> { + System.out.println(curr.getEndCompoundMark().toString()); + }); } // Fix initial bird's-eye position view3D.updatePivot(new Translate(250, 0, 210));