Boat collision packets are now sent. Command class created for boat collision. Currently prints out message depending on if user crashed or someone else crashed. #story[1195]

This commit is contained in:
David Wu
2017-09-04 14:06:38 +12:00
parent cd685ae467
commit 8c1eded926
8 changed files with 101 additions and 6 deletions
@@ -11,6 +11,7 @@ import network.Messages.Enums.RaceStatusEnum;
import network.Messages.LatestMessages;
import shared.model.RunnableWithFramePeriod;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;
@@ -104,6 +105,8 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
*/
private void raceLoop() {
ArrayList<MockBoat> collisionBoats = new ArrayList<>();
long previousFrameTime = System.currentTimeMillis();
while (race.getRaceStatusEnum() != RaceStatusEnum.FINISHED && loopBool) {
@@ -129,9 +132,17 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
//If it is still racing, update its position.
if (boat.getStatus() == BoatStatusEnum.RACING) {
race.updatePosition(boat, framePeriod, race.getRaceClock().getDurationMilli());
race.getColliderRegistry().rayCast(boat);
if(race.getColliderRegistry().rayCast(boat)){
System.out.println("Collision!");
//Add boat to list
collisionBoats.add(boat);
}
//System.out.println(race.getColliderRegistry().rayCast(boat));
}
}
} else {
@@ -144,9 +155,14 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
// Change wind direction
race.changeWindDirection();
//Pass collision boats in
server.parseBoatCollisions(collisionBoats);
//Parse the race snapshot.
server.parseSnapshot();
collisionBoats.clear();
//Update the last frame time.
previousFrameTime = currentTime;
}