From 2fbb541790151fcde1835da16fd30b5d829268a3 Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 6 Jul 2024 19:18:40 +0200 Subject: [PATCH] Added some basic files --- .gitignore | 3 + build.sh | 4 + pom.xml | 212 +++++++ src/main/java/com/openeggbert/core/Main.java | 36 ++ .../com/openeggbert/entity/common/Cheat.java | 47 ++ .../entity/common/EggbertMusic.java | 30 + .../entity/common/EggbertSound.java | 30 + .../entity/common/EggbertState.java | 30 + .../openeggbert/entity/common/EntityType.java | 34 ++ .../entity/common/GameExecution.java | 40 ++ .../openeggbert/entity/common/GameFile.java | 36 ++ .../entity/common/GameFileType.java | 13 + .../openeggbert/entity/common/GameFiles.java | 29 + .../openeggbert/entity/common/ScreenType.java | 30 + .../entity/common/SpriteAnimation.java | 30 + .../entity/common/SpriteSheet.java | 30 + .../com/openeggbert/entity/common/Utils.java | 35 ++ .../com/openeggbert/entity/common/World.java | 30 + .../compatibility/CompatibilityMode.java | 50 ++ .../common/compatibility/GraphicsMode.java | 30 + .../common/compatibility/ReleaseType.java | 30 + .../common/compatibility/ReleaseVersion.java | 30 + .../common/compatibility/ResolutionMode.java | 32 ++ .../openeggbert/entity/gameplay/Buldozer.java | 30 + .../openeggbert/entity/gameplay/Eggbert.java | 30 + src/main/java/lombok.config | 1 + src/main/java/module-info.java | 28 + src/main/resources/.gitkeep | 0 .../META-INF/native-image/filter-file.json | 11 + .../META-INF/native-image/jni-config.json | 104 ++++ .../predefined-classes-config.json | 8 + .../META-INF/native-image/proxy-config.json | 2 + .../META-INF/native-image/reflect-config.json | 524 ++++++++++++++++++ .../native-image/resource-config.json | 130 +++++ .../native-image/serialization-config.json | 17 + src/main/resources/log4j2.properties | 5 + src/test/java/com/openeggbert/main/.gitkeep | 0 37 files changed, 1761 insertions(+) create mode 100755 build.sh create mode 100644 pom.xml create mode 100755 src/main/java/com/openeggbert/core/Main.java create mode 100644 src/main/java/com/openeggbert/entity/common/Cheat.java create mode 100644 src/main/java/com/openeggbert/entity/common/EggbertMusic.java create mode 100644 src/main/java/com/openeggbert/entity/common/EggbertSound.java create mode 100644 src/main/java/com/openeggbert/entity/common/EggbertState.java create mode 100644 src/main/java/com/openeggbert/entity/common/EntityType.java create mode 100644 src/main/java/com/openeggbert/entity/common/GameExecution.java create mode 100644 src/main/java/com/openeggbert/entity/common/GameFile.java create mode 100644 src/main/java/com/openeggbert/entity/common/GameFileType.java create mode 100644 src/main/java/com/openeggbert/entity/common/GameFiles.java create mode 100644 src/main/java/com/openeggbert/entity/common/ScreenType.java create mode 100644 src/main/java/com/openeggbert/entity/common/SpriteAnimation.java create mode 100644 src/main/java/com/openeggbert/entity/common/SpriteSheet.java create mode 100644 src/main/java/com/openeggbert/entity/common/Utils.java create mode 100644 src/main/java/com/openeggbert/entity/common/World.java create mode 100644 src/main/java/com/openeggbert/entity/common/compatibility/CompatibilityMode.java create mode 100644 src/main/java/com/openeggbert/entity/common/compatibility/GraphicsMode.java create mode 100644 src/main/java/com/openeggbert/entity/common/compatibility/ReleaseType.java create mode 100644 src/main/java/com/openeggbert/entity/common/compatibility/ReleaseVersion.java create mode 100644 src/main/java/com/openeggbert/entity/common/compatibility/ResolutionMode.java create mode 100644 src/main/java/com/openeggbert/entity/gameplay/Buldozer.java create mode 100644 src/main/java/com/openeggbert/entity/gameplay/Eggbert.java create mode 100644 src/main/java/lombok.config create mode 100755 src/main/java/module-info.java create mode 100644 src/main/resources/.gitkeep create mode 100644 src/main/resources/META-INF/native-image/filter-file.json create mode 100644 src/main/resources/META-INF/native-image/jni-config.json create mode 100644 src/main/resources/META-INF/native-image/predefined-classes-config.json create mode 100644 src/main/resources/META-INF/native-image/proxy-config.json create mode 100644 src/main/resources/META-INF/native-image/reflect-config.json create mode 100644 src/main/resources/META-INF/native-image/resource-config.json create mode 100644 src/main/resources/META-INF/native-image/serialization-config.json create mode 100644 src/main/resources/log4j2.properties create mode 100644 src/test/java/com/openeggbert/main/.gitkeep diff --git a/.gitignore b/.gitignore index d42cb7a..007f943 100755 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,7 @@ target *.idea/** *.class +logs/* +dist/* +system/* diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..b07bb1e --- /dev/null +++ b/build.sh @@ -0,0 +1,4 @@ +mkdir dist +rm dist/openeggbert.jar +mvn clean install +mv target/open-eggbert-0.0.0-SNAPSHOT-jar-with-dependencies.jar dist/openeggbert.jar diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..aee6d6f --- /dev/null +++ b/pom.xml @@ -0,0 +1,212 @@ + + + + 4.0.0 + + + org.nanoboot.essential + nanoboot-parent + 0.1.1-SNAPSHOT + + + com.openeggbert + open-eggbert + 0.0.0-SNAPSHOT + jar + + Open Eggbert + Free recreation of the computer game Speedy Eggbert + + + UTF-8 + true + 21 + 21 + com.openeggbert.core.Main + + 6.2.3 + 6.0.7 + 2.1.0 + 4.0.19 + 2.0.1 + 0.0.8 + 1.0.22 + host + + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + ${maven-deploy-plugin.version} + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + ${javase.version} + ${javase.version} + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + + ${main.class} + + + + jar-with-dependencies + + + + + + make-assembly + package + + single + + + + + + + org.openjfx + javafx-maven-plugin + ${javafx.maven.plugin.version} + + ${main.class} + + + + com.gluonhq + gluonfx-maven-plugin + ${gluonfx.maven.plugin.version} + + ${gluonfx.target} + ${main.class} + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + ${checkstyle.skip} + + + + + + + + ios + + ios + + + + android + + android + + + + + + + + org.projectlombok + lombok + ${lombok.version} + + + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-slf4j-impl + ${log4j.version} + + + com.github.almasb + fxgl + 21.1 + + + + + + + releases + nanoboot-releases-repository + https://maven.nanoboot.org/releases + + + snapshots + nanoboot-snapshots-repository + https://maven.nanoboot.org/snapshots + + + + + + releases + nanoboot-releases-repository + https://maven.nanoboot.org/releases + + + snapshots + nanoboot-snapshots-repository + https://maven.nanoboot.org/snapshots + + + + diff --git a/src/main/java/com/openeggbert/core/Main.java b/src/main/java/com/openeggbert/core/Main.java new file mode 100755 index 0000000..fba1afb --- /dev/null +++ b/src/main/java/com/openeggbert/core/Main.java @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.core; + +/** + * @author Robert Vokac + * @since 0.0.0 + */ +public class Main { + + public static void main(String[] args) { + System.out.println("Open Eggbert - Free recreation of the computer game Speedy Eggbert.\n"); + + OpenEggbertApp.launch(OpenEggbertApp.class, args); + } + +} diff --git a/src/main/java/com/openeggbert/entity/common/Cheat.java b/src/main/java/com/openeggbert/entity/common/Cheat.java new file mode 100644 index 0000000..e9d7c08 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/Cheat.java @@ -0,0 +1,47 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +import com.openeggbert.entity.common.compatibility.CompatibilityMode; +import lombok.Getter; + +/** + * + * @author robertvokac + */ +public enum Cheat { + + MEGABLUPI(Utils.ALL__COMPATIBILITY_MODES); + //todo + + @Getter + private final CompatibilityMode[] compatibilityModes; + @Getter + private String note; + Cheat (CompatibilityMode[] compatibilityModes) { + this(compatibilityModes, ""); + } + Cheat (CompatibilityMode[] compatibilityModes, String note) { + this.compatibilityModes = compatibilityModes; + this.note = note; + } +} diff --git a/src/main/java/com/openeggbert/entity/common/EggbertMusic.java b/src/main/java/com/openeggbert/entity/common/EggbertMusic.java new file mode 100644 index 0000000..b0eaec6 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/EggbertMusic.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public enum EggbertMusic { + +} diff --git a/src/main/java/com/openeggbert/entity/common/EggbertSound.java b/src/main/java/com/openeggbert/entity/common/EggbertSound.java new file mode 100644 index 0000000..412a396 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/EggbertSound.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public enum EggbertSound { + +} diff --git a/src/main/java/com/openeggbert/entity/common/EggbertState.java b/src/main/java/com/openeggbert/entity/common/EggbertState.java new file mode 100644 index 0000000..716a0c7 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/EggbertState.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public enum EggbertState { + +} diff --git a/src/main/java/com/openeggbert/entity/common/EntityType.java b/src/main/java/com/openeggbert/entity/common/EntityType.java new file mode 100644 index 0000000..bdbaa3e --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/EntityType.java @@ -0,0 +1,34 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public enum EntityType { + PLAYER, + COIN, + EGGBERT, + BULDOZER; + //todo +} diff --git a/src/main/java/com/openeggbert/entity/common/GameExecution.java b/src/main/java/com/openeggbert/entity/common/GameExecution.java new file mode 100644 index 0000000..c90cb9b --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/GameExecution.java @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +import com.openeggbert.entity.common.compatibility.CompatibilityMode; +import com.openeggbert.entity.common.compatibility.GraphicsMode; +import com.openeggbert.entity.common.compatibility.ResolutionMode; +import lombok.Data; + +/** + * + * @author robertvokac + */ +@Data +public class GameExecution { + private CompatibilityMode compatibilityMode; + private ResolutionMode resolutionMode = ResolutionMode.RESOLUTION_640_480; + private GraphicsMode graphicsMode = GraphicsMode.ORIGINAL; + private Boolean cheatsEnabled = true; + +} diff --git a/src/main/java/com/openeggbert/entity/common/GameFile.java b/src/main/java/com/openeggbert/entity/common/GameFile.java new file mode 100644 index 0000000..d43974f --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/GameFile.java @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + +package com.openeggbert.entity.common; + +import com.openeggbert.entity.common.compatibility.CompatibilityMode; + +/** + * + * @author robertvokac + */ +public class GameFile { + + private CompatibilityMode compatibilityMode; + private GameFileType gameFileType; + private String path; + private String name; + private String originalSha512Sum; +} diff --git a/src/main/java/com/openeggbert/entity/common/GameFileType.java b/src/main/java/com/openeggbert/entity/common/GameFileType.java new file mode 100644 index 0000000..6afb723 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/GameFileType.java @@ -0,0 +1,13 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public enum GameFileType { + CONFIG, WORLD, MUSIC, SOUND, IMAGE8, IMAGE16, IMAGE32; +} diff --git a/src/main/java/com/openeggbert/entity/common/GameFiles.java b/src/main/java/com/openeggbert/entity/common/GameFiles.java new file mode 100644 index 0000000..f84270b --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/GameFiles.java @@ -0,0 +1,29 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public class GameFiles { + +} diff --git a/src/main/java/com/openeggbert/entity/common/ScreenType.java b/src/main/java/com/openeggbert/entity/common/ScreenType.java new file mode 100644 index 0000000..06b16bb --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/ScreenType.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public class ScreenType { + +} diff --git a/src/main/java/com/openeggbert/entity/common/SpriteAnimation.java b/src/main/java/com/openeggbert/entity/common/SpriteAnimation.java new file mode 100644 index 0000000..591ed60 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/SpriteAnimation.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public class SpriteAnimation { + +} diff --git a/src/main/java/com/openeggbert/entity/common/SpriteSheet.java b/src/main/java/com/openeggbert/entity/common/SpriteSheet.java new file mode 100644 index 0000000..541663c --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/SpriteSheet.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public class SpriteSheet { + +} diff --git a/src/main/java/com/openeggbert/entity/common/Utils.java b/src/main/java/com/openeggbert/entity/common/Utils.java new file mode 100644 index 0000000..c939c97 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/Utils.java @@ -0,0 +1,35 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +import com.openeggbert.entity.common.compatibility.CompatibilityMode; + +/** + * + * @author robertvokac + */ +public class Utils { + private Utils() { + //Instantiate not needed. + } + public static final CompatibilityMode[] ALL__COMPATIBILITY_MODES = CompatibilityMode.values(); +} diff --git a/src/main/java/com/openeggbert/entity/common/World.java b/src/main/java/com/openeggbert/entity/common/World.java new file mode 100644 index 0000000..e4d2b4b --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/World.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common; + +/** + * + * @author robertvokac + */ +public class World { + +} diff --git a/src/main/java/com/openeggbert/entity/common/compatibility/CompatibilityMode.java b/src/main/java/com/openeggbert/entity/common/compatibility/CompatibilityMode.java new file mode 100644 index 0000000..a33d329 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/compatibility/CompatibilityMode.java @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common.compatibility; + +import lombok.Getter; + +/** + * + * @author robertvokac + */ +public enum CompatibilityMode { + SPEEDY_BLUPI_DEMO(ReleaseType.BLUPI, ReleaseVersion.DEMO), + SPEEDY_BLUPI_I(ReleaseType.BLUPI, ReleaseVersion.ONE), + SPEEDY_BLUPI_II(ReleaseType.BLUPI, ReleaseVersion.TWO), + SPEEDY_EGGBERT_DEMO(ReleaseType.EGGBERT, ReleaseVersion.DEMO), + SPEEDY_EGGBERT_1(ReleaseType.EGGBERT, ReleaseVersion.ONE), + SPEEDY_EGGBERT_2(ReleaseType.EGGBERT, ReleaseVersion.TWO), + OPEN_EGGBERT(ReleaseType.OPEN, ReleaseVersion.THREE); + @Getter + private final ReleaseType releaseType; + @Getter + private final ReleaseVersion releaseVersion; + + private CompatibilityMode(ReleaseType releaseType, ReleaseVersion releaseVersion) { + this.releaseType = releaseType; + this.releaseVersion = releaseVersion; + } + + + +} diff --git a/src/main/java/com/openeggbert/entity/common/compatibility/GraphicsMode.java b/src/main/java/com/openeggbert/entity/common/compatibility/GraphicsMode.java new file mode 100644 index 0000000..c3d89f1 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/compatibility/GraphicsMode.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common.compatibility; + +/** + * + * @author robertvokac + */ +public enum GraphicsMode { + ORIGINAL, NEW; +} diff --git a/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseType.java b/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseType.java new file mode 100644 index 0000000..e17749f --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseType.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common.compatibility; + +/** + * + * @author robertvokac + */ +public enum ReleaseType { + BLUPI, EGGBERT, OPEN; +} diff --git a/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseVersion.java b/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseVersion.java new file mode 100644 index 0000000..724e92d --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/compatibility/ReleaseVersion.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common.compatibility; + +/** + * + * @author robertvokac + */ +public enum ReleaseVersion { + DEMO, ONE, TWO, THREE +} diff --git a/src/main/java/com/openeggbert/entity/common/compatibility/ResolutionMode.java b/src/main/java/com/openeggbert/entity/common/compatibility/ResolutionMode.java new file mode 100644 index 0000000..e79939d --- /dev/null +++ b/src/main/java/com/openeggbert/entity/common/compatibility/ResolutionMode.java @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.common.compatibility; + +/** + * + * @author robertvokac + */ +public enum ResolutionMode { + RESOLUTION_640_480, + RESOLUTION_1280_960, + RESOLUTION_SCALED; +} diff --git a/src/main/java/com/openeggbert/entity/gameplay/Buldozer.java b/src/main/java/com/openeggbert/entity/gameplay/Buldozer.java new file mode 100644 index 0000000..4e1b931 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/gameplay/Buldozer.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.gameplay; + +/** + * + * @author robertvokac + */ +public class Buldozer { + +} diff --git a/src/main/java/com/openeggbert/entity/gameplay/Eggbert.java b/src/main/java/com/openeggbert/entity/gameplay/Eggbert.java new file mode 100644 index 0000000..5c7d772 --- /dev/null +++ b/src/main/java/com/openeggbert/entity/gameplay/Eggbert.java @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + + +package com.openeggbert.entity.gameplay; + +/** + * + * @author robertvokac + */ +public class Eggbert { + +} diff --git a/src/main/java/lombok.config b/src/main/java/lombok.config new file mode 100644 index 0000000..2066d75 --- /dev/null +++ b/src/main/java/lombok.config @@ -0,0 +1 @@ +lombok.log.fieldName=LOG diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100755 index 0000000..c52db73 --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// + +module openeggbert.main { + requires lombok; + requires org.apache.logging.log4j; + requires com.almasb.fxgl.all; + exports com.openeggbert.core; + exports com.openeggbert.entity.common; + exports com.openeggbert.entity.gameplay; +} diff --git a/src/main/resources/.gitkeep b/src/main/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/META-INF/native-image/filter-file.json b/src/main/resources/META-INF/native-image/filter-file.json new file mode 100644 index 0000000..d173ee0 --- /dev/null +++ b/src/main/resources/META-INF/native-image/filter-file.json @@ -0,0 +1,11 @@ +{ "rules": [ + {"excludeClasses" : "com.sun.glass.ui.mac.*"}, + {"excludeClasses" : "com.sun.glass.ui.gtk.*"}, + {"excludeClasses" : "com.sun.glass.ui.win.*"}, + {"excludeClasses" : "com.sun.prism.es2.*"}, + {"excludeClasses" : "com.sun.prism.d3d.*"}, + {"excludeClasses" : "com.sun.scenario.effect.impl.es2.*"}, + {"excludeClasses" : "com.sun.scenario.effect.impl.hw.d3d.*"}, + {"excludeClasses" : "com.gluonhq.attach.**"} + ] +} diff --git a/src/main/resources/META-INF/native-image/jni-config.json b/src/main/resources/META-INF/native-image/jni-config.json new file mode 100644 index 0000000..1efffed --- /dev/null +++ b/src/main/resources/META-INF/native-image/jni-config.json @@ -0,0 +1,104 @@ +[ +{ + "name":"[Lcom.sun.glass.ui.Screen;" +}, +{ + "name":"[Lcom.sun.javafx.font.FontConfigManager$FontConfigFont;" +}, +{ + "name":"com.sun.glass.ui.Clipboard", + "methods":[{"name":"contentChanged","parameterTypes":[] }] +}, +{ + "name":"com.sun.glass.ui.Cursor", + "fields":[{"name":"ptr"}] +}, +{ + "name":"com.sun.glass.ui.Pixels", + "methods":[{"name":"attachData","parameterTypes":["long"] }] +}, +{ + "name":"com.sun.glass.ui.Screen", + "methods":[{"name":"","parameterTypes":["long","int","int","int","int","int","int","int","int","int","int","int","int","int","int","int","float","float","float","float"] }, {"name":"notifySettingsChanged","parameterTypes":[] }] +}, +{ + "name":"com.sun.glass.ui.Size", + "methods":[{"name":"","parameterTypes":["int","int"] }] +}, +{ + "name":"com.sun.glass.ui.View", + "fields":[{"name":"ptr"}], + "methods":[{"name":"notifyDragDrop","parameterTypes":["int","int","int","int","int"] }, {"name":"notifyDragEnter","parameterTypes":["int","int","int","int","int"] }, {"name":"notifyDragLeave","parameterTypes":[] }, {"name":"notifyDragOver","parameterTypes":["int","int","int","int","int"] }, {"name":"notifyInputMethod","parameterTypes":["java.lang.String","int[]","int[]","byte[]","int","int","int"] }, {"name":"notifyKey","parameterTypes":["int","int","char[]","int"] }, {"name":"notifyMenu","parameterTypes":["int","int","int","int","boolean"] }, {"name":"notifyMouse","parameterTypes":["int","int","int","int","int","int","int","boolean","boolean"] }, {"name":"notifyRepaint","parameterTypes":["int","int","int","int"] }, {"name":"notifyResize","parameterTypes":["int","int"] }, {"name":"notifyScroll","parameterTypes":["int","int","int","int","double","double","int","int","int","int","int","double","double"] }, {"name":"notifyView","parameterTypes":["int"] }] +}, +{ + "name":"com.sun.glass.ui.Window", + "fields":[{"name":"ptr"}], + "methods":[{"name":"isEnabled","parameterTypes":[] }, {"name":"notifyClose","parameterTypes":[] }, {"name":"notifyDelegatePtr","parameterTypes":["long"] }, {"name":"notifyDestroy","parameterTypes":[] }, {"name":"notifyFocus","parameterTypes":["int"] }, {"name":"notifyFocusDisabled","parameterTypes":[] }, {"name":"notifyFocusUngrab","parameterTypes":[] }, {"name":"notifyLevelChanged","parameterTypes":["int"] }, {"name":"notifyMove","parameterTypes":["int","int"] }, {"name":"notifyMoveToAnotherScreen","parameterTypes":["com.sun.glass.ui.Screen"] }, {"name":"notifyResize","parameterTypes":["int","int","int"] }] +}, +{ + "name":"com.sun.javafx.font.FontConfigManager$FcCompFont", + "fields":[{"name":"allFonts"}, {"name":"fcName"}, {"name":"firstFont"}] +}, +{ + "name":"com.sun.javafx.font.FontConfigManager$FontConfigFont", + "fields":[{"name":"familyName"}, {"name":"fontFile"}, {"name":"fullName"}, {"name":"styleStr"}], + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.font.freetype.FT_Bitmap", + "fields":[{"name":"buffer"}, {"name":"num_grays"}, {"name":"palette"}, {"name":"palette_mode"}, {"name":"pitch"}, {"name":"pixel_mode"}, {"name":"rows"}, {"name":"width"}] +}, +{ + "name":"com.sun.javafx.font.freetype.FT_GlyphSlotRec", + "fields":[{"name":"advance_x"}, {"name":"advance_y"}, {"name":"bitmap"}, {"name":"bitmap_left"}, {"name":"bitmap_top"}, {"name":"format"}, {"name":"linearHoriAdvance"}, {"name":"linearVertAdvance"}, {"name":"metrics"}], + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.font.freetype.FT_Glyph_Metrics", + "fields":[{"name":"height"}, {"name":"horiAdvance"}, {"name":"horiBearingX"}, {"name":"horiBearingY"}, {"name":"vertAdvance"}, {"name":"vertBearingX"}, {"name":"vertBearingY"}, {"name":"width"}] +}, +{ + "name":"com.sun.javafx.font.freetype.FT_Matrix", + "fields":[{"name":"xx"}, {"name":"xy"}, {"name":"yx"}, {"name":"yy"}] +}, +{ + "name":"java.lang.Iterable", + "methods":[{"name":"iterator","parameterTypes":[] }] +}, +{ + "name":"java.lang.Runnable", + "methods":[{"name":"run","parameterTypes":[] }] +}, +{ + "name":"java.lang.String", + "methods":[{"name":"toLowerCase","parameterTypes":["java.util.Locale"] }] +}, +{ + "name":"java.nio.ByteBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"wrap","parameterTypes":["byte[]"] }] +}, +{ + "name":"java.util.ArrayList", + "methods":[{"name":"","parameterTypes":[] }, {"name":"","parameterTypes":["int"] }, {"name":"add","parameterTypes":["java.lang.Object"] }, {"name":"get","parameterTypes":["int"] }] +}, +{ + "name":"java.util.HashMap", + "methods":[{"name":"containsKey","parameterTypes":["java.lang.Object"] }, {"name":"get","parameterTypes":["java.lang.Object"] }, {"name":"put","parameterTypes":["java.lang.Object","java.lang.Object"] }] +}, +{ + "name":"java.util.HashSet", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"java.util.Iterator", + "methods":[{"name":"hasNext","parameterTypes":[] }, {"name":"next","parameterTypes":[] }] +}, +{ + "name":"java.util.Map", + "methods":[{"name":"containsKey","parameterTypes":["java.lang.Object"] }, {"name":"get","parameterTypes":["java.lang.Object"] }, {"name":"keySet","parameterTypes":[] }] +}, +{ + "name":"java.util.Set", + "methods":[{"name":"add","parameterTypes":["java.lang.Object"] }, {"name":"size","parameterTypes":[] }, {"name":"toArray","parameterTypes":["java.lang.Object[]"] }] +} +] diff --git a/src/main/resources/META-INF/native-image/predefined-classes-config.json b/src/main/resources/META-INF/native-image/predefined-classes-config.json new file mode 100644 index 0000000..0e79b2c --- /dev/null +++ b/src/main/resources/META-INF/native-image/predefined-classes-config.json @@ -0,0 +1,8 @@ +[ + { + "type":"agent-extracted", + "classes":[ + ] + } +] + diff --git a/src/main/resources/META-INF/native-image/proxy-config.json b/src/main/resources/META-INF/native-image/proxy-config.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/src/main/resources/META-INF/native-image/proxy-config.json @@ -0,0 +1,2 @@ +[ +] diff --git a/src/main/resources/META-INF/native-image/reflect-config.json b/src/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 0000000..35ab635 --- /dev/null +++ b/src/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1,524 @@ +[ +{ + "name":"[B" +}, +{ + "name":"[Ljava.lang.String;" +}, +{ + "name":"[Lsun.security.pkcs.SignerInfo;" +}, +{ + "name":"com.almasb.fxgl.achievement.AchievementService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.FXGLApplication", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.FXGLApplication$GameApplicationService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.ReadOnlyGameSettings", + "queryAllDeclaredMethods":true, + "methods":[{"name":"actualHeightProperty","parameterTypes":[] }, {"name":"actualWidthProperty","parameterTypes":[] }, {"name":"devBBoxColorProperty","parameterTypes":[] }, {"name":"devEnableDebugCameraProperty","parameterTypes":[] }, {"name":"devSensorColorProperty","parameterTypes":[] }, {"name":"devShowBBoxProperty","parameterTypes":[] }, {"name":"devShowPositionProperty","parameterTypes":[] }, {"name":"gameDifficultyProperty","parameterTypes":[] }, {"name":"getAchievements","parameterTypes":[] }, {"name":"getActualHeight","parameterTypes":[] }, {"name":"getActualWidth","parameterTypes":[] }, {"name":"getAppIcon","parameterTypes":[] }, {"name":"getApplicationMode","parameterTypes":[] }, {"name":"getCSSList","parameterTypes":[] }, {"name":"getCollisionDetectionStrategy","parameterTypes":[] }, {"name":"getConfigClass","parameterTypes":[] }, {"name":"getCredits","parameterTypes":[] }, {"name":"getDefaultCursor","parameterTypes":[] }, {"name":"getEnabledMenuItems","parameterTypes":[] }, {"name":"getEngineServices","parameterTypes":[] }, {"name":"getFontGame","parameterTypes":[] }, {"name":"getFontMono","parameterTypes":[] }, {"name":"getFontSizeScaleUI","parameterTypes":[] }, {"name":"getFontText","parameterTypes":[] }, {"name":"getFontUI","parameterTypes":[] }, {"name":"getFullScreen","parameterTypes":[] }, {"name":"getGameDifficulty","parameterTypes":[] }, {"name":"getGlobalMusicVolume","parameterTypes":[] }, {"name":"getGlobalSoundVolume","parameterTypes":[] }, {"name":"getHeight","parameterTypes":[] }, {"name":"getLanguage","parameterTypes":[] }, {"name":"getMenuKey","parameterTypes":[] }, {"name":"getMouseSensitivity","parameterTypes":[] }, {"name":"getNotificationViewClass","parameterTypes":[] }, {"name":"getPixelsPerMeter","parameterTypes":[] }, {"name":"getPlatform","parameterTypes":[] }, {"name":"getProfileDir","parameterTypes":[] }, {"name":"getProfileName","parameterTypes":[] }, {"name":"getRandomSeed","parameterTypes":[] }, {"name":"getRuntimeInfo","parameterTypes":[] }, {"name":"getSaveFileExt","parameterTypes":[] }, {"name":"getScaledHeightProp$fxgl","parameterTypes":[] }, {"name":"getScaledWidthProp$fxgl","parameterTypes":[] }, {"name":"getSceneFactory","parameterTypes":[] }, {"name":"getSecondsIn24h","parameterTypes":[] }, {"name":"getSoundMenuBack","parameterTypes":[] }, {"name":"getSoundMenuPress","parameterTypes":[] }, {"name":"getSoundMenuSelect","parameterTypes":[] }, {"name":"getSoundNotification","parameterTypes":[] }, {"name":"getStageStyle","parameterTypes":[] }, {"name":"getSupportedLanguages","parameterTypes":[] }, {"name":"getTicksPerSecond","parameterTypes":[] }, {"name":"getTitle","parameterTypes":[] }, {"name":"getUrlGithub","parameterTypes":[] }, {"name":"getUrlLeaderboard","parameterTypes":[] }, {"name":"getUrlPOM","parameterTypes":[] }, {"name":"getUserAppClass","parameterTypes":[] }, {"name":"getVersion","parameterTypes":[] }, {"name":"getVersionCheckDays","parameterTypes":[] }, {"name":"getWidth","parameterTypes":[] }, {"name":"globalMusicVolumeProperty","parameterTypes":[] }, {"name":"globalSoundVolumeProperty","parameterTypes":[] }, {"name":"is3D","parameterTypes":[] }, {"name":"isAndroid","parameterTypes":[] }, {"name":"isBrowser","parameterTypes":[] }, {"name":"isClickFeedbackEnabled","parameterTypes":[] }, {"name":"isCloseConfirmation","parameterTypes":[] }, {"name":"isDesktop","parameterTypes":[] }, {"name":"isDeveloperMenuEnabled","parameterTypes":[] }, {"name":"isEmbedded","parameterTypes":[] }, {"name":"isEntityPreloadEnabled","parameterTypes":[] }, {"name":"isExperimentalTiledLargeMap","parameterTypes":[] }, {"name":"isFileSystemWriteAllowed","parameterTypes":[] }, {"name":"isFullScreenAllowed","parameterTypes":[] }, {"name":"isFullScreenFromStart","parameterTypes":[] }, {"name":"isGameMenuEnabled","parameterTypes":[] }, {"name":"isIOS","parameterTypes":[] }, {"name":"isIntroEnabled","parameterTypes":[] }, {"name":"isLinux","parameterTypes":[] }, {"name":"isMac","parameterTypes":[] }, {"name":"isMainMenuEnabled","parameterTypes":[] }, {"name":"isManualResizeEnabled","parameterTypes":[] }, {"name":"isMobile","parameterTypes":[] }, {"name":"isNative","parameterTypes":[] }, {"name":"isPauseMusicWhenMinimized","parameterTypes":[] }, {"name":"isPreserveResizeRatio","parameterTypes":[] }, {"name":"isProfilingEnabled","parameterTypes":[] }, {"name":"isScaleAffectedOnResize","parameterTypes":[] }, {"name":"isSingleStep","parameterTypes":[] }, {"name":"isUserProfileEnabled","parameterTypes":[] }, {"name":"isWindows","parameterTypes":[] }, {"name":"prefHeightProperty","parameterTypes":[] }, {"name":"prefWidthProperty","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.services.FXGLAssetLoaderService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.services.FXGLDialogService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.services.IOTaskExecutorService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.services.SystemBundleService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.app.services.UpdaterService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.audio.AudioPlayer", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.core.EngineService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.core.asset.AssetLoaderService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.cutscene.CutsceneService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.dev.DevService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.io.FileSystemService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.localization.LocalizationService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.minigames.MiniGameService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.net.NetService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.notification.NotificationService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.notification.impl.NotificationServiceProvider", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.notification.view.XboxNotificationView", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.profile.SaveLoadService", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.scene.SceneService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.ui.DialogFactoryService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.ui.DialogService", + "allDeclaredFields":true +}, +{ + "name":"com.almasb.fxgl.ui.FXGLDialogFactoryServiceProvider", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.ui.FXGLUIFactoryServiceProvider", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.almasb.fxgl.ui.UIFactoryService", + "allDeclaredFields":true +}, +{ + "name":"com.openeggbert.core.OpenEggbertApp", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.AESCipher$General", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.ARCFOURCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.ChaCha20Cipher$ChaCha20Poly1305", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DESCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DESedeCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DHParameters", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.GaloisCounterMode$AESGCM", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.HmacCore$HmacSHA256", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.TlsMasterSecretGenerator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.font.freetype.FTFactory", + "methods":[{"name":"getFactory","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.logging.PrintLogger", + "methods":[{"name":"createInstance","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.logging.jfr.JFRPulseLogger", + "methods":[{"name":"createInstance","parameterTypes":[] }] +}, +{ + "name":"com.sun.javafx.scene.control.skin.Utils", + "methods":[{"name":"getResource","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.sun.javafx.tk.quantum.QuantumToolkit", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.prism.GraphicsPipeline", + "methods":[{"name":"getFontFactory","parameterTypes":[] }, {"name":"getPipeline","parameterTypes":[] }] +}, +{ + "name":"com.sun.prism.shader.DrawEllipse_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.DrawPgram_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.FillEllipse_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.FillRoundRect_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.Solid_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.Solid_TextureRGB_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.Texture_Color_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.prism.shader.Texture_LinearGradient_PAD_Loader", + "methods":[{"name":"loadShader","parameterTypes":["com.sun.prism.ps.ShaderFactory","java.io.InputStream"] }] +}, +{ + "name":"com.sun.scenario.effect.impl.prism.PrRenderer", + "methods":[{"name":"createRenderer","parameterTypes":["com.sun.scenario.effect.FilterContext"] }] +}, +{ + "name":"com.sun.scenario.effect.impl.prism.ps.PPSBlend_SRC_INPeer", + "methods":[{"name":"","parameterTypes":["com.sun.scenario.effect.FilterContext","com.sun.scenario.effect.impl.Renderer","java.lang.String"] }] +}, +{ + "name":"com.sun.scenario.effect.impl.prism.ps.PPSRenderer", + "methods":[{"name":"createRenderer","parameterTypes":["com.sun.scenario.effect.FilterContext"] }] +}, +{ + "name":"java.lang.Character", + "methods":[{"name":"isIdeographic","parameterTypes":["int"] }] +}, +{ + "name":"java.lang.String" +}, +{ + "name":"java.lang.Thread", + "fields":[{"name":"threadLocalRandomProbe"}] +}, +{ + "name":"java.nio.ByteBuffer", + "methods":[{"name":"order","parameterTypes":["java.nio.ByteOrder"] }] +}, +{ + "name":"java.nio.ByteOrder", + "methods":[{"name":"nativeOrder","parameterTypes":[] }] +}, +{ + "name":"java.security.AlgorithmParametersSpi" +}, +{ + "name":"java.security.KeyStoreSpi" +}, +{ + "name":"java.security.SecureRandomParameters" +}, +{ + "name":"java.security.interfaces.RSAPrivateKey" +}, +{ + "name":"java.security.interfaces.RSAPublicKey" +}, +{ + "name":"java.util.Date" +}, +{ + "name":"java.util.concurrent.atomic.AtomicBoolean", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicMarkableReference", + "fields":[{"name":"pair"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicReference", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.Striped64", + "fields":[{"name":"base"}, {"name":"cellsBusy"}] +}, +{ + "name":"javafx.scene.Camera" +}, +{ + "name":"javafx.scene.Group" +}, +{ + "name":"javafx.scene.Node" +}, +{ + "name":"javafx.scene.ParallelCamera" +}, +{ + "name":"javafx.scene.Parent" +}, +{ + "name":"javafx.scene.Scene" +}, +{ + "name":"javafx.scene.control.Control" +}, +{ + "name":"javafx.scene.effect.Effect" +}, +{ + "name":"javafx.scene.image.Image" +}, +{ + "name":"javafx.scene.image.ImageView" +}, +{ + "name":"javafx.scene.layout.Pane" +}, +{ + "name":"javafx.scene.layout.Region" +}, +{ + "name":"javafx.scene.shape.Circle" +}, +{ + "name":"javafx.scene.shape.Line" +}, +{ + "name":"javafx.scene.shape.Polygon" +}, +{ + "name":"javafx.scene.shape.Rectangle" +}, +{ + "name":"javafx.scene.shape.Shape" +}, +{ + "name":"javafx.scene.text.Font" +}, +{ + "name":"javafx.scene.text.Text" +}, +{ + "name":"javafx.scene.transform.Transform" +}, +{ + "name":"javafx.stage.Stage" +}, +{ + "name":"javafx.stage.Window" +}, +{ + "name":"javax.security.auth.x500.X500Principal", + "fields":[{"name":"thisX500Name"}], + "methods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] +}, +{ + "name":"sun.misc.Unsafe", + "fields":[{"name":"theUnsafe"}] +}, +{ + "name":"sun.security.pkcs12.PKCS12KeyStore", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.pkcs12.PKCS12KeyStore$DualFormatPKCS12", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.DSA$SHA224withDSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.DSA$SHA256withDSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.JavaKeyStore$DualFormatJKS", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.JavaKeyStore$JKS", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.MD5", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }, {"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] +}, +{ + "name":"sun.security.provider.SHA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA224", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA256", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA5$SHA384", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA5$SHA512", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.X509Factory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.certpath.PKIXCertPathValidator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.PSSParameters", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAKeyFactory$Legacy", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAPSSSignature", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA224withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA256withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.KeyManagerFactoryImpl$SunX509", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.SSLContextImpl$DefaultSSLContext", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.util.ObjectIdentifier" +}, +{ + "name":"sun.security.x509.AuthorityInfoAccessExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.AuthorityKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.BasicConstraintsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CRLDistributionPointsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CertificateExtensions" +}, +{ + "name":"sun.security.x509.CertificatePoliciesExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.ExtendedKeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.IssuerAlternativeNameExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.KeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.NetscapeCertTypeExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.PrivateKeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.SubjectAlternativeNameExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.SubjectKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +} +] diff --git a/src/main/resources/META-INF/native-image/resource-config.json b/src/main/resources/META-INF/native-image/resource-config.json new file mode 100644 index 0000000..0a1d352 --- /dev/null +++ b/src/main/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,130 @@ +{ + "resources":{ + "includes":[{ + "pattern":"\\QMETA-INF/fonts.mf\\E" + }, { + "pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.spi.InetAddressResolverProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.spi.URLStreamHandlerProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E" + }, { + "pattern":"\\Qcom/sun/javafx/scene/control/skin/resources/controls_en.properties\\E" + }, { + "pattern":"\\Qcom/sun/javafx/scene/control/skin/resources/controls_en_US.properties\\E" + }, { + "pattern":"\\Qcom/sun/javafx/tk/quantum/QuantumMessagesBundle_en.properties\\E" + }, { + "pattern":"\\Qcom/sun/javafx/tk/quantum/QuantumMessagesBundle_en_US.properties\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/languages/english.lang\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/textures/brick.png\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/textures/fxgl_default_cursor.png\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/textures/fxgl_icon.png\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/textures/particles/smoke.png\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/textures/particles/trace_horizontal.png\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/ui/css/fxgl_dark.css\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/ui/fonts/Abel-Regular.ttf\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/ui/fonts/Courier-Prime.ttf\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/ui/fonts/TerminalLandMono-Regular.otf\\E" + }, { + "pattern":"com.almasb.fxgl.all:\\Qfxglassets/ui/fonts/VarelaRound-Regular.ttf\\E" + }, { + "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt74b/nfkc.nrm\\E" + }, { + "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt74b/ubidi.icu\\E" + }, { + "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt74b/uprops.icu\\E" + }, { + "pattern":"java.base:\\Qsun/net/idn/uidna.spp\\E" + }, { + "pattern":"javafx.controls:\\Qcom/sun/javafx/scene/control/skin/modena/modena.bss\\E" + }, { + "pattern":"javafx.controls:\\Qcom/sun/javafx/scene/control/skin/resources/controls.properties\\E" + }, { + "pattern":"javafx.controls:\\Qcom/sun/javafx/scene/control/skin/resources/controls_en.properties\\E" + }, { + "pattern":"javafx.controls:\\Qcom/sun/javafx/scene/control/skin/resources/controls_en_US.properties\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/glass/utils/NativeLibLoader.class\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/javafx/tk/quantum/QuantumMessagesBundle.properties\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/javafx/tk/quantum/QuantumMessagesBundle_en.properties\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/javafx/tk/quantum/QuantumMessagesBundle_en_US.properties\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/DrawEllipse_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/DrawPgram_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/FillEllipse_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/FillRoundRect_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/Solid_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/Solid_TextureRGB.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/Texture_Color.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/prism/es2/glsl/Texture_LinearGradient_PAD.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qcom/sun/scenario/effect/impl/es2/glsl/Blend_SRC_IN.frag\\E" + }, { + "pattern":"javafx.graphics:\\Qlibglass.so\\E" + }, { + "pattern":"javafx.graphics:\\Qlibglassgtk3.so\\E" + }, { + "pattern":"javafx.graphics:\\Qlibjavafx_font.so\\E" + }, { + "pattern":"javafx.graphics:\\Qlibjavafx_font_freetype.so\\E" + }, { + "pattern":"javafx.graphics:\\Qlibjavafx_font_pango.so\\E" + }, { + "pattern":"javafx.graphics:\\Qlibprism_es2.so\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/languages/english.lang\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/textures/particles/smoke.png\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/textures/particles/trace_horizontal.png\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/ui/css/fxgl_dark.css\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/ui/fonts/Abel-Regular.ttf\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/ui/fonts/Courier-Prime.ttf\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/ui/fonts/TerminalLandMono-Regular.otf\\E" + }, { + "pattern":"openeggbert.main:\\Qassets/ui/fonts/VarelaRound-Regular.ttf\\E" + }]}, + "bundles":[{ + "name":"com.sun.javafx.tk.quantum.QuantumMessagesBundle", + "locales":["en-US"] + }, { + "name":"com/sun/javafx/scene/control/skin/resources/controls", + "locales":["en-US"] + }, { + "name":"sun.text.resources.FormatData", + "locales":["en", "en-US", "und"] + }, { + "name":"sun.text.resources.JavaTimeSupplementary", + "locales":["en", "en-US", "und"] + }, { + "name":"sun.text.resources.cldr.FormatData", + "locales":["en", "en-US", "und"] + }] +} diff --git a/src/main/resources/META-INF/native-image/serialization-config.json b/src/main/resources/META-INF/native-image/serialization-config.json new file mode 100644 index 0000000..7445cf0 --- /dev/null +++ b/src/main/resources/META-INF/native-image/serialization-config.json @@ -0,0 +1,17 @@ +{ + "types":[ + { + "name":"com.almasb.fxgl.core.serialization.Bundle" + }, + { + "name":"java.lang.String" + }, + { + "name":"java.util.HashMap" + } + ], + "lambdaCapturingTypes":[ + ], + "proxies":[ + ] +} diff --git a/src/main/resources/log4j2.properties b/src/main/resources/log4j2.properties new file mode 100644 index 0000000..2939b9d --- /dev/null +++ b/src/main/resources/log4j2.properties @@ -0,0 +1,5 @@ +appender.console.type = Console +appender.console.name = STDOUT +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n +rootLogger=info, STDOUT diff --git a/src/test/java/com/openeggbert/main/.gitkeep b/src/test/java/com/openeggbert/main/.gitkeep new file mode 100644 index 0000000..e69de29