diff --git a/.gitignore b/.gitignore index cad5206..c32e8be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,156 +1,5 @@ -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-* - -## 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/ \ No newline at end of file +.idea/* +.github/* +.gradle/* +build/* +out/* \ No newline at end of file diff --git a/build.bat b/build.bat index a9a156a..0ff2b32 100644 --- a/build.bat +++ b/build.bat @@ -1,9 +1,12 @@ -@rem put this project path into PATH_FROM setlocal -set PATH_FROM=C:\Users\jun\Documents\GitHub\Informatis +set MOD_NAME=Informatis + +@rem put this project's path into PATH_FROM +setlocal +set PATH_FROM=C:\Users\user\Documents\GitHub @rem put your mindustry local path into PATH_TO setlocal -set PATH_TO=C:\Users\jun\AppData\Roaming\Mindustry +set PATH_TO=C:\Users\user\AppData\Roaming\Mindustry -if exist %PATH_TO%\mods\InformatisDesktop.jar del %PATH_TO%\mods\InformatisDesktop.jar -xcopy %PATH_FROM%\build\libs\InformatisDesktop.jar %PATH_TO%\mods\ /k /y +if exist %PATH_TO%\mods\raw-%MOD_NAME%.jar del %PATH_TO%\mods\raw-%MOD_NAME%.jar +xcopy %PATH_FROM%\%MOD_NAME%\build\libs\raw-%MOD_NAME%.jar %PATH_TO%\mods\ /k /y diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..1a61a24 --- /dev/null +++ b/build.gradle @@ -0,0 +1,87 @@ +plugins { + id 'java' +} + +ext{ + sdkRoot = System.getenv("ANDROID_HOME") + sdkVersion = '30' + mindustryVersion = 'v140.4' + artifactFilename = "Informatis.jar" +} + +group "sharlotte" +sourceCompatibility = 16 + +sourceSets.main { + java.srcDir("src/") + resources.srcDir("assets/") +} + +repositories { + mavenCentral() + maven { url "https://jitpack.io" } +} + +dependencies { + annotationProcessor 'com.github.Anuken:jabel:0.8.0' + compileOnly "com.github.Anuken.Arc:flabel:$mindustryVersion" + compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" + compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" +} + +jar.archiveFileName.set("raw-$artifactFilename") + +def isWindows = System.getProperty("os.name").toLowerCase(Locale.ROOT).contains("windows") + +task dexify(type: Jar){ + archiveFileName.set(artifactFilename) + + final File jarArtifact = new File(tasks.jar.archiveFile.get().asFile.parent, "raw-$artifactFilename"), + dexedArtifact = new File(tasks.dexify.getTemporaryDir(), "dexed.jar") + + doFirst{ + //collect dependencies needed for desugaring + def files = (configurations.compileClasspath.asList() + configurations.runtimeClasspath.asList() + [new File("$sdkRoot/platforms/android-$sdkVersion/android.jar")]) + + exec{ + workingDir dexedArtifact.parent + def command = ["d8", "--min-api", "14"] + for(def file : files){ + command += "--classpath" + command += file.path + } + + command += ["--output", dexedArtifact, jarArtifact] + + if(isWindows){ + commandLine("cmd", "/c", *command) + }else{ + commandLine(*command) + } + } + } + + from(zipTree(jarArtifact), zipTree(dexedArtifact)) +} + +task buildDex dependsOn "build", "dexify" + +task buildMove(dependsOn: build) { + doLast { + copy { + from "build/libs/raw-Sharustry.jar" + into System.getenv("destination") + } + } +} + +tasks.withType(JavaCompile){ + targetCompatibility = 8 + sourceCompatibility = JavaVersion.VERSION_17 + options.encoding = "UTF-8" + options.compilerArgs += ["-Xlint:deprecation"] + if(JavaVersion.current() != JavaVersion.VERSION_1_8){ + options.compilerArgs.addAll(['--release', '8']) + } + compileJava.options.fork = true +} diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 4a4adba..0000000 --- a/build.gradle.kts +++ /dev/null @@ -1,108 +0,0 @@ -import java.io.ByteArrayOutputStream - -version = "1.0" -plugins { - java -} - -val mindustryVersion = "v138" -repositories { - mavenCentral() - maven("https://jitpack.io") -} - -sourceSets { - main { - java.srcDirs("src") - } - test { - java.srcDir("test") - } -} - -dependencies { - compileOnly("com.github.Anuken.Arc:arc-core:$mindustryVersion") - //flabel hash eae3c2dc59 is broken - compileOnly("com.github.Anuken.Arc:flabel:$mindustryVersion") - compileOnly("com.github.Anuken.Mindustry:core:$mindustryVersion") - annotationProcessor("com.github.Anuken:jabel:0.8.0") -} - -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - -tasks.register("jarAndroid") { - group = "build" - dependsOn("jar") - - doLast { - val sdkRoot = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") - if (sdkRoot == null || !File(sdkRoot).exists()) - throw GradleException("No valid Android SDK found. Ensure that ANDROID_HOME is set to your Android SDK directory.") - val platformRoot = File("$sdkRoot/platforms/").listFiles()!!.sorted().reversed() - .find { f -> File(f, "android.jar").exists() } - ?: throw GradleException("No android.jar found. Ensure that you have an Android platform installed.") - //collect dependencies needed for desugaring - val allDependencies = configurations.compileClasspath.get().toList() + - configurations.runtimeClasspath.get().toList() + - listOf(File(platformRoot, "android.jar")) - val dependencies = allDependencies.joinToString(" ") { "--classpath ${it.path}" } - //dex and desugar files - this requires d8 in your PATH - val paras = "$dependencies --min-api 14 --output ${project.name}Android.jar ${project.name}Desktop.jar" - try { - exec { - commandLine = "d8 $paras".split(' ') - workingDir = File("$buildDir/libs") - standardOutput = System.out - errorOutput = System.err - } - } catch (_: Exception) { - val cmdOutput = ByteArrayOutputStream() - logger.lifecycle("d8 cannot be found in your PATH, so trying to use an absolute path.") - exec { - commandLine = listOf("where", "d8") - standardOutput = cmdOutput - errorOutput = System.err - } - val d8FullPath = cmdOutput.toString().replace("\r", "").replace("\n", "") - exec { - commandLine = "$d8FullPath $paras".split(' ') - workingDir = File("$buildDir/libs") - standardOutput = System.out - errorOutput = System.err - } - } - } -} - -tasks.jar { - - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - archiveFileName.set("${project.name}Desktop.jar") - - from(*configurations.runtimeClasspath.get().files.map { if (it.isDirectory) it else zipTree(it) }.toTypedArray()) - - from(rootDir) { - include("mod.json") - include("icon.png") - } - - from("$rootDir/assets/") { - include("**") - } -} -task("deploy") { - dependsOn("jarAndroid") - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - archiveFileName.set("${project.name}.jar") - from( - zipTree("$buildDir/libs/${project.name}Desktop.jar"), - zipTree("$buildDir/libs/${project.name}Android.jar") - ) - doLast { - delete { delete("$buildDir/libs/${project.name}Desktop.jar") } - delete { delete("$buildDir/libs/${project.name}Android.jar") } - } -} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 94336fc..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ffed3a2..41dfb87 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 43ba31c..df3a6fe 100644 --- a/gradlew +++ b/gradlew @@ -44,7 +44,7 @@ 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="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -82,6 +82,7 @@ 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 @@ -92,14 +93,12 @@ if [ -n "$JAVA_HOME" ] ; then 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 @@ -125,10 +124,11 @@ 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 +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 @@ -154,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $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" ;; + 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 @@ -175,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +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" "$@" +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/gradlew.bat b/gradlew.bat index c42c579..cbea681 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,14 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @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= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @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. @@ -53,6 +57,7 @@ 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. @@ -81,9 +86,11 @@ set CMD_LINE_ARGS=%* 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 @@ -97,4 +104,4 @@ exit /b 1 :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega +:omega \ No newline at end of file diff --git a/mod.json b/mod.json index 210a6f6..e4ca3d0 100644 --- a/mod.json +++ b/mod.json @@ -6,7 +6,7 @@ "subtitle": "hacky ui tool", "version": "1.7", "main": "informatis.Informatis", - "minGameVersion": "138", + "minGameVersion": "140", "dependencies": [], "hidden": true, "java": true diff --git a/src/informatis/core/OverDrawer.java b/src/informatis/core/OverDrawer.java index 2a5f3d9..ace6ed8 100644 --- a/src/informatis/core/OverDrawer.java +++ b/src/informatis/core/OverDrawer.java @@ -15,7 +15,6 @@ import mindustry.graphics.*; import mindustry.ui.*; import static informatis.SUtils.getTarget; -import static informatis.SVars.*; import static arc.Core.*; import static mindustry.Vars.*; @@ -38,7 +37,12 @@ public class OverDrawer { WindowManager.windows.get(UnitWindow.class).each(w -> { UnitWindow window = (UnitWindow) w; Draw.color(Tmp.c1.set(window.locked ? Color.orange : Color.darkGray).lerp(window.locked ? Color.scarlet : Color.gray, Mathf.absin(Time.time, 3f, 1f)).a(settings.getInt("selectopacity") / 100f)); - float length = (window.target instanceof Unit u ? u.hitSize : window.target instanceof Building b ? b.block.size * tilesize : 0) * 1.5f + 2.5f; + float length = (window.target instanceof Unit u + ? u.hitSize + : window.target instanceof Building b + ? b.block.size * tilesize + : 0 + ) * 1.5f + 2.5f; for(int i = 0; i < 4; i++){ float rot = i * 90f + 45f + (-Time.time) % 360f; Draw.rect("select-arrow", window.target.x() + Angles.trnsx(rot, length), window.target.y() + Angles.trnsy(rot, length), length / 1.9f, length / 1.9f, rot - 135f); diff --git a/src/informatis/draws/BlockDraw.java b/src/informatis/draws/BlockDraw.java index 5b25e95..f174a9a 100644 --- a/src/informatis/draws/BlockDraw.java +++ b/src/informatis/draws/BlockDraw.java @@ -52,9 +52,9 @@ public class BlockDraw extends OverDraw { if(settings.getBool("blockBar")) { drawBar(b, 0, -(b.block.size * 4 - 2), b.healthf(), Pal.health); - if(b instanceof Turret.TurretBuild turretBuild) + if (b instanceof Turret.TurretBuild turretBuild) { drawBar(b, 0, b.block.size * 4 - 2, turretBuild.reloadCounter / ((Turret) b.block).reload, Pal.ammo); - + } if(b instanceof ConstructBlock.ConstructBuild constructBuild) drawBar(b, 0, b.block.size * 4 - 2, constructBuild.progress(), b.team.color); if(b instanceof Reconstructor.ReconstructorBuild reconstructorBuild)