Compare commits

...

2 Commits

Author SHA1 Message Date
Calum 09c02d5c54 Finish screen not appearing. Start screen opened simultanously. 2017-09-28 12:35:47 +13:00
Calum 08c34a0b1e Finish arrow not spawning fix. 2017-09-28 09:54:03 +13:00
9 changed files with 40 additions and 34 deletions
@@ -1,14 +1,5 @@
package seng302.visualiser;
import javafx.application.Platform;
import javafx.util.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.messages.*;
import seng302.model.stream.packets.PacketType;
import seng302.model.stream.packets.StreamPacket;
import seng302.utilities.XMLParser;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -23,6 +14,7 @@ import java.util.TimerTask;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
import javafx.application.Platform;
import javafx.util.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -99,6 +91,7 @@ public class ClientToServerThread implements Runnable {
private ByteArrayOutputStream crcBuffer;
private boolean socketOpen = true;
private boolean ignoreDC = false;
/**
* Constructor for ClientToServerThread which takes in ipAddress and portNumber and attempts to
@@ -181,8 +174,10 @@ public class ClientToServerThread implements Runnable {
closeSocket();
Platform.runLater(() -> {
if (ignoreDC) {
ViewManager.getInstance().showErrorSnackBar("Server rejected connection.");
ViewManager.getInstance().goToStartView();
}
});
}
@@ -198,7 +193,7 @@ public class ClientToServerThread implements Runnable {
}
private void notifyDisconnectListeners (String message) {
if (socketOpen) {
if (socketOpen && !ignoreDC) {
for (DisconnectedFromHostListener listener : disconnectionListeners) {
listener.notifyDisconnection(message);
}
@@ -448,4 +443,8 @@ public class ClientToServerThread implements Runnable {
public boolean hasStarted() {
return isStarted;
}
public void ignoreDC() {
ignoreDC = true;
}
}
@@ -49,12 +49,6 @@ import seng302.visualiser.controllers.RaceViewController;
import seng302.visualiser.controllers.ViewManager;
import seng302.visualiser.controllers.dialogs.PopupDialogController;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.*;
/**
* This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated
* with a JavaFX Pane to insert itself into.
@@ -210,7 +204,11 @@ public class GameClient {
controller.setContent(message);
controller.setOptionButtonText("GO HOME");
controller
.setOptionButtonEventHandler(event -> ViewManager.getInstance().goToStartView());
.setOptionButtonEventHandler(event -> {
System.out.println("inShowConnectionError");
ViewManager.getInstance().goToStartView();
});
});
}
@@ -2,7 +2,6 @@ package seng302.visualiser;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -24,7 +23,11 @@ import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate;
import org.fxyz3d.scene.Skybox;
import seng302.gameServer.messages.RoundingSide;
import seng302.model.*;
import seng302.model.ClientYacht;
import seng302.model.GameKeyBind;
import seng302.model.KeyAction;
import seng302.model.Limit;
import seng302.model.ScaledPoint;
import seng302.model.mark.CompoundMark;
import seng302.model.mark.Corner;
import seng302.model.mark.Mark;
@@ -51,7 +54,7 @@ public class GameView3D extends GameView{
private final double FOV = 60;
private final double DEFAULT_CAMERA_X = 0;
private final double DEFAULT_CAMERA_Y = 100;
private final double DEFAULT_CAMERA_Y = 160;
private Group root3D;
private SubScene view;
@@ -164,6 +167,7 @@ public class GameView3D extends GameView{
}
createMarkArrows();
course.get(0).getMarks().forEach((mark -> markerObjects.get(mark).showNextExitArrow()));
//Scale race to markers if there is no border.
if (borderPoints == null) {
@@ -505,7 +509,7 @@ public class GameView3D extends GameView{
private void updateMarkArrows (ClientYacht yacht, int legNumber) {
CompoundMark compoundMark;
if (legNumber - 1 >= 0) {
if (legNumber - 1 >= 0 && legNumber-1 < course.size()) {
Sounds.playMarkRoundingSound();
compoundMark = course.get(legNumber-1);
for (Mark mark : compoundMark.getMarks()) {
@@ -513,7 +517,7 @@ public class GameView3D extends GameView{
}
}
CompoundMark nextMark = null;
if (legNumber < course.size() - 1) {
if (legNumber < course.size()) {
Sounds.playMarkRoundingSound();
nextMark = course.get(legNumber);
for (Mark mark : nextMark.getMarks()) {
@@ -16,8 +16,8 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera {
private final Double MAX_Y = 170.0;
private final Double PAN_LIMIT = 160.0;
private final Double NEAR_ZOOM_LIMIT = -50.0;
private final Double FAR_ZOOM_LIMIT = -160.0;
private final Double NEAR_ZOOM_LIMIT = -30.0;
private final Double FAR_ZOOM_LIMIT = -180.0;
private Double horizontalPan;
private Double verticalPan;
@@ -29,7 +29,8 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera {
super(true);
transforms = this.getTransforms();
zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0;
// zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0;
zoomFactor = FAR_ZOOM_LIMIT;
horizontalPan = cameraStartX;
verticalPan = cameraStartY;
@@ -11,9 +11,9 @@ import seng302.visualiser.fxObjects.assets_3D.BoatObject;
public class TopDownCamera extends PerspectiveCamera implements RaceCamera {
private final Double PAN_LIMIT = 30.0;
private final Double NEAR_ZOOM_LIMIT = -30.0;
private final Double FAR_ZOOM_LIMIT = -130.0;
private final Double PAN_LIMIT = 40d;
private final Double NEAR_ZOOM_LIMIT = -35d;
private final Double FAR_ZOOM_LIMIT = -145d;
private final Double ZOOM_STEP = 2.5;
private ObservableList<Transform> transforms;
@@ -225,7 +225,7 @@ public class LobbyController implements Initializable {
}
private void leaveLobby() {
System.out.println("LEFT LOBBY");
ViewManager.getInstance().getGameClient().stopGame();
ViewManager.getInstance().goToStartView();
}
@@ -197,7 +197,9 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
}
public void showFinishDialog(ArrayList<ClientYacht> finishedBoats) {
System.out.println("called");
raceState.setRaceStarted(false);
ViewManager.getInstance().getGameClient().getServerThread().ignoreDC();
createFinishDialog(finishedBoats);
}
@@ -5,7 +5,6 @@ import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXListView;
import java.net.URL;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
@@ -26,7 +25,10 @@ public class FinishDialogController implements Initializable {
@Override
public void initialize(URL location, ResourceBundle resources) {
playAgain.setOnAction(event -> ViewManager.getInstance().goToStartView());
playAgain.setOnAction(event -> {
System.out.println("CALLED HERE");
ViewManager.getInstance().goToStartView();
});
}
public void setFinishedBoats(ArrayList<ClientYacht> finishedBoats) {
+1 -1
View File
@@ -45,7 +45,7 @@
<Corner CompoundMarkID="1" Rounding="PS"/>
<Corner CompoundMarkID="2" Rounding="S"/>
<Corner CompoundMarkID="3" Rounding="S"/>
<Corner CompoundMarkID="4" Rounding="SP"/>
<Corner CompoundMarkID="4" Rounding="PS"/>
</OpeningSegment>
<RepeatingSegment>