diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index e71138f7..fdfc3ad4 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -13,6 +13,9 @@ import org.slf4j.LoggerFactory; import seng302.discoveryServer.DiscoveryServer; import seng302.visualiser.controllers.ViewManager; +import java.util.Timer; +import java.util.TimerTask; + public class App extends Application { private static Logger logger = LoggerFactory.getLogger(App.class); @@ -92,6 +95,17 @@ public class App extends Application { } public static void main(String[] args) throws Exception { + /* + * Do not trust Java to do garbage collection + */ + new Timer().schedule(new TimerTask() { + @Override + public void run() { + System.gc(); + } + }, 0, 1200); + + try { parseArgs(args); } catch (ParseException e) { diff --git a/src/main/java/seng302/gameServer/messages/Message.java b/src/main/java/seng302/gameServer/messages/Message.java index 691bb022..94645137 100644 --- a/src/main/java/seng302/gameServer/messages/Message.java +++ b/src/main/java/seng302/gameServer/messages/Message.java @@ -158,7 +158,13 @@ public abstract class Message { * @return The current buffer as a byte array */ public byte[] getBuffer(){ - return buffer.array(); + byte[] bytes = buffer.array(); + +// buffer.reset(); +// buffer.clear(); +// buffer = null; + + return bytes; } /** diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 5eeb73e1..073c9d60 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -35,7 +35,7 @@ public class MapMaker { private int index = 0; private XMLGenerator xmlGenerator = new XMLGenerator(); - private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml")); + private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml", "loop.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java index 442d4083..68082869 100644 --- a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java +++ b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java @@ -1,24 +1,12 @@ package seng302.visualiser.controllers; -import com.jfoenix.controls.JFXDecorator; -import com.jfoenix.controls.JFXSnackbar; -import javafx.application.Platform; -import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.fxml.Initializable; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.SceneAntialiasing; -import javafx.scene.image.Image; -import javafx.scene.layout.StackPane; -import javafx.stage.Stage; -import seng302.gameServer.ServerAdvertiser; -import seng302.utilities.Sounds; -import seng302.visualiser.GameClient; - -import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.layout.StackPane; +import javafx.stage.Stage; /** * Created by Kusal on 26-Sep-17. @@ -37,7 +25,7 @@ public class SplashScreenController implements Initializable{ class SplashScreen extends Thread { public void run(){ try { - Thread.sleep(2000); + Thread.sleep(3000); Platform.runLater(new Runnable() { @Override public void run() { diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java index f64edd3c..e33911cc 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java @@ -27,7 +27,7 @@ public class KeyBindingDialogController implements Initializable { @FXML private Label closeLabel; @FXML - private JFXButton zoomInbtn; + private JFXButton zoomInBtn; @FXML private JFXButton zoomOutBtn; @FXML @@ -43,6 +43,8 @@ public class KeyBindingDialogController implements Initializable { @FXML private JFXButton resetBtn; @FXML + private JFXButton confirmBtn; + @FXML private Label upwindLabel; @FXML private Label downwindLabel; @@ -70,7 +72,7 @@ public class KeyBindingDialogController implements Initializable { gameKeyBind = GameKeyBind.getInstance(); buttons = new ArrayList<>(); Collections.addAll(buttons, - zoomInbtn, zoomOutBtn, vmgBtn, sailInOutBtn, tackGybeBtn, upwindBtn, downwindBtn, + zoomInBtn, zoomOutBtn, vmgBtn, sailInOutBtn, tackGybeBtn, upwindBtn, downwindBtn, viewButton, rightButton, leftButton, forwardButton, backwardButton); bindButtonWithAction(); loadKeyBind(); @@ -91,6 +93,7 @@ public class KeyBindingDialogController implements Initializable { }); closeLabel.setOnMouseClicked(event -> ViewManager.getInstance().closeKeyBindingDialog()); + confirmBtn.setOnMouseClicked(event -> ViewManager.getInstance().closeKeyBindingDialog()); } /** diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java index 44a410e7..e454b666 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java @@ -93,7 +93,7 @@ public class ModelFactory { Group boatAssets = new Group(); MeshView hull = importBoatSTL(boatType.hullFile); hull.setMaterial(new PhongMaterial(primaryColour)); - boatAssets.getChildren().addAll(hull); + boatAssets.getChildren().add(hull); if (boatType.mastFile != null) { MeshView mast = importBoatSTL(boatType.mastFile); @@ -105,14 +105,14 @@ public class ModelFactory { MeshView sail = importBoatSTL(boatType.sailFile); sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) ); - boatAssets.getChildren().addAll(sail); + boatAssets.getChildren().add(sail); if (boatType.jibFile != null) { MeshView jib = importBoatSTL(boatType.jibFile); - sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) + jib.setMaterial( + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) ); boatAssets.getChildren().add(jib); } diff --git a/src/main/resources/css/SplashScreenView.css b/src/main/resources/css/SplashScreenView.css index a4d1d68d..df5adb92 100644 --- a/src/main/resources/css/SplashScreenView.css +++ b/src/main/resources/css/SplashScreenView.css @@ -1,10 +1,50 @@ -#background { - -fx-background-color: #E7F1F8; +.root { + -fx-effect: -fx-pp-dropshadow-dark; + -fx-background-radius: 5; + -fx-padding: 10; +} + +#rootPane { + -fx-background-image: url("/images/waves.png"); + } #headText { - -fx-background-color: transparent; -fx-font-size: 52px; - -fx-text-fill: -fx-pp-light-text-color; - -fx-effect: -fx-pp-dropshadow-headers; + -fx-text-fill: rgb(30, 30, 30); + -fx-effect: -fx-pp-dropshadow-dark; +} + +#subHeadLabel { + -fx-text-fill: rgb(30, 30, 30); + -fx-effect: -fx-pp-dropshadow-dark; + -fx-font-size: 12px; +} + +.materialDesign-purple .arc { + -fx-stroke: #ab47bc; +} + +.materialDesign-blue .arc { + -fx-stroke: #2962ff; +} + +.materialDesign-cyan .arc { + -fx-stroke: #00b8d4; +} + +.materialDesign-green .arc { + -fx-stroke: #00c853; +} + +.materialDesign-yellow .arc { + -fx-stroke: #ffd600; +} + +.materialDesign-orange .arc { + -fx-stroke: #ff6d00; +} + +.materialDesign-red .arc { + -fx-stroke: #d50000; } \ No newline at end of file diff --git a/src/main/resources/css/dialogs/KeyBindingDialog.css b/src/main/resources/css/dialogs/KeyBindingDialog.css index 6c7bff26..63338d0e 100644 --- a/src/main/resources/css/dialogs/KeyBindingDialog.css +++ b/src/main/resources/css/dialogs/KeyBindingDialog.css @@ -35,14 +35,14 @@ JFXToggleButton { -fx-text-fill: -fx-pp-theme-color; } -#resetBtn { +#resetBtn, #confirmBtn { -fx-background-color: -fx-pp-theme-color; -fx-text-fill: -fx-pp-front-color; -fx-effect: -fx-pp-dropshadow-light; -fx-font-size: 18; } -#resetBtn:hover { +#resetBtn:hover, #confirmBtn:hover { -fx-font-size: 20; } diff --git a/src/main/resources/maps/loop.xml b/src/main/resources/maps/loop.xml new file mode 100644 index 00000000..aa72204a --- /dev/null +++ b/src/main/resources/maps/loop.xml @@ -0,0 +1,61 @@ + + + + Loopty Loop + + 57.6679590 + 11.8503233 + + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/meshes/boatSTLs/parrot_features.stl b/src/main/resources/meshes/boatSTLs/parrot_features.stl index efe88eee..99b40002 100644 Binary files a/src/main/resources/meshes/boatSTLs/parrot_features.stl and b/src/main/resources/meshes/boatSTLs/parrot_features.stl differ diff --git a/src/main/resources/meshes/boatSTLs/waka_hull.stl b/src/main/resources/meshes/boatSTLs/waka_hull.stl index 91b09389..3a711a0e 100644 Binary files a/src/main/resources/meshes/boatSTLs/waka_hull.stl and b/src/main/resources/meshes/boatSTLs/waka_hull.stl differ diff --git a/src/main/resources/meshes/boatSTLs/waka_mast.stl b/src/main/resources/meshes/boatSTLs/waka_mast.stl index 3911bad6..4f4d018c 100644 Binary files a/src/main/resources/meshes/boatSTLs/waka_mast.stl and b/src/main/resources/meshes/boatSTLs/waka_mast.stl differ diff --git a/src/main/resources/meshes/boatSTLs/waka_sail.stl b/src/main/resources/meshes/boatSTLs/waka_sail.stl index 34f8d7de..39f5c51b 100644 Binary files a/src/main/resources/meshes/boatSTLs/waka_sail.stl and b/src/main/resources/meshes/boatSTLs/waka_sail.stl differ diff --git a/src/main/resources/views/ServerListView.fxml b/src/main/resources/views/ServerListView.fxml index c191cc17..966bd240 100644 --- a/src/main/resources/views/ServerListView.fxml +++ b/src/main/resources/views/ServerListView.fxml @@ -113,8 +113,8 @@ - - + + diff --git a/src/main/resources/views/SplashScreen.fxml b/src/main/resources/views/SplashScreen.fxml index 93525dff..898bcd7b 100644 --- a/src/main/resources/views/SplashScreen.fxml +++ b/src/main/resources/views/SplashScreen.fxml @@ -1,33 +1,50 @@ + - + + - - - + - - - - - - - - - - - - - - - - + + + + - - + + diff --git a/src/main/resources/views/dialogs/KeyBindingDialog.fxml b/src/main/resources/views/dialogs/KeyBindingDialog.fxml index 7fcf2e7f..11490e86 100644 --- a/src/main/resources/views/dialogs/KeyBindingDialog.fxml +++ b/src/main/resources/views/dialogs/KeyBindingDialog.fxml @@ -23,6 +23,7 @@ + - + prefWidth="140.0" text="RESET" GridPane.columnSpan="2" GridPane.halignment="LEFT" + GridPane.rowIndex="2" GridPane.valignment="CENTER"> + + + + + + + + +