Boats now reverse smoothly when colliding

- Collision objects specify which boat is colliding
- RaceLogic sets up an observable CollisionCommand when collision bubbles up
- Boats now selectively identify observers of collision

#story[1196]
This commit is contained in:
cbt24
2017-09-07 16:57:07 +12:00
parent 9cba3934ea
commit a6db06a82c
7 changed files with 69 additions and 25 deletions
@@ -2,6 +2,7 @@ package mock.model;
import javafx.animation.AnimationTimer;
import mock.model.collider.Collision;
import mock.model.commandFactory.CollisionCommand;
import mock.model.commandFactory.Command;
import mock.model.commandFactory.CompositeCommand;
import mock.model.commandFactory.CommandFactory;
@@ -222,11 +223,9 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
@Override
public void update(Observable o, Object arg) {
Collision e = (Collision)arg;
// if(e.getBearing().degrees() == 0) System.out.println("Ahead");
// else if(e.getBearing().degrees() < 90) System.out.println("Starboard");
// else if(e.getBearing().degrees() > 270) System.out.println("Port");
// else System.out.println("Behind");
if(arg instanceof Collision) {
Collision collision = (Collision)arg;
commands.addCommand(new CollisionCommand(race, (MockBoat)collision.getBoat()));
}
}
}