summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2025-01-04 12:41:47 +0100
committerDmitrii Morozov <snoopdesigns@gmail.com>2025-01-04 12:41:47 +0100
commitaf88f7f96b64acd013c964383028311d6d310d5e (patch)
tree4a92f7cd4637c32ff4e3673798a2ea13e0f17467 /desktop
parent1e17c39d9a9fda793abb03fee9db2c7ad8f595fa (diff)
Start from scratch
Diffstat (limited to 'desktop')
-rw-r--r--desktop/build.gradle94
-rw-r--r--desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java26
-rw-r--r--desktop/src/org/snoopdesigns/endless/DesktopLauncher.java23
3 files changed, 85 insertions, 58 deletions
diff --git a/desktop/build.gradle b/desktop/build.gradle
index cd2a88a..9fc469d 100644
--- a/desktop/build.gradle
+++ b/desktop/build.gradle
@@ -1,49 +1,73 @@
-sourceCompatibility = 17
-sourceSets.main.java.srcDirs = [ "src/" ]
-sourceSets.main.resources.srcDirs = ["../assets"]
-
-project.ext.mainClassName = "org.snoopdesigns.endless.DesktopLauncher"
-project.ext.assetsDir = new File("../assets")
-
-import org.gradle.internal.os.OperatingSystem
-
-tasks.register('run', JavaExec) {
- dependsOn classes
- mainClass = project.mainClassName
- classpath = sourceSets.main.runtimeClasspath
- standardInput = System.in
- workingDir = project.assetsDir
- ignoreExitValue = true
-
- if (OperatingSystem.current() == OperatingSystem.MAC_OS) {
- // Required to run on macOS
- jvmArgs += "-XstartOnFirstThread"
+buildscript {
+ repositories {
+ gradlePluginPortal()
}
+ dependencies {
+ }
+}
+
+plugins {
+ id "application"
+}
+
+sourceSets.main.resources.srcDirs += [rootProject.file('assets').path]
+mainClassName = 'org.snoopdesigns.endless.desktop.DesktopLauncher'
+application.setMainClass(mainClassName)
+eclipse.project.name = appName + '-desktop'
+java.sourceCompatibility = 21
+java.targetCompatibility = 21
+if (JavaVersion.current().isJava9Compatible()) {
+ compileJava.options.release.set(21)
+}
+
+dependencies {
+ implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
+ implementation project(':core')
}
-tasks.register('debug', JavaExec) {
- dependsOn classes
- mainClass = project.mainClassName
- classpath = sourceSets.main.runtimeClasspath
- standardInput = System.in
- workingDir = project.assetsDir
- ignoreExitValue = true
- debug = true
+def os = System.properties['os.name'].toLowerCase()
+
+run {
+ workingDir = rootProject.file('assets').path
+ setIgnoreExitValue(true)
}
-tasks.register('dist', Jar) {
+jar {
+ archiveFileName.set("${appName}-${projectVersion}.jar")
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ dependsOn configurations.runtimeClasspath
+ from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+ exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
+ dependencies {
+ exclude('META-INF/INDEX.LIST', 'META-INF/maven/**')
+ }
manifest {
attributes 'Main-Class': project.mainClassName
}
- dependsOn configurations.runtimeClasspath
- from {
- configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ doLast {
+ file(archiveFile).setExecutable(true, false)
}
- with jar
}
+// Equivalent to the jar task; here for compatibility with gdx-setup.
+tasks.register('dist') {
+ dependsOn 'jar'
+}
-dist.dependsOn classes
+distributions {
+ main {
+ contents {
+ into('libs') {
+ project.configurations.runtimeClasspath.files.findAll { file ->
+ file.getName() != project.tasks.jar.outputs.files.singleFile.name
+ }.each { file ->
+ exclude file.name
+ }
+ }
+ }
+ }
+}
-eclipse.project.name = appName + "-desktop"
+startScripts.dependsOn(':desktop:jar')
+startScripts.classpath = project.tasks.jar.outputs.files \ No newline at end of file
diff --git a/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java b/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java
new file mode 100644
index 0000000..6aaa364
--- /dev/null
+++ b/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java
@@ -0,0 +1,26 @@
+package org.snoopdesigns.endless.desktop;
+
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
+import org.snoopdesigns.endless.EndlessGame;
+
+public class DesktopLauncher {
+
+ public static void main(String[] args) {
+ createApplication();
+ }
+
+ private static Lwjgl3Application createApplication() {
+ return new Lwjgl3Application(new EndlessGame(),
+ getDefaultConfiguration());
+ }
+
+ private static Lwjgl3ApplicationConfiguration getDefaultConfiguration() {
+ Lwjgl3ApplicationConfiguration configuration = new Lwjgl3ApplicationConfiguration();
+ configuration.setTitle("endless-game");
+ configuration.useVsync(true);
+ configuration.setForegroundFPS(Lwjgl3ApplicationConfiguration.getDisplayMode().refreshRate + 1);
+ configuration.setWindowedMode(640, 480);
+ return configuration;
+ }
+} \ No newline at end of file
diff --git a/desktop/src/org/snoopdesigns/endless/DesktopLauncher.java b/desktop/src/org/snoopdesigns/endless/DesktopLauncher.java
deleted file mode 100644
index 3ece708..0000000
--- a/desktop/src/org/snoopdesigns/endless/DesktopLauncher.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.snoopdesigns.endless;
-
-import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
-import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
-import org.snoopdesigns.endless.config.Config;
-
-public final class DesktopLauncher {
-
- private final static String TITLE = "Endless";
-
- private DesktopLauncher() {
- }
-
- public static void main(String[] arg) {
- Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
- config.setForegroundFPS(60);
- config.setTitle(TITLE);
- config.useVsync(true);
- config.setWindowedMode(Config.getScreenWidth(), Config.getScreenHeight());
- //config.setFullscreenMode(Lwjgl3ApplicationConfiguration.getDisplayMode());
- new Lwjgl3Application(new EndlessGame(), config);
- }
-}