From f71b72687711b8c842583aa031f9bcaa79e1cbc0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 18:53:02 -0500 Subject: [PATCH 1/7] Testing Github Actions CI --- .github/workflows/deployment.yml | 52 ++++++++++++++++++ .github/workflows/gradle.yml | 27 --------- .github/workflows/pr.yml | 21 +++++++ .github/workflows/push.yml | 23 ++++++++ .travis.yml => .not_travis.yml | 2 +- core/assets/maps/extractionOutpost.msav | Bin 19681 -> 20000 bytes core/src/mindustry/content/Planets.java | 2 - core/src/mindustry/game/Waves.java | 19 ++++++- .../maps/planet/SerpuloPlanetGenerator.java | 2 +- .../maps/planet/TantrosPlanetGenerator.java | 2 +- 10 files changed, 116 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/deployment.yml delete mode 100644 .github/workflows/gradle.yml create mode 100644 .github/workflows/pr.yml create mode 100644 .github/workflows/push.yml rename .travis.yml => .not_travis.yml (99%) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000000..f8d09af6a6 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,52 @@ +name: Deployment + +on: + push: + tags: + - 'v*' + +jobs: + buildJava14: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 14 + uses: actions/setup-java@v1 + with: + java-version: 14 + - name: Create artifacts + run: | + ./gradlew desktop:dist server:dist core:javadoc -Pbuildversion=${GITHUB_REF:1}" + - name: Update docs + run: | + cd ../ + git clone --depth=1 https://github.com/MindustryGame/docs.git + cp -a Mindustry/core/build/docs/javadoc/. docs/ + cd docs + git add . + git commit -m "Update ${GITHUB_REF:1}" + git push https://Anuken:${{ secrets.GITHUB_TOKEN }}@github.com/MindustryGame/docs + cd ../Mindustry + - name: Update F-Droid build string + run: | + git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds + cd ../MindustryBuilds + echo "Updating version to ${GITHUB_REF:1}" + echo versionName=6-fdroid-${GITHUB_REF:1}$'\n'versionCode=${GITHUB_REF:1} > version_fdroid.txt + git add . + git commit -m "Updating to build ${GITHUB_REF:1}" + cd ../Mindustry + - name: Upload client artifacts + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: desktop/libs/Mindustry.jar + tag: ${{ github.ref }} + - name: Upload server artifacts + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: server/libs/server-release.jar + tag: ${{ github.ref }} + diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index a35d7efe60..0000000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Java CI - -on: [push, pull_request] - -jobs: - buildJava14: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - name: Set up JDK 14 - uses: actions/setup-java@v1 - with: - java-version: 14 - - name: Run unit tests with gradle and Java 14 - run: ./gradlew compileJava - buildJava15: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - name: Set up JDK 15 - uses: actions/setup-java@v1 - with: - java-version: 15 - - name: Run unit tests with gradle and Java 15 - run: ./gradlew compileJava diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000000..ff585101ed --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,21 @@ +name: Pull Request Tests + +on: [pull_request] + +jobs: + buildJava14: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 14 + uses: actions/setup-java@v1 + with: + java-version: 14 + - name: Run unit tests and build JAR + run: ./gradlew test desktop:dist + - name: Upload desktop JAR for testing + uses: actions/upload-artifact@v2 + with: + name: Desktop JAR (zipped) + path: desktop/build/libs/Mindustry.jar diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 0000000000..df25e76eec --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,23 @@ +name: Test & Push BUilds + +on: [push] + +jobs: + buildJava14: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 14 + uses: actions/setup-java@v1 + with: + java-version: 14 + - name: Run unit tests + run: ./gradlew test + - name: Trigger BE build + run: | + git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds + cd ../MindustryBuilds + git tag ${GITHUB_RUN_NUMBER} + git config --global user.name "Build Uploader" + git push https://Anuken:${{ secrets.GITHUB_TOKEN }}@github.com/Anuken/MindustryBuilds ${GITHUB_RUN_NUMBER} diff --git a/.travis.yml b/.not_travis.yml similarity index 99% rename from .travis.yml rename to .not_travis.yml index bbf20a5063..11dbe8cd1e 100644 --- a/.travis.yml +++ b/.not_travis.yml @@ -29,7 +29,7 @@ script: - cd ../Mindustry deploy: - provider: releases - cleanup: false + skip_cleanup: true draft: false api_key: secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg= diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav index 5e5bffccfb424e20c54beb60616e2c46b2da5d4d..5728a4b217bb5dd8a2d7fbdb13c498f1d33ecbbc 100644 GIT binary patch literal 20000 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 M|NgVvX$4sT0Cm>7;s5{u literal 19681 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 diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 57f8dbe728..9450c441da 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -40,8 +40,6 @@ public class Planets implements ContentList{ startSector = 10; atmosphereRadIn = -0.01f; atmosphereRadOut = 0.3f; - accessible = false; - visible = false; }};*/ serpulo = new Planet("serpulo", sun, 3, 1){{ diff --git a/core/src/mindustry/game/Waves.java b/core/src/mindustry/game/Waves.java index 8309f99a8b..586fb285c1 100644 --- a/core/src/mindustry/game/Waves.java +++ b/core/src/mindustry/game/Waves.java @@ -257,10 +257,10 @@ public class Waves{ public static Seq generate(float difficulty){ //apply power curve to make starting sectors easier - return generate(new Rand(), Mathf.pow(difficulty, 1.12f)); + return generate(Mathf.pow(difficulty, 1.12f), new Rand(), false); } - public static Seq generate(Rand rand, float difficulty){ + public static Seq generate(float difficulty, Rand rand, boolean attack){ UnitType[][] species = { {dagger, mace, fortress, scepter, reign}, {nova, pulsar, quasar, vela, corvus}, @@ -395,6 +395,21 @@ public class Waves{ effect = StatusEffects.boss; }}); + //add megas to heal the base. + if(attack && difficulty >= 0.5){ + int amount = Mathf.random(1, 3 + (int)(difficulty*2)); + + for(int i = 0; i < amount; i++){ + int wave = Mathf.random(3, 20); + out.add(new SpawnGroup(mega){{ + unitAmount = 1; + begin = wave; + end = wave; + max = 16; + }}); + } + } + //shift back waves on higher difficulty for a harder start int shift = Math.max((int)(difficulty * 15 - 5), 0); diff --git a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java index 0a49e1869d..08db3f0cca 100644 --- a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java @@ -439,7 +439,7 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{ state.rules.waves = sector.info.waves = true; state.rules.enemyCoreBuildRadius = 600f; - state.rules.spawns = Waves.generate(difficulty); + state.rules.spawns = Waves.generate(difficulty, new Rand(), state.rules.attackMode); } @Override diff --git a/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java b/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java index fc8f23fd88..934291dab8 100644 --- a/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java @@ -15,7 +15,7 @@ public class TantrosPlanetGenerator extends PlanetGenerator{ @Override public Color getColor(Vec3 position){ - float depth = (float)noise.octaveNoise3D(2, 0.56, 1.7f, position.x, position.y, position.z) / 1.7f; + float depth = (float)noise.octaveNoise3D(2, 0.56, 1.7f, position.x, position.y, position.z) / 2f; return c1.write(out).lerp(c2, Mathf.clamp(Mathf.round(depth, 0.15f))).a(0.6f); } } From 4e9b07d8e2f2ca152bc28861224c6836d8dcf679 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 18:54:28 -0500 Subject: [PATCH 2/7] CI cleanup --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index df25e76eec..448c20f221 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,4 +1,4 @@ -name: Test & Push BUilds +name: Tests on: [push] From 8bd2b9b45cb7d5d28212ecd5c0142fd836a8ca4a Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 19:26:10 -0500 Subject: [PATCH 3/7] CI cleanup --- android/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index 3ec6b34cfe..24de0e599f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -35,7 +35,8 @@ dependencies{ natives "com.github.Anuken.Arc:natives-box2d-android:${getArcHash()}" //android dependencies magically disappear during compilation, thanks gradle! - if(new File(projectDir.parent, '../Arc').exists()) compileOnly fileTree(dir: '../../Arc/backends/backend-android/libs', include: ['*.jar']) + def sdkFile = new File(System.getenv("ANDROID_HOME"), "/platforms/android-29/android.jar") + if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath) } task deploy(type: Copy){ From 07ddf806acb00bbd6bb6ad606a05b62aa02404f8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 19:27:21 -0500 Subject: [PATCH 4/7] CI cleanup --- .github/workflows/deployment.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/push.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index f8d09af6a6..00e61b93f2 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up JDK 14 uses: actions/setup-java@v1 with: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ff585101ed..81cf1ff4e9 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up JDK 14 uses: actions/setup-java@v1 with: diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 448c20f221..555eb18ff4 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up JDK 14 uses: actions/setup-java@v1 with: From 821418821550fa98e2eb0dbdc0e44e18165f7e5c Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 19:32:27 -0500 Subject: [PATCH 5/7] CI cleanup --- .github/workflows/push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 555eb18ff4..fd9bcd906f 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -16,7 +16,9 @@ jobs: run: ./gradlew test - name: Trigger BE build run: | + echo "Cloning..." git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds + echo "Done cloning." cd ../MindustryBuilds git tag ${GITHUB_RUN_NUMBER} git config --global user.name "Build Uploader" From b1ace4a7c99b5b268ff72472d99a5e87a75a4280 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 19:39:40 -0500 Subject: [PATCH 6/7] CI cleanup --- .github/workflows/deployment.yml | 2 +- .github/workflows/push.yml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 00e61b93f2..b973171f8d 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -26,7 +26,7 @@ jobs: cd docs git add . git commit -m "Update ${GITHUB_REF:1}" - git push https://Anuken:${{ secrets.GITHUB_TOKEN }}@github.com/MindustryGame/docs + git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/MindustryGame/docs cd ../Mindustry - name: Update F-Droid build string run: | diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index fd9bcd906f..bccad0196e 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -16,10 +16,8 @@ jobs: run: ./gradlew test - name: Trigger BE build run: | - echo "Cloning..." git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds - echo "Done cloning." cd ../MindustryBuilds git tag ${GITHUB_RUN_NUMBER} git config --global user.name "Build Uploader" - git push https://Anuken:${{ secrets.GITHUB_TOKEN }}@github.com/Anuken/MindustryBuilds ${GITHUB_RUN_NUMBER} + git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${GITHUB_RUN_NUMBER} From a0f1f52a8b995086b6d6599b511e72e9c8a38f47 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Nov 2020 19:44:49 -0500 Subject: [PATCH 7/7] CI cleanup --- .not_travis.yml | 50 -------------------------------- core/src/mindustry/mod/Mods.java | 2 +- update_wiki.sh | 9 ------ 3 files changed, 1 insertion(+), 60 deletions(-) delete mode 100644 .not_travis.yml delete mode 100755 update_wiki.sh diff --git a/.not_travis.yml b/.not_travis.yml deleted file mode 100644 index 11dbe8cd1e..0000000000 --- a/.not_travis.yml +++ /dev/null @@ -1,50 +0,0 @@ -jdk: -- openjdk14 -dist: xenial -android: - components: - - android-29 - - build-tools-29.0.3 - -script: -- git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds -- cd ../MindustryBuilds -- echo ${TRAVIS_TAG} -- if [ -n "$TRAVIS_TAG" ]; then echo versionName=6-fdroid-${TRAVIS_TAG:1}$'\n'versionCode=${TRAVIS_TAG:1} > version_fdroid.txt; git add .; git commit -m "Updating to build ${TRAVIS_TAG}"; fi -- git tag ${TRAVIS_BUILD_NUMBER} -- git config --global user.name "Build Uploader" -- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds ${TRAVIS_BUILD_NUMBER}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds; fi -- cd ../Mindustry -- git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc -- if [ -n "$TRAVIS_TAG" ]; then cd ../Arc; git tag ${TRAVIS_TAG}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/Arc ${TRAVIS_TAG}; cd ../Mindustry; fi -- "./gradlew test" -- "./gradlew desktop:dist -Pbuildversion=${TRAVIS_TAG:1}" -- "./gradlew server:dist -Pbuildversion=${TRAVIS_TAG:1}" -- "./gradlew core:javadoc" -- cd ../ -- git clone --depth=1 https://github.com/MindustryGame/docs.git -- cp -a Mindustry/core/build/docs/javadoc/. docs/ -- cd docs -- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git add .; git commit -m "Update ${TRAVIS_BUILD_NUMBER}"; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/MindustryGame/docs; fi -- cd ../Mindustry -deploy: -- provider: releases - skip_cleanup: true - draft: false - api_key: - secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg= - file: - - desktop/build/libs/Mindustry.jar - - server/build/libs/server-release.jar - on: - repo: Anuken/Mindustry - tags: true -#- provider: script -# script: bash update_wiki.sh -# on: -# repo: Anuken/Mindustry -# tags: true -env: - global: - - secure: TqlUl/ojjkCMVOGbCTKz7Cnr4F08UyWzY/CiJ0vvUOGJGZ1qm7XavAlDf5XT0egU4mvr37THubFO8vojbqmrmy0oZnYh3njKFA8axgyZ8PyKkjGHOfd0i6qyEWsOr9H90/2X8r3LwEeLaDFyHpu3wljIGBjweg53g2qwmDwCFa9UR80FJZ+xDB+rD6B3cXT0DTEkCoLZXLqXm0Y3HvBdSuBL1LR/FNb2BSxNq+tNLGiz1kdQZV5erausbbZypBoGxzz63xAnyz2kkFz73A8xQYVTzGbFodTPz7HM13GVZ5s43I03Y+HYyHBgBaSLziO2hi2kzVJccOwzBp7wS4fs1MqsFY5+IeWJ9k+hm89NiYT7+6zlEgoUMlIniny1qLqWTzx7btUeuC/y/h5TVBNgaV+z0jmHycHfeSyq5I+vmX4J8qe3wmaN8TcdqYKU5nIznOTk3CM5Fzu0Bs9vkCkOxmormmcjMFW1RbdOLc/hpZWZggsBA88sNEAI8eq+r5QEeqzeCx8YKoZDjdrsqvgLMc3El3gS9oMGxkn0Y/TEcqs9Tc4BXtTkqIA68hD0DYzlAxYjVbbkAI9Hh9lHNvV3Dr/oCkGXQ/HflM143kj1L3tSBZpqeqQE2XhngB5nqpS3OZTmZbMTQ8qD2luU18yaTGMLF5tJS/fdKPRx0gQ1kL8= - - secure: VEskj/0TVX2o7iUVXuVPysj/VSWmPhDl57SrT7/nBNN/P/8N5jFAvx8PMzG7qT0S5FzKxuV20psE4WylUGRKdeRtK7/QNBV7T3YqYYM6BUB1VeRpxe5hLxTeuBK3izglFO8DkdDqjUtzQSjzkoYT75ilROjhBrBUPhVek7UlbBHbaklPWYFXHnJmYS1FpZTdzqIj+Y0Gd1PSL2MzK4X74aAHl0qaDgsTwYwtKs7IAz+kFaTZBRpi9VjQHAFhDlkDR3jo9wQjH8/F6x0lCgV/FulSc37Okdb40sLFG98xcEA6gWh1NPMkz8CulUdVE7mj7SJNxLbNvoMNrWOVRjmEsn59p/9LiNC1F9ncFz9vjQjAmi7rMFFGHGxe5nn8cIAkpTvHQQkZoWHAA9SNJTDMMf09m2pRy/vvzx+a6NVxyC9iNrhLlnBg4gxAqRh0S6NU0uL+fuygKixn7rqlnb7KMT7bAbfcuV+dng6c8V7hYKDCh7sJbH8iJump1xkwoM7ecnU8fxJF/oKOr/fbk0Bfxu+Q9qYLrV1+DEdm93Vl2Thq+DBKmI66jRGSva6HeCLFo81PEiEjP1nLv75+kvVfOqVqJrZD1BrvoG2eWT/3hVLrN2kEIWWlpvQVC7FL11yWmYtAuOBh/vfhI76zKr+YTS6ccG9rqW4XeYjJytshe8M= diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 9720fed59e..706815d3b3 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -629,7 +629,7 @@ public class Mods implements Loadable{ } //make sure the main class exists before loading it; if it doesn't just don't put it there - if(mainFile.exists() && Core.settings.getBool("mod-" + meta.name.toLowerCase().replace(" ", "-") + "-enabled", true)){ + if(mainFile.exists() && Core.settings.getBool("mod-" + baseName + "-enabled", true)){ //mobile versions don't support class mods if(ios){ throw new IllegalArgumentException("Java class mods are not supported on iOS."); diff --git a/update_wiki.sh b/update_wiki.sh deleted file mode 100755 index a3ed44ee33..0000000000 --- a/update_wiki.sh +++ /dev/null @@ -1,9 +0,0 @@ -git config --global user.name "Wiki Updater" -git clone --depth=1 --branch=master https://github.com/MindustryGame/wiki ../wiki -git clone --depth=1 --branch=master https://github.com/Anuken/Mindustry-Wiki-Generator ../Mindustry-Wiki-Generator -cd ../Mindustry-Wiki-Generator -./gradlew run -cd ../wiki -git add . -git commit -m "Update to match build ${TRAVIS_TAG}" -git push https://Anuken:${GH_PUSH_TOKEN}@github.com/MindustryGame/wiki