82 lines
2.0 KiB
Groovy
82 lines
2.0 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'application'
|
|
}
|
|
|
|
group = 'de.blight'
|
|
version = '0.1.0'
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
resources {
|
|
srcDirs = ['src/main/resources', 'assets']
|
|
}
|
|
}
|
|
}
|
|
|
|
application {
|
|
mainClass = 'de.blight.game.BlightApp'
|
|
// jMonkeyEngine benötigt den headless-Flag nicht; nativer Fenstermodus
|
|
applicationDefaultJvmArgs = [
|
|
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
|
'--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED',
|
|
'-Djava.library.path=${rootDir}/build/natives'
|
|
]
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
ext {
|
|
jmeVersion = '3.7.0-stable'
|
|
}
|
|
|
|
dependencies {
|
|
// jMonkeyEngine core
|
|
implementation "org.jmonkeyengine:jme3-core:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}"
|
|
|
|
// Terrain, Effects, Plugins
|
|
implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}"
|
|
|
|
// Bullet-Physik (nativ)
|
|
implementation "org.jmonkeyengine:jme3-jbullet:${jmeVersion}"
|
|
|
|
// Testdaten / eingebaute Assets (Primitiv-Modelle, Skybox etc.)
|
|
implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}"
|
|
|
|
// JSON für Key-Binding-Konfiguration
|
|
implementation 'com.google.code.gson:gson:2.11.0'
|
|
}
|
|
|
|
// Native Libraries automatisch entpacken
|
|
tasks.register('extractNatives', Copy) {
|
|
def nativeConf = configurations.runtimeClasspath.resolvedConfiguration
|
|
.resolvedArtifacts
|
|
.findAll { it.name.contains('natives') }
|
|
.collect { zipTree(it.file) }
|
|
|
|
from nativeConf
|
|
into "${buildDir}/natives"
|
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
|
}
|
|
|
|
run {
|
|
dependsOn extractNatives
|
|
workingDir = rootDir
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes 'Main-Class': application.mainClass
|
|
}
|
|
}
|