From 6b95266860135d5f7693b48560e43386bb3cff35 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 3 Feb 2024 18:51:35 -0800 Subject: [PATCH] Initial commit --- .github/workflows/commitTest.yml | 24 ++++ .gitignore | 157 +++++++++++++++++++++ README.md | 39 +++++ assets/sprites/frog.png | Bin 0 -> 40641 bytes build.gradle | 100 +++++++++++++ gradle.properties | 13 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 56177 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 172 +++++++++++++++++++++++ gradlew.bat | 84 +++++++++++ mod.hjson | 23 +++ src/example/ExampleJavaMod.java | 36 +++++ 12 files changed, 653 insertions(+) create mode 100644 .github/workflows/commitTest.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assets/sprites/frog.png create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 mod.hjson create mode 100644 src/example/ExampleJavaMod.java diff --git a/.github/workflows/commitTest.yml b/.github/workflows/commitTest.yml new file mode 100644 index 0000000..7916b71 --- /dev/null +++ b/.github/workflows/commitTest.yml @@ -0,0 +1,24 @@ +name: Build Mod + +on: [push, pull_request] + +jobs: + buildJar: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up PATH + run: | + echo "${ANDROID_HOME}/build-tools/34.0.0" >> $GITHUB_PATH + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Build mod jar + run: ./gradlew deploy + - name: Upload built jar file + uses: actions/upload-artifact@v2 + with: + name: ${{ github.event.repository.name }} + path: build/libs/${{ github.event.repository.name }}.jar diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..435a4bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,157 @@ +logs/ +/core/assets/mindustry-saves/ +/core/assets/mindustry-maps/ +/core/assets/bundles/output/ +/core/assets/.gifimages/ +/deploy/ +/desktop/packr-out/ +/desktop/packr-export/ +/desktop/mindustry-saves/ +/desktop/mindustry-maps/ +/desktop/gifexport/ +/core/lib/ +/ios/assets/ +/core/assets-raw/sprites/generated/ +/core/assets-raw/sprites_out/ +/annotations/build/ +/annotations/out/ +/net/build/ +/tools/build/ +/tests/build/ +/server/build/ +/test_files/ +/annotations/build/ +/desktop-sdl/build/ +desktop-sdl/build/ +/android/assets/mindustry-maps/ +/android/assets/mindustry-saves/ +/core/assets/gifexport/ +/core/assets/version.properties +/core/assets/locales +/ios/src/io/anuke/mindustry/gen/ +/core/src/io/anuke/mindustry/gen/ +ios/robovm.properties +packr-out/ +config/ +*.gif + +version.properties + +.attach_* +## Java + +*.class +*.war +*.ear +hs_err_pid* +crash-report-* +replay_pid* + +## Robovm +/ios/robovm-build/ + +## GWT +/html/war/ +/html/gwt-unitCache/ +.apt_generated/ +.gwt/ +gwt-unitCache/ +www-test/ +.gwt-tmp/ + +## Android Studio and Intellij and Android in general +/android/libs/armeabi/ +/android/libs/armeabi-v7a/ +/android/libs/arm64-v8a/ +/android/libs/x86/ +/android/libs/x86_64/ +/android/gen/ +.idea/ +*.ipr +*.iws +*.iml +/android/out/ +com_crashlytics_export_strings.xml + +## Eclipse + +.classpath +.project +.metadata/ +/android/bin/ +/core/bin/ +/desktop/bin/ +/html/bin/ +/ios/bin/ +/ios-moe/bin/ +*.tmp +*.bak +*.swp +*~.nib +.settings/ +.loadpath +.externalToolBuilders/ +*.launch + +## NetBeans + +/nbproject/private/ +/android/nbproject/private/ +/core/nbproject/private/ +/desktop/nbproject/private/ +/html/nbproject/private/ +/ios/nbproject/private/ +/ios-moe/nbproject/private/ + +/build/ +/android/build/ +/core/build/ +/desktop/build/ +/html/build/ +/ios/build/ +/ios-moe/build/ + +/nbbuild/ +/android/nbbuild/ +/core/nbbuild/ +/desktop/nbbuild/ +/html/nbbuild/ +/ios/nbbuild/ +/ios-moe/nbbuild/ + +/dist/ +/android/dist/ +/core/dist/ +/desktop/dist/ +/html/dist/ +/ios/dist/ +/ios-moe/dist/ + +/nbdist/ +/android/nbdist/ +/core/nbdist/ +/desktop/nbdist/ +/html/nbdist/ +/ios/nbdist/ +/ios-moe/nbdist/ + +nbactions.xml +nb-configuration.xml + +## Gradle + +/local.properties +.gradle/ +gradle-app.setting +/build/ +/android/build/ +/core/build/ +/desktop/build/ +/html/build/ +/ios/build/ +/ios-moe/build/ + +## OS Specific +.DS_Store +Thumbs.db +android/libs/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..c75215c --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# Mindustry Java Mod Template +A Java Mindustry mod template that works on Android and PC. The Kotlin version of this mod can be seen [here](https://github.com/Anuken/MindustryKotlinModTemplate). + +## Building for Desktop Testing + +1. Install JDK **17**. +2. Run `gradlew jar` [1]. +3. Your mod jar will be in the `build/libs` directory. **Only use this version for testing on desktop. It will not work with Android.** +To build an Android-compatible version, you need the Android SDK. You can either let Github Actions handle this, or set it up yourself. See steps below. + +## Building through Github Actions + +This repository is set up with Github Actions CI to automatically build the mod for you every commit. This requires a Github repository, for obvious reasons. +To get a jar file that works for every platform, do the following: +1. Make a Github repository with your mod name, and upload the contents of this repo to it. Perform any modifications necessary, then commit and push. +2. Check the "Actions" tab on your repository page. Select the most recent commit in the list. If it completed successfully, there should be a download link under the "Artifacts" section. +3. Click the download link (should be the name of your repo). This will download a **zipped jar** - **not** the jar file itself [2]! Unzip this file and import the jar contained within in Mindustry. This version should work both on Android and Desktop. + +## Building Locally + +Building locally takes more time to set up, but shouldn't be a problem if you've done Android development before. +1. Download the Android SDK, unzip it and set the `ANDROID_HOME` environment variable to its location. +2. Make sure you have API level 30 installed, as well as any recent version of build tools (e.g. 30.0.1) +3. Add a build-tools folder to your PATH. For example, if you have `30.0.1` installed, that would be `$ANDROID_HOME/build-tools/30.0.1`. +4. Run `gradlew deploy`. If you did everything correctlly, this will create a jar file in the `build/libs` directory that can be run on both Android and desktop. + +## Adding Dependencies + +Please note that all dependencies on Mindustry, Arc or its submodules **must be declared as compileOnly in Gradle**. Never use `implementation` for core Mindustry or Arc dependencies. + +- `implementation` **places the entire dependency in the jar**, which is, in most mod dependencies, very undesirable. You do not want the entirety of the Mindustry API included with your mod. +- `compileOnly` means that the dependency is only around at compile time, and not included in the jar. + +Only use `implementation` if you want to package another Java library *with your mod*, and that library is not present in Mindustry already. + +--- + +*[1]* *On Linux/Mac it's `./gradlew`, but if you're using Linux I assume you know how to run executables properly anyway.* +*[2]: Yes, I know this is stupid. It's a Github UI limitation - while the jar itself is uploaded unzipped, there is currently no way to download it as a single file.* diff --git a/assets/sprites/frog.png b/assets/sprites/frog.png new file mode 100644 index 0000000000000000000000000000000000000000..52e6c0e4deed4a562992cb73c67cd887100d2602 GIT binary patch literal 40641 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 + if(details.requested.group == 'com.github.Anuken.Arc'){ + details.useVersion "$mindustryVersion" + } + } +} + +task jarAndroid{ + dependsOn "jar" + + doLast{ + if(!sdkRoot || !new File(sdkRoot).exists()) throw new GradleException("No valid Android SDK found. Ensure that ANDROID_HOME is set to your Android SDK directory."); + + def platformRoot = new File("$sdkRoot/platforms/").listFiles().sort().reverse().find{ f -> new File(f, "android.jar").exists()} + + if(!platformRoot) throw new GradleException("No android.jar found. Ensure that you have an Android platform installed.") + + //collect dependencies needed for desugaring + def dependencies = (configurations.compileClasspath.asList() + configurations.runtimeClasspath.asList() + [new File(platformRoot, "android.jar")]).collect{ "--classpath $it.path" }.join(" ") + + def d8 = isWindows ? "d8.bat" : "d8" + + //dex and desugar files - this requires d8 in your PATH + "$d8 $dependencies --min-api 14 --output ${project.archivesBaseName}Android.jar ${project.archivesBaseName}Desktop.jar" + .execute(null, new File("$buildDir/libs")).waitForProcessOutput(System.out, System.err) + } +} + +jar{ + archiveFileName = "${base.archivesBaseName}Desktop.jar" + + from{ + configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) } + } + + from(rootDir){ + include "mod.hjson" + } + + from("assets/"){ + include "**" + } +} + +task deploy(type: Jar){ + dependsOn jarAndroid + dependsOn jar + archiveFileName = "${base.archivesBaseName}.jar" + + from{ [zipTree("$buildDir/libs/${project.archivesBaseName}Desktop.jar"), zipTree("$buildDir/libs/${project.archivesBaseName}Android.jar")] } + + doLast{ + delete{ + delete "$buildDir/libs/${project.archivesBaseName}Desktop.jar" + delete "$buildDir/libs/${project.archivesBaseName}Android.jar" + } + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..2bcb316 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,13 @@ +org.gradle.jvmargs=--illegal-access=permit \ +--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \ +--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \ +--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..94336fcae912db8a11d55634156fa011f4686124 GIT binary patch literal 56177 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 i;x|p)^~-yfPOPa3(|vBayXKz \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mod.hjson b/mod.hjson new file mode 100644 index 0000000..5b5614c --- /dev/null +++ b/mod.hjson @@ -0,0 +1,23 @@ +#the mod name as displayed in-game +displayName: "Java Mod Template" + +#the internal name of your mod +name: "example-java-mod" + +#your name +author: "You" + +#the fully qualified main class of the mod +main: "example.ExampleJavaMod" + +#the mod description as seen in the mod dialog +description: "A Mindustry Java mod template." + +#the mod version +version: 1.0 + +#the minimum game build required to run this mod +minGameVersion: 145 + +#this is a java mod +java: true diff --git a/src/example/ExampleJavaMod.java b/src/example/ExampleJavaMod.java new file mode 100644 index 0000000..e500367 --- /dev/null +++ b/src/example/ExampleJavaMod.java @@ -0,0 +1,36 @@ +package example; + +import arc.*; +import arc.util.*; +import mindustry.*; +import mindustry.content.*; +import mindustry.game.EventType.*; +import mindustry.gen.*; +import mindustry.mod.*; +import mindustry.ui.dialogs.*; + +public class ExampleJavaMod extends Mod{ + + public ExampleJavaMod(){ + Log.info("Loaded ExampleJavaMod constructor."); + + //listen for game load event + Events.on(ClientLoadEvent.class, e -> { + //show dialog upon startup + Time.runTask(10f, () -> { + BaseDialog dialog = new BaseDialog("frog"); + dialog.cont.add("behold").row(); + //mod sprites are prefixed with the mod name (this mod is called 'example-java-mod' in its config) + dialog.cont.image(Core.atlas.find("example-java-mod-frog")).pad(20f).row(); + dialog.cont.button("I see", dialog::hide).size(100f, 50f); + dialog.show(); + }); + }); + } + + @Override + public void loadContent(){ + Log.info("Loading some example content."); + } + +}