From 395318909b9440033780bc5d1b1571f98e96add7 Mon Sep 17 00:00:00 2001 From: shahdlala66 Date: Wed, 1 Apr 2026 08:52:59 +0200 Subject: [PATCH] fix: correct core sepration for the gui and the tui, gui no longer in a seperate module --- modules/gui/build.gradle.kts | 76 ------------------ modules/ui/build.gradle.kts | 18 ++++- .../resources/sprites/board/board_bottom.png | Bin .../sprites/board/board_square_black.png | Bin .../sprites/board/board_square_white.png | Bin .../resources/sprites/pieces/black_bishop.png | Bin .../resources/sprites/pieces/black_king.png | Bin .../resources/sprites/pieces/black_knight.png | Bin .../resources/sprites/pieces/black_pawn.png | Bin .../resources/sprites/pieces/black_queen.png | Bin .../resources/sprites/pieces/black_rook.png | Bin .../resources/sprites/pieces/white_bishop.png | Bin .../resources/sprites/pieces/white_king.png | Bin .../resources/sprites/pieces/white_knight.png | Bin .../resources/sprites/pieces/white_pawn.png | Bin .../resources/sprites/pieces/white_queen.png | Bin .../resources/sprites/pieces/white_rook.png | Bin .../{gui => ui}/src/main/resources/styles.css | 0 .../src/main/scala/de/nowchess/ui/Main.scala | 2 +- .../de/nowchess/ui}/gui/ChessBoardView.scala | 8 +- .../scala/de/nowchess/ui}/gui/ChessGUI.scala | 6 +- .../de/nowchess/ui}/gui/GUIObserver.scala | 2 +- .../de/nowchess/ui}/gui/PieceSprites.scala | 6 +- settings.gradle.kts | 2 +- 24 files changed, 30 insertions(+), 90 deletions(-) delete mode 100644 modules/gui/build.gradle.kts rename modules/{gui => ui}/src/main/resources/sprites/board/board_bottom.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/board/board_square_black.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/board/board_square_white.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_bishop.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_king.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_knight.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_pawn.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_queen.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/black_rook.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_bishop.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_king.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_knight.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_pawn.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_queen.png (100%) rename modules/{gui => ui}/src/main/resources/sprites/pieces/white_rook.png (100%) rename modules/{gui => ui}/src/main/resources/styles.css (100%) rename modules/{gui/src/main/scala/de/nowchess => ui/src/main/scala/de/nowchess/ui}/gui/ChessBoardView.scala (97%) rename modules/{gui/src/main/scala/de/nowchess => ui/src/main/scala/de/nowchess/ui}/gui/ChessGUI.scala (94%) rename modules/{gui/src/main/scala/de/nowchess => ui/src/main/scala/de/nowchess/ui}/gui/GUIObserver.scala (98%) rename modules/{gui/src/main/scala/de/nowchess => ui/src/main/scala/de/nowchess/ui}/gui/PieceSprites.scala (88%) diff --git a/modules/gui/build.gradle.kts b/modules/gui/build.gradle.kts deleted file mode 100644 index 7a1f99f..0000000 --- a/modules/gui/build.gradle.kts +++ /dev/null @@ -1,76 +0,0 @@ -plugins { - id("scala") - id("org.scoverage") version "8.1" - application -} - -group = "de.nowchess" -version = "1.0-SNAPSHOT" - -@Suppress("UNCHECKED_CAST") -val versions = rootProject.extra["VERSIONS"] as Map - -repositories { - mavenCentral() -} - -scala { - scalaVersion = versions["SCALA3"]!! -} - -scoverage { - scoverageVersion.set(versions["SCOVERAGE"]!!) -} - -dependencies { - implementation("org.scala-lang:scala3-compiler_3") { - version { - strictly(versions["SCALA3"]!!) - } - } - implementation("org.scala-lang:scala3-library_3") { - version { - strictly(versions["SCALA3"]!!) - } - } - - implementation(project(":modules:core")) - implementation(project(":modules:api")) - - // ScalaFX dependencies - implementation("org.scalafx:scalafx_3:21.0.0-R32") - - // JavaFX dependencies for the current platform - val javaFXVersion = "21.0.1" - val osName = System.getProperty("os.name").lowercase() - val platform = when { - osName.contains("win") -> "win" - osName.contains("mac") -> "mac" - osName.contains("linux") -> "linux" - else -> "linux" - } - - listOf("base", "controls", "graphics", "media").forEach { module -> - implementation("org.openjfx:javafx-$module:$javaFXVersion:$platform") - } - - testImplementation(platform("org.junit:junit-bom:5.13.4")) - testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation("org.scalatest:scalatest_3:${versions["SCALATEST"]!!}") - testImplementation("co.helmethair:scalatest-junit-runner:${versions["SCALATEST_JUNIT"]!!}") - - testRuntimeOnly("org.junit.platform:junit-platform-launcher") -} - -tasks.test { - useJUnitPlatform { - includeEngines("scalatest") - testLogging { - events("passed", "skipped", "failed") - } - } - finalizedBy(tasks.reportScoverage) -} -tasks.reportScoverage { - dependsOn(tasks.test) -} diff --git a/modules/ui/build.gradle.kts b/modules/ui/build.gradle.kts index 4f64d41..a0d5e28 100644 --- a/modules/ui/build.gradle.kts +++ b/modules/ui/build.gradle.kts @@ -50,7 +50,23 @@ dependencies { implementation(project(":modules:core")) implementation(project(":modules:api")) - implementation(project(":modules:gui")) + + // ScalaFX dependencies + implementation("org.scalafx:scalafx_3:21.0.0-R32") + + // JavaFX dependencies for the current platform + val javaFXVersion = "21.0.1" + val osName = System.getProperty("os.name").lowercase() + val platform = when { + osName.contains("win") -> "win" + osName.contains("mac") -> "mac" + osName.contains("linux") -> "linux" + else -> "linux" + } + + listOf("base", "controls", "graphics", "media").forEach { module -> + implementation("org.openjfx:javafx-$module:$javaFXVersion:$platform") + } testImplementation(platform("org.junit:junit-bom:5.13.4")) testImplementation("org.junit.jupiter:junit-jupiter") diff --git a/modules/gui/src/main/resources/sprites/board/board_bottom.png b/modules/ui/src/main/resources/sprites/board/board_bottom.png similarity index 100% rename from modules/gui/src/main/resources/sprites/board/board_bottom.png rename to modules/ui/src/main/resources/sprites/board/board_bottom.png diff --git a/modules/gui/src/main/resources/sprites/board/board_square_black.png b/modules/ui/src/main/resources/sprites/board/board_square_black.png similarity index 100% rename from modules/gui/src/main/resources/sprites/board/board_square_black.png rename to modules/ui/src/main/resources/sprites/board/board_square_black.png diff --git a/modules/gui/src/main/resources/sprites/board/board_square_white.png b/modules/ui/src/main/resources/sprites/board/board_square_white.png similarity index 100% rename from modules/gui/src/main/resources/sprites/board/board_square_white.png rename to modules/ui/src/main/resources/sprites/board/board_square_white.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_bishop.png b/modules/ui/src/main/resources/sprites/pieces/black_bishop.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_bishop.png rename to modules/ui/src/main/resources/sprites/pieces/black_bishop.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_king.png b/modules/ui/src/main/resources/sprites/pieces/black_king.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_king.png rename to modules/ui/src/main/resources/sprites/pieces/black_king.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_knight.png b/modules/ui/src/main/resources/sprites/pieces/black_knight.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_knight.png rename to modules/ui/src/main/resources/sprites/pieces/black_knight.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_pawn.png b/modules/ui/src/main/resources/sprites/pieces/black_pawn.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_pawn.png rename to modules/ui/src/main/resources/sprites/pieces/black_pawn.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_queen.png b/modules/ui/src/main/resources/sprites/pieces/black_queen.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_queen.png rename to modules/ui/src/main/resources/sprites/pieces/black_queen.png diff --git a/modules/gui/src/main/resources/sprites/pieces/black_rook.png b/modules/ui/src/main/resources/sprites/pieces/black_rook.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/black_rook.png rename to modules/ui/src/main/resources/sprites/pieces/black_rook.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_bishop.png b/modules/ui/src/main/resources/sprites/pieces/white_bishop.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_bishop.png rename to modules/ui/src/main/resources/sprites/pieces/white_bishop.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_king.png b/modules/ui/src/main/resources/sprites/pieces/white_king.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_king.png rename to modules/ui/src/main/resources/sprites/pieces/white_king.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_knight.png b/modules/ui/src/main/resources/sprites/pieces/white_knight.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_knight.png rename to modules/ui/src/main/resources/sprites/pieces/white_knight.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_pawn.png b/modules/ui/src/main/resources/sprites/pieces/white_pawn.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_pawn.png rename to modules/ui/src/main/resources/sprites/pieces/white_pawn.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_queen.png b/modules/ui/src/main/resources/sprites/pieces/white_queen.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_queen.png rename to modules/ui/src/main/resources/sprites/pieces/white_queen.png diff --git a/modules/gui/src/main/resources/sprites/pieces/white_rook.png b/modules/ui/src/main/resources/sprites/pieces/white_rook.png similarity index 100% rename from modules/gui/src/main/resources/sprites/pieces/white_rook.png rename to modules/ui/src/main/resources/sprites/pieces/white_rook.png diff --git a/modules/gui/src/main/resources/styles.css b/modules/ui/src/main/resources/styles.css similarity index 100% rename from modules/gui/src/main/resources/styles.css rename to modules/ui/src/main/resources/styles.css diff --git a/modules/ui/src/main/scala/de/nowchess/ui/Main.scala b/modules/ui/src/main/scala/de/nowchess/ui/Main.scala index 731084c..4313506 100644 --- a/modules/ui/src/main/scala/de/nowchess/ui/Main.scala +++ b/modules/ui/src/main/scala/de/nowchess/ui/Main.scala @@ -2,7 +2,7 @@ package de.nowchess.ui import de.nowchess.chess.engine.GameEngine import de.nowchess.ui.terminal.TerminalUI -import de.nowchess.gui.ChessGUILauncher +import de.nowchess.ui.gui.ChessGUILauncher /** Application entry point - starts both GUI and Terminal UI for the chess game. * Both views subscribe to the same GameEngine via Observer pattern. diff --git a/modules/gui/src/main/scala/de/nowchess/gui/ChessBoardView.scala b/modules/ui/src/main/scala/de/nowchess/ui/gui/ChessBoardView.scala similarity index 97% rename from modules/gui/src/main/scala/de/nowchess/gui/ChessBoardView.scala rename to modules/ui/src/main/scala/de/nowchess/ui/gui/ChessBoardView.scala index 40d5a7c..ba0fdbb 100644 --- a/modules/gui/src/main/scala/de/nowchess/gui/ChessBoardView.scala +++ b/modules/ui/src/main/scala/de/nowchess/ui/gui/ChessBoardView.scala @@ -1,4 +1,4 @@ -package de.nowchess.gui +package de.nowchess.ui.gui import scalafx.Includes.* import scalafx.application.Platform @@ -14,7 +14,7 @@ import de.nowchess.api.move.PromotionPiece import de.nowchess.chess.engine.GameEngine /** ScalaFX chess board view that displays the game state. - * Uses Arabian chess sprites and color palette. + * Uses chess sprites and color palette. * Handles user interactions (clicks) and sends moves to GameEngine. */ class ChessBoardView(val stage: Stage, private val engine: GameEngine) extends BorderPane: @@ -22,7 +22,7 @@ class ChessBoardView(val stage: Stage, private val engine: GameEngine) extends B private val squareSize = 70.0 private val boardGrid = new GridPane() private val messageLabel = new Label { - text = "Welcome to Arabian Chess!" + text = "Welcome!" font = Font.font("Comic Sans MS", 16) padding = Insets(10) } @@ -41,7 +41,7 @@ class ChessBoardView(val stage: Stage, private val engine: GameEngine) extends B alignment = Pos.Center children = Seq( new Label { - text = "Arabian Chess" + text = "Chess" font = Font.font("Comic Sans MS", 24) style = "-fx-font-weight: bold;" }, diff --git a/modules/gui/src/main/scala/de/nowchess/gui/ChessGUI.scala b/modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala similarity index 94% rename from modules/gui/src/main/scala/de/nowchess/gui/ChessGUI.scala rename to modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala index 20a705a..815f952 100644 --- a/modules/gui/src/main/scala/de/nowchess/gui/ChessGUI.scala +++ b/modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala @@ -1,4 +1,4 @@ -package de.nowchess.gui +package de.nowchess.ui.gui import javafx.application.{Application => JFXApplication, Platform => JFXPlatform} import javafx.stage.Stage as JFXStage @@ -7,7 +7,7 @@ import scalafx.scene.Scene import scalafx.stage.Stage import de.nowchess.chess.engine.GameEngine -/** ScalaFX GUI Application for Arabian Chess. +/** ScalaFX GUI Application for Chess. * This is launched from Main alongside the TUI. * Both subscribe to the same GameEngine via Observer pattern. */ @@ -17,7 +17,7 @@ class ChessGUIApp extends JFXApplication: val engine = ChessGUILauncher.getEngine val stage = new Stage(primaryStage) - stage.title = "Arabian Chess" + stage.title = "Chess" stage.width = 700 stage.height = 800 stage.resizable = false diff --git a/modules/gui/src/main/scala/de/nowchess/gui/GUIObserver.scala b/modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala similarity index 98% rename from modules/gui/src/main/scala/de/nowchess/gui/GUIObserver.scala rename to modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala index e96450c..a97bd28 100644 --- a/modules/gui/src/main/scala/de/nowchess/gui/GUIObserver.scala +++ b/modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala @@ -1,4 +1,4 @@ -package de.nowchess.gui +package de.nowchess.ui.gui import scalafx.application.Platform import scalafx.scene.control.Alert diff --git a/modules/gui/src/main/scala/de/nowchess/gui/PieceSprites.scala b/modules/ui/src/main/scala/de/nowchess/ui/gui/PieceSprites.scala similarity index 88% rename from modules/gui/src/main/scala/de/nowchess/gui/PieceSprites.scala rename to modules/ui/src/main/scala/de/nowchess/ui/gui/PieceSprites.scala index 526cc68..f50eea3 100644 --- a/modules/gui/src/main/scala/de/nowchess/gui/PieceSprites.scala +++ b/modules/ui/src/main/scala/de/nowchess/ui/gui/PieceSprites.scala @@ -1,9 +1,9 @@ -package de.nowchess.gui +package de.nowchess.ui.gui import scalafx.scene.image.{Image, ImageView} import de.nowchess.api.board.{Piece, PieceType, Color} -/** Utility object for loading Arabian chess piece sprites. */ +/** Utility object for loading chess piece sprites. */ object PieceSprites: private val spriteCache = scala.collection.mutable.Map[String, Image]() @@ -29,7 +29,7 @@ object PieceSprites: throw new RuntimeException(s"Could not load sprite: $path") new Image(stream) - /** Get square colors for the board using Arabian theme. */ + /** Get square colors for the board using theme. */ object SquareColors: val White = "#F3C8A0" // Warm light beige val Black = "#BA6D4B" // Warm terracotta diff --git a/settings.gradle.kts b/settings.gradle.kts index 75b3358..f164a80 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,2 @@ rootProject.name = "NowChessSystems" -include("modules:core", "modules:api", "modules:ui", "modules:gui") \ No newline at end of file +include("modules:core", "modules:api", "modules:ui") \ No newline at end of file