- Animations-Import: GLB wird direkt vom Ursprungspfad geladen (kein Zwischenkopieren), J3O in clips/ gespeichert - RetargetingSystem: Translations-Tracks im Full-Retarget-Pfad erhalten (Hips-Y für sit_down) - AnimationLibrary: lädt nur J3O, Clip-Name wird bei applyTo() auf Library-Key umbenannt - SharedInput: animPreviewAddAnimPath → ConcurrentLinkedQueue animImportQueue (Massenimport-Fix) - EditorApp: archiveOriginal() archiviert Originaldateien nach assets/imported/<assettyp>/ - EditorApp: Animations-Unterknoten im Asset-Baum zeigen enthaltene Clip-Namen - Neue Animations-Clips: sit_down, get_up_sitting, sitting, pickup, sprinting u.a. - Voxel: VoxelChunkState entfernt, VoxelChunkNode/MarchingCubes überarbeitet - Map: Voxel-Chunks bereinigt, Terrain-Chunks aktualisiert Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
79 lines
2.4 KiB
Groovy
79 lines
2.4 KiB
Groovy
// group / version / java / repositories kommen vom Root-Build.
|
|
plugins {
|
|
id 'application'
|
|
id 'org.openjfx.javafxplugin' version '0.1.0'
|
|
}
|
|
|
|
javafx {
|
|
version = '26'
|
|
modules = ['javafx.controls', 'javafx.swing']
|
|
}
|
|
|
|
application {
|
|
mainClass = 'de.blight.editor.BlightEditor'
|
|
applicationDefaultJvmArgs = [
|
|
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
|
'--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED',
|
|
"-Djava.library.path=${buildDir}/natives",
|
|
'-Xmx3g',
|
|
]
|
|
}
|
|
|
|
ext {
|
|
jmeVersion = '3.9.0-stable'
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':blight-common')
|
|
implementation project(':blight-assets')
|
|
implementation project(':blight-map')
|
|
implementation project(':blight-vegetation-generator')
|
|
// Spiel-Klassen + deren Abhängigkeiten (jme3-jbullet, gson) auf dem Runtime-
|
|
// Classpath, damit der Editor BlightApp als Subprocess starten kann.
|
|
implementation project(':blight-game')
|
|
|
|
implementation "org.jmonkeyengine:jme3-core:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-plugins:${jmeVersion}"
|
|
implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}"
|
|
implementation 'com.google.code.gson:gson:2.11.0'
|
|
implementation 'org.slf4j:slf4j-api:2.0.17'
|
|
implementation 'org.slf4j:jul-to-slf4j:2.0.17'
|
|
runtimeOnly 'ch.qos.logback:logback-classic:1.5.18'
|
|
compileOnly 'org.projectlombok:lombok:1.18.38'
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.38'
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
resources {
|
|
srcDirs = ['src/main/resources']
|
|
}
|
|
}
|
|
}
|
|
|
|
run {
|
|
dependsOn extractNatives
|
|
workingDir = rootDir // gemeinsames Arbeitsverzeichnis = Projekt-Root
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes 'Main-Class': application.mainClass.get()
|
|
}
|
|
}
|