@echo off
setlocal
echo === JavaFX EXE Build System (JDK 25) ===

REM （１）事前準備
REM 環境変数で一括管理
REM 自分自身の環境に合わせて修正してください
echo [1-1] 環境変数設定...
set JAVA_HOME=C:\Java\jdk-25.0.1
set JFX_SDK=C:\Java\javafx-sdk-25.0.1
set JFX_MODS=C:\Java\javafx-jmods-25.0.1
set APP_NAME=InfinitySpace3D
set MAIN_CLASS=InfinitySpace3D
set VERSION=1.0.0

REM 必要なフォルダを作成
echo [1-2] フォルダ作成...
if not exist "out" mkdir "out"
if not exist "dist" mkdir "dist"
if not exist "release" mkdir "release"

REM （２）コンパイル
echo [2] コンパイル中...
"%JAVA_HOME%\bin\javac" ^
  --module-path "%JFX_SDK%\lib" ^
  --add-modules javafx.controls,javafx.media ^
  -classpath ".;" ^
  -d out *.java

REM （３）「dist」フォルダへjarファイルとイメージとサウンドを集約
echo [3-1] サウンドもコピーする
copy Music_fx_deep_space_ambient_delicate_myste.wav out
echo [3-2] distフォルダ構築 jarファイル作成中。イメージファイルも一緒にjar化...
echo Main-Class: %MAIN_CLASS% > manifest.txt
"%JAVA_HOME%\bin\jar" cvfm dist\%APP_NAME%.jar manifest.txt -C out . image

REM （４）パッケージング。EXE化
echo [4] パッケージ作成中 (app-image)...
"%JAVA_HOME%\bin\jpackage" ^
  --name "%APP_NAME%" ^
  --type app-image ^
  --win-console ^
  --input dist ^
  --dest "release" ^
  --main-jar "%APP_NAME%.jar" ^
  --main-class "%MAIN_CLASS%" ^
  --java-options "--enable-native-access=javafx.graphics" ^
  --java-options "--enable-native-access=javafx.media" ^
  --module-path "%JFX_MODS%" ^
  --add-modules javafx.controls,javafx.media,java.logging ^
  --vendor "KIN"

echo === 全工程完了！ release\%APP_NAME% 内の %APP_NAME%.exe を実行してください ===
pause
