Skip to content

Commit 92d4563

Browse files
authored
Merge branch 'master' into patch-3
2 parents 771592c + deef748 commit 92d4563

File tree

188 files changed

+5255
-2491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+5255
-2491
lines changed

.github/workflows/main.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ on:
4646
push:
4747
branches:
4848
- master
49+
- v3.7
4950
- v3.6
5051
- v3.5
5152
- v3.4
@@ -69,7 +70,7 @@ jobs:
6970
with:
7071
fetch-depth: 1
7172
- name: Validate the Gradle wrapper
72-
uses: gradle/wrapper-validation-action@v2
73+
uses: gradle/actions/wrapper-validation@v3
7374
- name: Build
7475
run: |
7576
./gradlew -PuseCommitHashAsVersionName=true --no-daemon -PbuildNativeProjects=true \
@@ -81,30 +82,30 @@ jobs:
8182
name: android-natives
8283
path: build/native
8384

84-
# Build the engine, we only deploy from ubuntu-latest jdk17
85+
# Build the engine, we only deploy from ubuntu-latest jdk21
8586
BuildJMonkey:
8687
needs: [BuildAndroidNatives]
8788
name: Build on ${{ matrix.osName }} jdk${{ matrix.jdk }}
8889
runs-on: ${{ matrix.os }}
8990
strategy:
9091
fail-fast: false
9192
matrix:
92-
os: [ubuntu-latest,windows-2019,macOS-latest]
93-
jdk: [8, 11, 17]
93+
os: [ubuntu-latest,windows-latest,macOS-latest]
94+
jdk: [11, 17, 21]
9495
include:
9596
- os: ubuntu-latest
9697
osName: linux
9798
deploy: true
98-
- os: windows-2019
99+
- os: windows-latest
99100
osName: windows
100101
deploy: false
101102
- os: macOS-latest
102103
osName: mac
103104
deploy: false
104-
- jdk: 8
105-
deploy: false
106105
- jdk: 11
107106
deploy: false
107+
- jdk: 17
108+
deploy: false
108109

109110
steps:
110111
- name: Clone the repo
@@ -125,7 +126,7 @@ jobs:
125126
path: build/native
126127

127128
- name: Validate the Gradle wrapper
128-
uses: gradle/wrapper-validation-action@v2
129+
uses: gradle/actions/wrapper-validation@v3
129130
- name: Build Engine
130131
shell: bash
131132
run: |
@@ -305,12 +306,12 @@ jobs:
305306
with:
306307
fetch-depth: 1
307308

308-
# Setup jdk 17 used for building Maven-style artifacts
309+
# Setup jdk 21 used for building Maven-style artifacts
309310
- name: Setup the java environment
310311
uses: actions/setup-java@v4
311312
with:
312313
distribution: 'temurin'
313-
java-version: '17'
314+
java-version: '21'
314315

315316
- name: Download natives for android
316317
uses: actions/download-artifact@master
@@ -349,12 +350,12 @@ jobs:
349350
with:
350351
fetch-depth: 1
351352

352-
# Setup jdk 17 used for building Sonatype OSSRH artifacts
353+
# Setup jdk 21 used for building Sonatype OSSRH artifacts
353354
- name: Setup the java environment
354355
uses: actions/setup-java@v4
355356
with:
356357
distribution: 'temurin'
357-
java-version: '17'
358+
java-version: '21'
358359

