diff --git a/build.gradle b/build.gradle index d1f46e61d45d5c3c4f42232b8ba4129d1b3d8333..0f1ef0d29ec7b11f9ae8e1f4ecc17e6ec020a78c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,14 @@ plugins { + id("com.github.johnrengelman.shadow") version "8.1.1" id 'application' - id "org.openjfx.javafxplugin" version "0.0.14" - id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'java' + id "org.openjfx.javafxplugin" version "0.1.0" } javafx { version = "21" - modules = [ 'javafx.controls', 'javafx.fxml' ] + modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.graphics'] } @@ -29,13 +30,11 @@ test { } application { - mainClass.set("FirefighterApplication") + mainClass.set("firefighter.app.SimulatorMain") } -jar { - manifest { - attributes("Implementation-Title": project.name, - "Implementation-Version": version, - "Main-Class": application.mainClass) +tasks { + shadowJar { + exclude("module-info.class") } -} \ No newline at end of file +} diff --git a/settings.gradle b/settings.gradle index b9eacbee240f982c0cf078a7de104018c2b4c12e..5d3f861d10877d6653e10fdd716089a5ceffa7d4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,4 @@ rootProject.name = 'firefighter' +include 'src:main:aapp' +findProject(':src:main:aapp')?.name = 'aapp' diff --git a/src/main/java/FirefighterApplication.java b/src/main/java/firefighter/app/SimulatorApplication.java similarity index 80% rename from src/main/java/FirefighterApplication.java rename to src/main/java/firefighter/app/SimulatorApplication.java index e43ebd99682af868c317d69dc01a16c663fb4d26..b4392e222cc952fda19e415a89965d8cb4b7bf0a 100644 --- a/src/main/java/FirefighterApplication.java +++ b/src/main/java/firefighter/app/SimulatorApplication.java @@ -1,5 +1,6 @@ -import controller.Controller; -import javafx.application.Application; +package firefighter.app; + +import firefighter.controller.Controller; import javafx.application.Platform; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -9,8 +10,8 @@ import javafx.stage.Stage; import java.io.IOException; import java.net.URL; -public class FirefighterApplication extends Application { - private static final String VIEW_RESOURCE_PATH = "/view/view.fxml"; +public class SimulatorApplication extends javafx.application.Application { + private static final String VIEW_RESOURCE_PATH = "/firefighter/view/view.fxml"; private static final String APP_NAME = "Firefighter simulator"; private static final int ROW_COUNT = 20; private static final int COLUMN_COUNT = 20; @@ -38,7 +39,7 @@ public class FirefighterApplication extends Application { private void initializeView() throws IOException { FXMLLoader loader = new FXMLLoader(); - URL location = FirefighterApplication.class.getResource(VIEW_RESOURCE_PATH); + URL location = SimulatorApplication.class.getResource(VIEW_RESOURCE_PATH); loader.setLocation(location); view = loader.load(); Controller controller = loader.getController(); @@ -51,4 +52,8 @@ public class FirefighterApplication extends Application { primaryStage.setScene(scene); primaryStage.show(); } + + public static void main(String[] args) { + launch(args); + } } diff --git a/src/main/java/firefighter/app/SimulatorMain.java b/src/main/java/firefighter/app/SimulatorMain.java new file mode 100644 index 0000000000000000000000000000000000000000..18533e36e19e89a503925343050543cb145eed25 --- /dev/null +++ b/src/main/java/firefighter/app/SimulatorMain.java @@ -0,0 +1,7 @@ +package firefighter.app; + +public class SimulatorMain { + public static void main(String[] args){ + SimulatorApplication.main(args); + } +} diff --git a/src/main/java/controller/Controller.java b/src/main/java/firefighter/controller/Controller.java similarity index 91% rename from src/main/java/controller/Controller.java rename to src/main/java/firefighter/controller/Controller.java index c4e3232ddb9e0e8ed0363f26e102874175c55843..335bf3e92863d1ad7c599db43aad381b1d9bf532 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/firefighter/controller/Controller.java @@ -1,4 +1,4 @@ -package controller; +package firefighter.controller; import javafx.animation.Animation; import javafx.animation.KeyFrame; @@ -11,12 +11,12 @@ import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleGroup; import javafx.util.Duration; import javafx.util.Pair; -import model.Board; -import model.ModelElement; -import model.FirefighterBoard; -import model.Position; -import view.FirefighterGrid; -import view.ViewElement; +import firefighter.model.Board; +import firefighter.model.ModelElement; +import firefighter.model.FirefighterBoard; +import firefighter.model.Position; +import firefighter.view.FirefighterGrid; +import firefighter.view.ViewElement; import java.util.ArrayList; import java.util.List; @@ -52,7 +52,7 @@ public class Controller { } private void setModel(FirefighterBoard firefighterBoard) { - this.board = requireNonNull(firefighterBoard, "model is null"); + this.board = requireNonNull(firefighterBoard, "firefighter.model is null"); } private void updateBoard(){ diff --git a/src/main/java/controller/PersistentToggleGroup.java b/src/main/java/firefighter/controller/PersistentToggleGroup.java similarity index 96% rename from src/main/java/controller/PersistentToggleGroup.java rename to src/main/java/firefighter/controller/PersistentToggleGroup.java index 7c2c4b5c79d6ff65e0bfbe53c2fb7e9fd5944a1b..a7e930bbe7681be9aff05d85a127bc56628cc03f 100644 --- a/src/main/java/controller/PersistentToggleGroup.java +++ b/src/main/java/firefighter/controller/PersistentToggleGroup.java @@ -1,4 +1,4 @@ -package controller; +package firefighter.controller; import javafx.collections.ListChangeListener.Change; import javafx.scene.control.Toggle; diff --git a/src/main/java/model/Board.java b/src/main/java/firefighter/model/Board.java similarity index 87% rename from src/main/java/model/Board.java rename to src/main/java/firefighter/model/Board.java index 5e24f47db3d9f2a071c06f9ca24fcf8ed777b94a..a17de306488ce8f9570928d49e4d480f73d22129 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/firefighter/model/Board.java @@ -1,4 +1,4 @@ -package model; +package firefighter.model; import java.util.List; diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/firefighter/model/FirefighterBoard.java similarity index 99% rename from src/main/java/model/FirefighterBoard.java rename to src/main/java/firefighter/model/FirefighterBoard.java index 910e0365456e320af2e2af7ce969e5777b30dbc5..29af45a07b5f55d9d6cba9a986c6c1a6fdc5f38d 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/firefighter/model/FirefighterBoard.java @@ -1,4 +1,4 @@ -package model; +package firefighter.model; import java.util.*; diff --git a/src/main/java/model/ModelElement.java b/src/main/java/firefighter/model/ModelElement.java similarity index 64% rename from src/main/java/model/ModelElement.java rename to src/main/java/firefighter/model/ModelElement.java index 759eee5e54c3a39472d8f7defbbbe6a2b67b8f00..ca8f16a8cacb4287321f805acf6f5f16fc760bc5 100644 --- a/src/main/java/model/ModelElement.java +++ b/src/main/java/firefighter/model/ModelElement.java @@ -1,4 +1,4 @@ -package model; +package firefighter.model; public enum ModelElement { FIREFIGHTER, FIRE diff --git a/src/main/java/model/Position.java b/src/main/java/firefighter/model/Position.java similarity index 64% rename from src/main/java/model/Position.java rename to src/main/java/firefighter/model/Position.java index 08c95ad838499b7386c0b831df0f6d6994b23d90..9941e11701a6089c663b441f7bca5eb97a495951 100644 --- a/src/main/java/model/Position.java +++ b/src/main/java/firefighter/model/Position.java @@ -1,4 +1,4 @@ -package model; +package firefighter.model; public record Position(int row, int column) { diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/firefighter/view/FirefighterGrid.java similarity index 97% rename from src/main/java/view/FirefighterGrid.java rename to src/main/java/firefighter/view/FirefighterGrid.java index 085ad2c14e69a96cb34be70316362aedee14d290..1e46ca881b5af24b92cbc45140b94921db018bc8 100644 --- a/src/main/java/view/FirefighterGrid.java +++ b/src/main/java/firefighter/view/FirefighterGrid.java @@ -1,9 +1,9 @@ -package view; +package firefighter.view; import javafx.scene.canvas.Canvas; import javafx.scene.paint.Color; import javafx.util.Pair; -import model.Position; +import firefighter.model.Position; import java.util.List; diff --git a/src/main/java/view/Grid.java b/src/main/java/firefighter/view/Grid.java similarity index 74% rename from src/main/java/view/Grid.java rename to src/main/java/firefighter/view/Grid.java index ee8a6129d13d6a6c3429c90f4bb9f8455da68041..bc0b4875a276a60ba71a7662a7ccde94a10a530e 100644 --- a/src/main/java/view/Grid.java +++ b/src/main/java/firefighter/view/Grid.java @@ -1,8 +1,7 @@ -package view; +package firefighter.view; -import javafx.scene.paint.Color; import javafx.util.Pair; -import model.Position; +import firefighter.model.Position; import java.util.List; diff --git a/src/main/java/view/ViewElement.java b/src/main/java/firefighter/view/ViewElement.java similarity index 88% rename from src/main/java/view/ViewElement.java rename to src/main/java/firefighter/view/ViewElement.java index ffb76112e1af543df5af41fa906082ef11be9967..0181e552dd18ac27bed065725a63ff3bb280030d 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/firefighter/view/ViewElement.java @@ -1,4 +1,4 @@ -package view; +package firefighter.view; import javafx.scene.paint.Color; diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..c82befa7b9e8653d6f801e17f1636683adf76493 --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module firefighter { + requires javafx.controls; + requires javafx.fxml; + requires javafx.graphics; + opens firefighter.controller to javafx.fxml; + exports firefighter.app; + opens firefighter.app to javafx.fxml; +} \ No newline at end of file diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/firefighter/view/DarkTheme.css similarity index 100% rename from src/main/resources/view/DarkTheme.css rename to src/main/resources/firefighter/view/DarkTheme.css diff --git a/src/main/resources/view/view.fxml b/src/main/resources/firefighter/view/view.fxml similarity index 93% rename from src/main/resources/view/view.fxml rename to src/main/resources/firefighter/view/view.fxml index e8b0ffc8a0ea92ec2814d11fa134e403923198e4..9ae1576cb37ec5e2339ca4a4566c94b69aa139ff 100644 --- a/src/main/resources/view/view.fxml +++ b/src/main/resources/firefighter/view/view.fxml @@ -3,12 +3,12 @@ <?import javafx.scene.control.Button?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.VBox?> -<?import view.FirefighterGrid?> +<?import firefighter.view.FirefighterGrid?> <?import javafx.scene.control.ToggleButton?> <HBox styleClass="background" stylesheets="@DarkTheme.css" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" - fx:controller="controller.Controller"> + fx:controller="firefighter.controller.Controller"> <VBox> <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity" mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"