mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Merged with develop functionality.
This commit is contained in:
@@ -10,13 +10,15 @@ import javax.xml.parsers.DocumentBuilder;
|
|||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import seng302.gameServer.server.messages.BoatAction;
|
import org.w3c.dom.Document;
|
||||||
import seng302.gameServer.server.messages.BoatStatus;
|
import org.xml.sax.InputSource;
|
||||||
import seng302.gameServer.server.messages.MarkRoundingMessage;
|
import seng302.gameServer.messages.BoatAction;
|
||||||
import seng302.gameServer.server.messages.MarkType;
|
import seng302.gameServer.messages.BoatStatus;
|
||||||
import seng302.gameServer.server.messages.Message;
|
import seng302.gameServer.messages.MarkRoundingMessage;
|
||||||
import seng302.gameServer.server.messages.RoundingBoatStatus;
|
import seng302.gameServer.messages.MarkType;
|
||||||
import seng302.gameServer.server.messages.YachtEventCodeMessage;
|
import seng302.gameServer.messages.Message;
|
||||||
|
import seng302.gameServer.messages.RoundingBoatStatus;
|
||||||
|
import seng302.gameServer.messages.YachtEventCodeMessage;
|
||||||
import seng302.model.GeoPoint;
|
import seng302.model.GeoPoint;
|
||||||
import seng302.model.Limit;
|
import seng302.model.Limit;
|
||||||
import seng302.model.Player;
|
import seng302.model.Player;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package seng302.gameServer;
|
package seng302.gameServer;
|
||||||
|
|
||||||
import gherkin.lexer.Fi;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -8,7 +7,13 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import seng302.gameServer.server.messages.*;
|
import seng302.gameServer.messages.BoatSubMessage;
|
||||||
|
import seng302.gameServer.messages.Message;
|
||||||
|
import seng302.gameServer.messages.RaceStartNotificationType;
|
||||||
|
import seng302.gameServer.messages.RaceStartStatusMessage;
|
||||||
|
import seng302.gameServer.messages.RaceStatus;
|
||||||
|
import seng302.gameServer.messages.RaceStatusMessage;
|
||||||
|
import seng302.gameServer.messages.RaceType;
|
||||||
import seng302.model.GeoPoint;
|
import seng302.model.GeoPoint;
|
||||||
import seng302.model.Player;
|
import seng302.model.Player;
|
||||||
import seng302.model.PolarTable;
|
import seng302.model.PolarTable;
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ public class RaceState {
|
|||||||
|
|
||||||
// private final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
// private final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||||
private final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
|
private final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
|
||||||
private double windSpeed;
|
private ReadOnlyDoubleWrapper windSpeed = new ReadOnlyDoubleWrapper();
|
||||||
private double windDirection;
|
private ReadOnlyDoubleWrapper windDirection = new ReadOnlyDoubleWrapper();
|
||||||
private long serverSystemTime;
|
private long serverSystemTime;
|
||||||
private long expectedStartTime;
|
private long expectedStartTime;
|
||||||
private boolean isRaceStarted = false;
|
private boolean isRaceStarted = false;
|
||||||
@@ -36,8 +36,8 @@ public class RaceState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateState (RaceStatusData data) {
|
public void updateState (RaceStatusData data) {
|
||||||
this.windSpeed = data.getWindSpeed();
|
this.windSpeed.set(data.getWindSpeed());
|
||||||
this.windDirection = data.getWindDirection();
|
this.windDirection.set(data.getWindDirection());
|
||||||
this.serverSystemTime = data.getCurrentTime();
|
this.serverSystemTime = data.getCurrentTime();
|
||||||
this.expectedStartTime = data.getExpectedStartTime();
|
this.expectedStartTime = data.getExpectedStartTime();
|
||||||
this.isRaceStarted = data.isRaceStarted();
|
this.isRaceStarted = data.isRaceStarted();
|
||||||
@@ -65,7 +65,11 @@ public class RaceState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public double getWindSpeed() {
|
public double getWindSpeed() {
|
||||||
return windSpeed;
|
return windSpeed.doubleValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReadOnlyDoubleProperty windSpeedProperty() {
|
||||||
|
return windSpeed.getReadOnlyProperty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReadOnlyDoubleProperty windDirectionProperty() {
|
public ReadOnlyDoubleProperty windDirectionProperty() {
|
||||||
|
|||||||
@@ -369,13 +369,6 @@ public class GameClient {
|
|||||||
socketThread.sendBoatAction(BoatAction.DOWNWIND); break;
|
socketThread.sendBoatAction(BoatAction.DOWNWIND); break;
|
||||||
case ENTER: // tack/gybe
|
case ENTER: // tack/gybe
|
||||||
socketThread.sendBoatAction(BoatAction.TACK_GYBE); break;
|
socketThread.sendBoatAction(BoatAction.TACK_GYBE); break;
|
||||||
//TODO Allow a zoom in and zoom out methods
|
|
||||||
case Z: // zoom in
|
|
||||||
raceView.getGameView().zoomIn();
|
|
||||||
break;
|
|
||||||
case X: // zoom out
|
|
||||||
raceView.getGameView().zoomOut();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import javafx.geometry.Point2D;
|
|||||||
import javafx.scene.Group;
|
import javafx.scene.Group;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.input.KeyCode;
|
||||||
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
@@ -96,7 +98,7 @@ public class GameView extends Pane {
|
|||||||
|
|
||||||
double scaleFactor = 1;
|
double scaleFactor = 1;
|
||||||
|
|
||||||
public void zoomOut() {
|
private void zoomOut() {
|
||||||
scaleFactor = 0.1;
|
scaleFactor = 0.1;
|
||||||
if (this.getScaleX() > 0.5) {
|
if (this.getScaleX() > 0.5) {
|
||||||
this.setScaleX(this.getScaleX() - scaleFactor);
|
this.setScaleX(this.getScaleX() - scaleFactor);
|
||||||
@@ -104,7 +106,7 @@ public class GameView extends Pane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zoomIn() {
|
private void zoomIn() {
|
||||||
scaleFactor = 0.10;
|
scaleFactor = 0.10;
|
||||||
if (this.getScaleX() < 2.5) {
|
if (this.getScaleX() < 2.5) {
|
||||||
this.setScaleX(this.getScaleX() + scaleFactor);
|
this.setScaleX(this.getScaleX() + scaleFactor);
|
||||||
@@ -447,6 +449,21 @@ public class GameView extends Pane {
|
|||||||
raceBorder.getPoints().setAll(boundaryPoints);
|
raceBorder.getPoints().setAll(boundaryPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: 16/08/17 initialize zooming internal to GameView only
|
||||||
|
/**
|
||||||
|
* Enables zoom. Has to be called after this is added to a scene.
|
||||||
|
*/
|
||||||
|
public void enableZoom () {
|
||||||
|
if (this.getScene() != null) {
|
||||||
|
this.getScene().addEventHandler(KeyEvent.KEY_PRESSED, (event) -> {
|
||||||
|
if (event.getCode() == KeyCode.Z) {
|
||||||
|
zoomIn();
|
||||||
|
} else if (event.getCode() == KeyCode.X) {
|
||||||
|
zoomOut();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Rescales the race to the size of the window.
|
* Rescales the race to the size of the window.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
|
|||||||
gameView.updateCourse(
|
gameView.updateCourse(
|
||||||
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
||||||
);
|
);
|
||||||
|
gameView.enableZoom();
|
||||||
gameView.setBoatAsPlayer(player);
|
gameView.setBoatAsPlayer(player);
|
||||||
gameView.startRace();
|
gameView.startRace();
|
||||||
raceState.addCollisionListener(gameView::drawCollision);
|
raceState.addCollisionListener(gameView::drawCollision);
|
||||||
|
|||||||
Reference in New Issue
Block a user