359360
# Download all the stuff...
360361
- name: Download maven artifacts

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ jMonkeyEngine
44
[![Build Status](https://github.com/jMonkeyEngine/jmonkeyengine/workflows/Build%20jMonkeyEngine/badge.svg)](https://github.com/jMonkeyEngine/jmonkeyengine/actions)
55

66
jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge.
7-
v3.6.1 is the latest stable version of the engine.
7+
v3.7.0 is the latest stable version of the engine.
88

99
The engine is used by several commercial game studios and computer-science courses. Here's a taste:
1010

1111
![jME3 Games Mashup](https://i.imgur.com/nF8WOW6.jpg)
1212

13-
- [jME powered games on IndieDB](http://www.indiedb.com/engines/jmonkeyengine/games)
13+
- [jME powered games on IndieDB](https://www.indiedb.com/engines/jmonkeyengine/games)
1414
- [Boardtastic 2](https://boardtastic-2.fileplanet.com/apk)
1515
- [Attack of the Gelatinous Blob](https://attack-gelatinous-blob.softwareandgames.com/)
16-
- [Mythruna](http://mythruna.com/)
16+
- [Mythruna](https://mythruna.com/)
1717
- [PirateHell (on Steam)](https://store.steampowered.com/app/321080/Pirate_Hell/)
18-
- [3089 (on Steam)](http://store.steampowered.com/app/263360/)
19-
- [3079 (on Steam)](http://store.steampowered.com/app/259620/)
18+
- [3089 (on Steam)](https://store.steampowered.com/app/263360/3089__Futuristic_Action_RPG/)
19+
- [3079 (on Steam)](https://store.steampowered.com/app/259620/3079__Block_Action_RPG/)
2020
- [Lightspeed Frontier (on Steam)](https://store.steampowered.com/app/548650/Lightspeed_Frontier/)
2121
- [Skullstone](http://www.skullstonegame.com/)
2222
- [Spoxel (on Steam)](https://store.steampowered.com/app/746880/Spoxel/)
@@ -33,12 +33,14 @@ The engine is used by several commercial game studios and computer-science cours
3333
- [Depthris (on Itch)](https://codewalker.itch.io/depthris)
3434
- [Stranded (on Itch)](https://tgiant.itch.io/stranded)
3535
- [The Afflicted Forests (Coming Soon to Steam)](https://www.indiedb.com/games/the-afflicted-forests)
36+
- [Star Colony: Beyond Horizons (on Google Play)](https://play.google.com/store/apps/details?id=game.colony.ColonyBuilder)
37+
- [High Impact (on Steam)](https://store.steampowered.com/app/3059050/High_Impact/)
3638

3739
## Getting Started
3840

3941
Go to https://github.com/jMonkeyEngine/sdk/releases to download the jMonkeyEngine SDK.
4042
Read [the wiki](https://jmonkeyengine.github.io/wiki) for the installation guide and tutorials.
41-
Join [the discussion forum](http://hub.jmonkeyengine.org/) to participate in our community,
43+
Join [the discussion forum](https://hub.jmonkeyengine.org/) to participate in our community,
4244
get your questions answered, and share your projects.
4345

4446
Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION.

build.gradle

Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ buildscript {
1010
}
1111
}
1212
dependencies {
13-
classpath 'com.android.tools.build:gradle:4.2.0'
14-
classpath 'me.tatarka:gradle-retrolambda:3.7.1'
15-
classpath "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.5.1"
13+
classpath libs.android.build.gradle
14+
classpath libs.gradle.retrolambda
15+
classpath libs.spotbugs.gradle.plugin
1616
}
1717
}
1818

@@ -49,6 +49,7 @@ subprojects {
4949
// Currently we only warn about issues and try to fix them as we go, but those aren't mission critical.
5050
spotbugs {
5151
ignoreFailures = true
52+
toolVersion = '4.8.6'
5253
}
5354

5455
tasks.withType(com.github.spotbugs.snom.SpotBugsTask ) {
@@ -74,23 +75,23 @@ task libDist(dependsOn: subprojects.build, description: 'Builds and copies the e
7475
subprojects.each {project ->
7576
if(!project.hasProperty('mainClassName')){
7677
project.tasks.withType(Jar).each {archiveTask ->
77-
if(archiveTask.classifier == "sources"){
78+
if(archiveTask.archiveClassifier == "sources"){
7879
copy {
7980
from archiveTask.archivePath
8081
into sourceFolder
81-
rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension}
82+
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
8283
}
83-
} else if(archiveTask.classifier == "javadoc"){
84+
} else if(archiveTask.archiveClassifier == "javadoc"){
8485
copy {
8586
from archiveTask.archivePath
8687
into javadocFolder
87-
rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension}
88+
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
8889
}
8990
} else{
9091
copy {
9192
from archiveTask.archivePath
9293
into libFolder
93-
rename {project.name + '.' + archiveTask.extension}
94+
rename {project.name + '.' + archiveTask.archiveExtension}
9495
}
9596
}
9697
}
@@ -114,7 +115,7 @@ task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"P
114115
task copyLibs(type: Copy){
115116
// description 'Copies the engine dependencies to build/libDist'
116117
from {
117-
subprojects*.configurations*.compile*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
118+
subprojects*.configurations*.implementation*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
118119
}
119120

120121
into "$buildDir/libDist/lib-ext" //buildDir.path + '/' + libsDirName + '/lib'
@@ -245,50 +246,8 @@ if (skipPrebuildLibraries != "true" && buildNativeProjects != "true") {
245246
}
246247
}
247248

248-
249-
//class IncrementalReverseTask extends DefaultTask {
250-
// @InputDirectory
251-
// def File inputDir
252-
//
253-
// @OutputDirectory
254-
// def File outputDir
255-
//
256-
// @Input
257-
// def inputProperty
258-
//
259-
// @TaskAction
260-
// void execute(IncrementalTaskInputs inputs) {
261-
// println inputs.incremental ? "CHANGED inputs considered out of date" : "ALL inputs considered out of date"
262-
// inputs.outOfDate { change ->
263-
// println "out of date: ${change.file.name}"
264-
// def targetFile = new File(outputDir, change.file.name)
265-
// targetFile.text = change.file.text.reverse()
266-
// }
267-
//
268-
// inputs.removed { change ->
269-
// println "removed: ${change.file.name}"
270-
// def targetFile = new File(outputDir, change.file.name)
271-
// targetFile.delete()
272-
// }
273-
// }
274-
//}
275-
276-
//allprojects {
277-
// tasks.withType(JavaExec) {
278-
// enableAssertions = true // false by default
279-
// }
280-
// tasks.withType(Test) {
281-
// enableAssertions = true // true by default
282-
// }
283-
//}
284-
285-
wrapper {
286-
gradleVersion = '7.6.4'
287-
}
288-
289-
290249
retrolambda {
291250
javaVersion JavaVersion.VERSION_1_7
292251
incremental true
293252
jvmArgs '-noverify'
294-
}
253+
}

common.gradle

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ eclipse.jdt.file.withProperties { props ->
1515
group = 'org.jmonkeyengine'
1616
version = jmeFullVersion
1717

18-
sourceCompatibility = JavaVersion.VERSION_1_8
19-
targetCompatibility = JavaVersion.VERSION_1_8
18+
java {
19+
sourceCompatibility = JavaVersion.VERSION_1_8
20+
targetCompatibility = JavaVersion.VERSION_1_8
21+
}
2022

2123
tasks.withType(JavaCompile) { // compile-time options:
2224
//options.compilerArgs << '-Xlint:deprecation' // to show deprecation warnings
@@ -27,11 +29,6 @@ tasks.withType(JavaCompile) { // compile-time options:
2729
}
2830
}
2931

30-
ext {
31-
lwjgl3Version = '3.3.3' // used in both the jme3-lwjgl3 and jme3-vr build scripts
32-
niftyVersion = '1.4.3' // used in both the jme3-niftygui and jme3-examples build scripts
33-
}
34-
3532
repositories {
3633
mavenCentral()
3734
flatDir {
@@ -41,9 +38,9 @@ repositories {
4138

4239
dependencies {
4340
// Adding dependencies here will add the dependencies to each subproject.
44-
testImplementation 'junit:junit:4.13.2'
45-
testImplementation 'org.mockito:mockito-core:3.12.4'
46-
testImplementation 'org.codehaus.groovy:groovy-test:3.0.19'
41+
testImplementation libs.junit4
42+
testImplementation libs.mokito.core
43+
testImplementation libs.groovy.test
4744
}
4845

4946
// Uncomment if you want to see the status of every test that is run and
@@ -85,12 +82,12 @@ test {
8582
}
8683

8784
task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
88-
classifier = 'sources'
85+
archiveClassifier = 'sources'
8986
from sourceSets*.allSource
9087
}
9188

9289
task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
93-
classifier = 'javadoc'
90+
archiveClassifier = 'javadoc'
9491
from javadoc.destinationDir
9592
}
9693

@@ -204,7 +201,7 @@ tasks.withType(Sign) {
204201
}
205202

206203
checkstyle {
207-
toolVersion '9.3'
204+
toolVersion libs.versions.checkstyle.get()
208205
configFile file("${gradle.rootProject.rootDir}/config/checkstyle/checkstyle.xml")
209206
}
210207

@@ -218,8 +215,8 @@ checkstyleTest {
218215

219216
tasks.withType(Checkstyle) {
220217
reports {
221-
xml.enabled false
222-
html.enabled true
218+
xml.required.set(false)
219+
html.required.set(true)
223220
}
224221
include("**/com/jme3/renderer/**/*.java")
225222
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Version number: Major.Minor.SubMinor (e.g. 3.3.0)
2-
jmeVersion = 3.7.0
2+
jmeVersion = 3.8.0
33

44
# Leave empty to autogenerate
55
# (use -PjmeVersionName="myVersion" from commandline to specify a custom version name )

gradle/libs.versions.toml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## catalog of libraries and plugins used to build the jmonkeyengine project
2+
3+
[versions]
4+
5+
checkstyle = "9.3"
6+
lwjgl3 = "3.3.3"
7+
nifty = "1.4.3"
8+
9+
[libraries]
10+
11+
android-build-gradle = "com.android.tools.build:gradle:4.2.0"
12+
android-support-appcompat = "com.android.support:appcompat-v7:28.0.0"
13+
androidx-annotation = "androidx.annotation:annotation:1.3.0"
14+
androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.4.0"
15+
gradle-git = "org.ajoberstar:gradle-git:1.2.0"
16+
gradle-retrolambda = "me.tatarka:gradle-retrolambda:3.7.1"
17+
groovy-test = "org.codehaus.groovy:groovy-test:3.0.22"
18+
gson = "com.google.code.gson:gson:2.9.1"
19+
j-ogg-vorbis = "com.github.stephengold:j-ogg-vorbis:1.0.6"
20+
jbullet = "com.github.stephengold:jbullet:1.0.3"
21+
jinput = "net.java.jinput:jinput:2.0.9"
22+
jna = "net.java.dev.jna:jna:5.10.0"
23+
jnaerator-runtime = "com.nativelibs4java:jnaerator-runtime:0.12"
24+
junit4 = "junit:junit:4.13.2"
25+
lwjgl2 = "org.jmonkeyengine:lwjgl:2.9.5"
26+
lwjgl3-awt = "org.lwjglx:lwjgl3-awt:0.1.8"
27+
28+
lwjgl3-base = { module = "org.lwjgl:lwjgl", version.ref = "lwjgl3" }
29+
lwjgl3-glfw = { module = "org.lwjgl:lwjgl-glfw", version.ref = "lwjgl3" }
30+
lwjgl3-jawt = { module = "org.lwjgl:lwjgl-jawt", version.ref = "lwjgl3" }
31+
lwjgl3-jemalloc = { module = "org.lwjgl:lwjgl-jemalloc", version.ref = "lwjgl3" }
32+
lwjgl3-openal = { module = "org.lwjgl:lwjgl-openal", version.ref = "lwjgl3" }
33+
lwjgl3-opencl = { module = "org.lwjgl:lwjgl-opencl", version.ref = "lwjgl3" }
34+
lwjgl3-opengl = { module = "org.lwjgl:lwjgl-opengl", version.ref = "lwjgl3" }
35+
lwjgl3-openvr = { module = "org.lwjgl:lwjgl-openvr", version.ref = "lwjgl3" }
36+
lwjgl3-ovr = { module = "org.lwjgl:lwjgl-ovr", version.ref = "lwjgl3" }
37+
38+
mokito-core = "org.mockito:mockito-core:3.12.4"
39+
40+
nifty = { module = "com.github.nifty-gui:nifty", version.ref = "nifty" }
41+
nifty-default-controls = { module = "com.github.nifty-gui:nifty-default-controls", version.ref = "nifty" }
42+
nifty-examples = { module = "com.github.nifty-gui:nifty-examples", version.ref = "nifty" }
43+
nifty-style-black = { module = "com.github.nifty-gui:nifty-style-black", version.ref = "nifty" }
44+
45+
spotbugs-gradle-plugin = "com.github.spotbugs.snom:spotbugs-gradle-plugin:6.0.18"
46+
vecmath = "javax.vecmath:vecmath:1.5.2"
47+
48+
[bundles]
49+
50+
[plugins]

gradle/wrapper/gradle-wrapper.jar

-17.7 KB
Binary file not shown.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
44
networkTimeout=10000
5+
validateDistributionUrl=true
56
zipStoreBase=GRADLE_USER_HOME
67
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)