Merge branch 'master' into patch-7
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,11 +7,9 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Note**: Do not report any new bugs directly relating to the v6 campaign. They will not be fixed or considered at this time.
|
|
||||||
|
|
||||||
**Platform**: *Android/iOS/Mac/Windows/Linux*
|
**Platform**: *Android/iOS/Mac/Windows/Linux*
|
||||||
|
|
||||||
**Build**: *The build number under the title in the main menu. Required.*
|
**Build**: *The build number under the title in the main menu. Required. "LATEST" IS NOT A VERSION, I NEED THE EXACT BUILD NUMBER OF YOUR GAME.*
|
||||||
|
|
||||||
**Issue**: *Explain your issue in detail.*
|
**Issue**: *Explain your issue in detail.*
|
||||||
|
|
||||||
@@ -19,7 +17,7 @@ assignees: ''
|
|||||||
|
|
||||||
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
|
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
|
||||||
|
|
||||||
**Save file**: *The save file you were playing on when the bug happened. REQUIRED for any issue that happens in-game.*
|
**Save file**: *The (zipped) save file you were playing on when the bug happened. THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT DELETE OR OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME.*
|
||||||
|
|
||||||
**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.*
|
**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.*
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ script:
|
|||||||
- git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
|
- git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
|
||||||
- cd ../MindustryBuilds
|
- cd ../MindustryBuilds
|
||||||
- echo ${TRAVIS_TAG}
|
- echo ${TRAVIS_TAG}
|
||||||
- if [ -n "$TRAVIS_TAG" ]; then echo versionName=5-fdroid-${TRAVIS_TAG:1}$'\n'versionCode=${TRAVIS_TAG:1} > version_fdroid.txt; git add .; git commit -m "Updating to build ${TRAVIS_TAG}"; fi
|
- 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 tag ${TRAVIS_BUILD_NUMBER}
|
||||||
- git config --global user.name "Build Uploader"
|
- 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
|
- 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
|
||||||
|
|||||||
20
README.md
@@ -9,34 +9,34 @@ _[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
|
|||||||
_[Wiki](https://mindustrygame.github.io/wiki)_
|
_[Wiki](https://mindustrygame.github.io/wiki)_
|
||||||
_[Javadoc](https://mindustrygame.github.io/docs/)_
|
_[Javadoc](https://mindustrygame.github.io/docs/)_
|
||||||
|
|
||||||
### Contributing
|
## Contributing
|
||||||
|
|
||||||
See [CONTRIBUTING](CONTRIBUTING.md).
|
See [CONTRIBUTING](CONTRIBUTING.md).
|
||||||
|
|
||||||
### Building
|
## Building
|
||||||
|
|
||||||
Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases).
|
Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases).
|
||||||
|
|
||||||
If you'd rather compile on your own, follow these instructions.
|
If you'd rather compile on your own, follow these instructions.
|
||||||
First, make sure you have [JDK 14](https://adoptopenjdk.net/) installed. Open a terminal in the root directory, `cd` to the Mindustry folder and run the following commands:
|
First, make sure you have [JDK 14](https://adoptopenjdk.net/) installed. Open a terminal in the root directory, `cd` to the Mindustry folder and run the following commands:
|
||||||
|
|
||||||
#### Windows
|
### Windows
|
||||||
|
|
||||||
_Running:_ `gradlew desktop:run`
|
_Running:_ `gradlew desktop:run`
|
||||||
_Building:_ `gradlew desktop:dist`
|
_Building:_ `gradlew desktop:dist`
|
||||||
_Sprite Packing:_ `gradlew tools:pack`
|
_Sprite Packing:_ `gradlew tools:pack`
|
||||||
|
|
||||||
#### Linux/Mac OS
|
### Linux/Mac OS
|
||||||
|
|
||||||
_Running:_ `./gradlew desktop:run`
|
_Running:_ `./gradlew desktop:run`
|
||||||
_Building:_ `./gradlew desktop:dist`
|
_Building:_ `./gradlew desktop:dist`
|
||||||
_Sprite Packing:_ `./gradlew tools:pack`
|
_Sprite Packing:_ `./gradlew tools:pack`
|
||||||
|
|
||||||
#### Server
|
### Server
|
||||||
|
|
||||||
Server builds are bundled with each released build (in Releases). If you'd rather compile on your own, replace 'desktop' with 'server', e.g. `gradlew server:dist`.
|
Server builds are bundled with each released build (in Releases). If you'd rather compile on your own, replace 'desktop' with 'server', e.g. `gradlew server:dist`.
|
||||||
|
|
||||||
#### Android
|
### Android
|
||||||
|
|
||||||
1. Install the Android SDK [here.](https://developer.android.com/studio#downloads) Make sure you're downloading the "Command line tools only", as Android Studio is not required.
|
1. Install the Android SDK [here.](https://developer.android.com/studio#downloads) Make sure you're downloading the "Command line tools only", as Android Studio is not required.
|
||||||
2. Set the `ANDROID_HOME` environment variable to point to your unzipped Android SDK directory.
|
2. Set the `ANDROID_HOME` environment variable to point to your unzipped Android SDK directory.
|
||||||
@@ -44,7 +44,9 @@ Server builds are bundled with each released build (in Releases). If you'd rathe
|
|||||||
|
|
||||||
To debug the application on a connected phone, run `gradlew android:installDebug android:run`.
|
To debug the application on a connected phone, run `gradlew android:installDebug android:run`.
|
||||||
|
|
||||||
##### Troubleshooting
|
### Troubleshooting
|
||||||
|
|
||||||
|
#### Permission Denied
|
||||||
|
|
||||||
If the terminal returns `Permission denied` or `Command not found` on Mac/Linux, run `chmod +x ./gradlew` before running `./gradlew`. *This is a one-time procedure.*
|
If the terminal returns `Permission denied` or `Command not found` on Mac/Linux, run `chmod +x ./gradlew` before running `./gradlew`. *This is a one-time procedure.*
|
||||||
|
|
||||||
@@ -53,11 +55,11 @@ If the terminal returns `Permission denied` or `Command not found` on Mac/Linux,
|
|||||||
Gradle may take up to several minutes to download files. Be patient. <br>
|
Gradle may take up to several minutes to download files. Be patient. <br>
|
||||||
After building, the output .JAR file should be in `/desktop/build/libs/Mindustry.jar` for desktop builds, and in `/server/build/libs/server-release.jar` for server builds.
|
After building, the output .JAR file should be in `/desktop/build/libs/Mindustry.jar` for desktop builds, and in `/server/build/libs/server-release.jar` for server builds.
|
||||||
|
|
||||||
### Feature Requests
|
## Feature Requests
|
||||||
|
|
||||||
Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Suggestions/issues/new/choose).
|
Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Suggestions/issues/new/choose).
|
||||||
|
|
||||||
### Downloads
|
## Downloads
|
||||||
|
|
||||||
[<img src="https://static.itch.io/images/badge.svg"
|
[<img src="https://static.itch.io/images/badge.svg"
|
||||||
alt="Get it on Itch.io"
|
alt="Get it on Itch.io"
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ android{
|
|||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
|
|
||||||
versionName versionNameResult
|
versionName versionNameResult
|
||||||
versionCode vcode
|
versionCode = (System.getenv("TRAVIS_BUILD_ID") != null ? System.getenv("TRAVIS_BUILD_ID").toInteger() : vcode)
|
||||||
|
|
||||||
if(project.hasProperty("release")){
|
if(project.hasProperty("release")){
|
||||||
props['androidBuildCode'] = (vcode + 1).toString()
|
props['androidBuildCode'] = (vcode + 1).toString()
|
||||||
@@ -98,15 +98,20 @@ android{
|
|||||||
storePassword RELEASE_STORE_PASSWORD
|
storePassword RELEASE_STORE_PASSWORD
|
||||||
keyAlias RELEASE_KEY_ALIAS
|
keyAlias RELEASE_KEY_ALIAS
|
||||||
keyPassword RELEASE_KEY_PASSWORD
|
keyPassword RELEASE_KEY_PASSWORD
|
||||||
|
}else if(System.getenv("CI") == "true"){
|
||||||
|
storeFile = file("../../bekeystore.jks")
|
||||||
|
storePassword = System.getenv("keystore_password")
|
||||||
|
keyAlias = System.getenv("keystore_alias")
|
||||||
|
keyPassword = System.getenv("keystore_alias_password")
|
||||||
}else{
|
}else{
|
||||||
println("No keystore property found. Releases will be unsigned.")
|
println("No keystore property found. Releases will be unsigned.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(project.hasProperty("RELEASE_STORE_FILE")) {
|
if(project.hasProperty("RELEASE_STORE_FILE") || System.getenv("CI") == "true"){
|
||||||
buildTypes {
|
buildTypes{
|
||||||
release {
|
release{
|
||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,10 +204,10 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
|||||||
context = ((JavacProcessingEnvironment)env).getContext();
|
context = ((JavacProcessingEnvironment)env).getContext();
|
||||||
maker = TreeMaker.instance(javacProcessingEnv.getContext());
|
maker = TreeMaker.instance(javacProcessingEnv.getContext());
|
||||||
|
|
||||||
Log.setLogLevel(LogLevel.info);
|
Log.level = LogLevel.info;
|
||||||
|
|
||||||
if(System.getProperty("debug") != null){
|
if(System.getProperty("debug") != null){
|
||||||
Log.setLogLevel(LogLevel.debug);
|
Log.level = LogLevel.debug;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ public class EntityProcess extends BaseProcessor{
|
|||||||
.addModifiers(Modifier.PUBLIC)
|
.addModifiers(Modifier.PUBLIC)
|
||||||
.addStatement("return $S + $L", name + "#", "id").build());
|
.addStatement("return $S + $L", name + "#", "id").build());
|
||||||
|
|
||||||
EntityIO io = new EntityIO(type.name(), builder, allFieldSpecs, serializer, rootDirectory.child("annotations/src/main/resources/revisions").child(name));
|
EntityIO io = new EntityIO(type.name(), builder, allFieldSpecs, serializer, rootDirectory.child("annotations/src/main/resources/revisions").child(type.name()));
|
||||||
//entities with no sync comp and no serialization gen no code
|
//entities with no sync comp and no serialization gen no code
|
||||||
boolean hasIO = ann.genio() && (components.contains(s -> s.name().contains("Sync")) || ann.serialize());
|
boolean hasIO = ann.genio() && (components.contains(s -> s.name().contains("Sync")) || ann.serialize());
|
||||||
|
|
||||||
|
|||||||
@@ -43,9 +43,9 @@ public class LogicStatementProcessor extends BaseProcessor{
|
|||||||
String name = c.annotation(RegisterStatement.class).value();
|
String name = c.annotation(RegisterStatement.class).value();
|
||||||
|
|
||||||
if(beganWrite){
|
if(beganWrite){
|
||||||
writer.nextControlFlow("else if(obj instanceof $T)", c.mirror());
|
writer.nextControlFlow("else if(obj.getClass() == $T.class)", c.mirror());
|
||||||
}else{
|
}else{
|
||||||
writer.beginControlFlow("if(obj instanceof $T)", c.mirror());
|
writer.beginControlFlow("if(obj.getClass() == $T.class)", c.mirror());
|
||||||
beganWrite = true;
|
beganWrite = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,6 +53,7 @@ public class LogicStatementProcessor extends BaseProcessor{
|
|||||||
writer.addStatement("out.append($S)", name);
|
writer.addStatement("out.append($S)", name);
|
||||||
|
|
||||||
Seq<Svar> fields = c.fields();
|
Seq<Svar> fields = c.fields();
|
||||||
|
fields.addAll(c.superclass().fields());
|
||||||
|
|
||||||
String readSt = "if(tokens[0].equals($S))";
|
String readSt = "if(tokens[0].equals($S))";
|
||||||
if(beganRead){
|
if(beganRead){
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ mindustry.entities.comp.EffectStateComp=9
|
|||||||
mindustry.entities.comp.FireComp=10
|
mindustry.entities.comp.FireComp=10
|
||||||
mindustry.entities.comp.LaunchCoreComp=11
|
mindustry.entities.comp.LaunchCoreComp=11
|
||||||
mindustry.entities.comp.PlayerComp=12
|
mindustry.entities.comp.PlayerComp=12
|
||||||
|
mindustry.entities.comp.PosTeam=27
|
||||||
|
mindustry.entities.comp.PosTeamDef=28
|
||||||
mindustry.entities.comp.PuddleComp=13
|
mindustry.entities.comp.PuddleComp=13
|
||||||
mindustry.type.Weather.WeatherStateComp=14
|
mindustry.type.Weather.WeatherStateComp=14
|
||||||
mindustry.world.blocks.campaign.LaunchPad.LaunchPayloadComp=15
|
mindustry.world.blocks.campaign.LaunchPad.LaunchPayloadComp=15
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:deactivated,type:boolean,size:1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:deactivated,type:boolean,size:1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:deactivated,type:boolean,size:1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{version:1,fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{fields:[{name:team,type:mindustry.game.Team},{name:x,type:float},{name:y,type:float}]}
|
||||||
@@ -1 +0,0 @@
|
|||||||
{fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:deactivated,type:boolean,size:1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{version:1,fields:[{name:ammo,type:float,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}
|
|
||||||
1
annotations/src/main/resources/revisions/block/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/corvus/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/flare/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/mace/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/mega/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/mono/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/nova/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/oct/1.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:1,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/poly/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/quad/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/risso/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
1
annotations/src/main/resources/revisions/spiroct/2.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
|
||||||
@@ -32,7 +32,7 @@ allprojects{
|
|||||||
|
|
||||||
ext{
|
ext{
|
||||||
versionNumber = '6'
|
versionNumber = '6'
|
||||||
if(!project.hasProperty("versionModifier")) versionModifier = 'alpha'
|
if(!project.hasProperty("versionModifier")) versionModifier = 'beta'
|
||||||
if(!project.hasProperty("versionType")) versionType = 'official'
|
if(!project.hasProperty("versionType")) versionType = 'official'
|
||||||
appName = 'Mindustry'
|
appName = 'Mindustry'
|
||||||
steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256'
|
steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256'
|
||||||
@@ -262,6 +262,8 @@ project(":ios"){
|
|||||||
project(":core"){
|
project(":core"){
|
||||||
apply plugin: "java-library"
|
apply plugin: "java-library"
|
||||||
|
|
||||||
|
compileJava.options.fork = true
|
||||||
|
|
||||||
task preGen{
|
task preGen{
|
||||||
outputs.upToDateWhen{ false }
|
outputs.upToDateWhen{ false }
|
||||||
generateLocales()
|
generateLocales()
|
||||||
@@ -303,7 +305,7 @@ project(":core"){
|
|||||||
|
|
||||||
compileOnly project(":annotations")
|
compileOnly project(":annotations")
|
||||||
annotationProcessor project(":annotations")
|
annotationProcessor project(":annotations")
|
||||||
annotationProcessor 'com.github.Anuken:jabel:40eec868af'
|
annotationProcessor 'com.github.Anuken:jabel:34e4c172e65b3928cd9eabe1993654ea79c409cd'
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 274 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff0.png
Normal file
|
After Width: | Height: | Size: 456 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff1.png
Normal file
|
After Width: | Height: | Size: 351 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff2.png
Normal file
|
After Width: | Height: | Size: 429 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff3.png
Normal file
|
After Width: | Height: | Size: 377 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff4.png
Normal file
|
After Width: | Height: | Size: 416 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff5.png
Normal file
|
After Width: | Height: | Size: 405 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff6.png
Normal file
|
After Width: | Height: | Size: 365 B |
BIN
core/assets-raw/sprites/blocks/environment/cliff7.png
Normal file
|
After Width: | Height: | Size: 359 B |
|
Before Width: | Height: | Size: 256 B After Width: | Height: | Size: 389 B |
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 377 B |
BIN
core/assets-raw/sprites/blocks/environment/space.png
Normal file
|
After Width: | Height: | Size: 120 B |
2
core/assets/baseparts/1603214918168.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschxœ5<C593>Ë
|
||||||
|
!E¯Ïy-J·ý‡ù(q¤£Gú÷<C3BA>„ââä&'›„Î.<Zl.Çž®Vª{lG¸|<7C>ŸK4ÌíúÙðü{»/ùßR±ÅÒ~•^=ÝùäГkÑïG<C3AF>ç àzRPm!&ÆÌX+ ÉÓ†4©¨²¼H}E“y$9’À˜’¢XQÜÔü‰æd8ZQŠ¡†acf,Œê˜ã"
|
||||||
2
core/assets/baseparts/1603214945791.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschxœ5<C593>A E¿JkêÊStã<74><08>˜I
|
||||||
|
4”šx{¡ðòÿ¼¸vÐѽpq‘<71>°—”Ý›^˜Ú}æpŠ€ÆÄ…¼§#{Âã¯Ï>Å}SÆm‹tWØÏKæuÅXGÅq¤àY¬z\P?E½:<18>ÅYŽ
|
||||||
1
core/assets/baseparts/1603214967392.msch
Normal file
@@ -0,0 +1 @@
|
|||||||
|
mschxœ%ÍAƒ …á§€ÖZc\ô.z$ƒÓdƒÐ¤·/täƒ?“3†ÚoŽ`Þù¢Æ<>.ùL< ±$N›çìVü‡¾!b>=e·%¶ëù80r"·^!GKÐu€g9耦Ð×{S_@+±•¨$jÁ<08>ÐWê\oJSÀMú Ü…±¢0ý?ÂCâTŠªhÁÔqW
|
||||||
3
core/assets/baseparts/1603214996033.msch
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
mschxœ%<25>Á
|
||||||
|
à ƒÓªmic×½C/{£bU‡ÕÁÞ~¦ÿA>“ˆ·:nÁÁ¼ëé^XvwÚì?ŧ<Š/[ô5¬6ůû¥Œû'º¶âíºgX|qa=SÍÖAsCNµ¸àÙNÛA×0ðÞQ½˜=Mb‚¢9óMID‰Ò’ÔÑb‰Q§ÆÆAјٟZ¯}<ò™ê
|
||||||
|
sFŠ£†‘©U.Œ‚ÖüBIÙ
|
||||||
BIN
core/assets/baseparts/1603215024189.msch
Normal file
2
core/assets/baseparts/1603215113546.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschx°%п[nц пЬAв}╗Й"Ры
|
||||||
|
t'▒C$╓ь▌┬]╘╩ОВц
|
||||||
2
core/assets/baseparts/1603215171294.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschx<>%<25>с<EFBFBD><D181> <10>AБњЃiп<69><D0BF>тpяBЂ`лјюMЎЛ
|
||||||
|
!п0;060Щ/ћЛoфKР8бJ\kЬ шa|Tk~Sq)O-Щћ<D0A9>h_|<7C>СM%Ю35V<35>тОИ<D09E>г<EFBFBD><D0B3>\№иђь<D192>[}ЂйБњ#<23>БвтЖМ<D096>@0ђ-<2D>'hhХ0Н<30>њџ@С <13>Wн@<40>JаCi4bj<62>лpД<70>2gу<67>На_И]фЁ<D184>EгБА-ЮK+О<19>ўЗ.щ
|
||||||
1
core/assets/baseparts/1603215272794.msch
Normal file
@@ -0,0 +1 @@
|
|||||||
|
mschxśM<C59B>KnÄ DŚ1±ŁÉ̲ćPČ&#$¶ó9yv™tCYŔë_Ń%đŚ«„Jnő<6E>ŢÎÝo®Äč>1-~źKŘŽ<C598>đ„i?ËÝŰ#řBIŽ®ŘÍ%q;ÂáR8W;çôîżrÁË–üąş#Ěv)!F\7ÖŮ”oIy÷¸ý{âŻ4…ĂŻvĎg™=›<>!;®ú^é`4čEťä`¨–ő
|
||||||
4
core/assets/baseparts/1603215345320.msch
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
mschxśEĎën‚@ŕĂĹ\EíŐôřŰ÷!şdͲ´éĂ:ĂiŇ<69>řqvfÇاȇöćP^¦Ń]|<7C>°g7žBwŹť€
|
||||||
|
ąVp<EFBFBD>]l‡nş5'?|ą`»čnÍč§pr°};şĐśC×÷0ÁOŃěďţ[vM߆«Ś˝Ľ4÷vpýß‘'ˇ‰Ú*áżŕHäY~2dJNVÄ(©<>¦BµL¦r +bHˇčw-cKM™¤52e«ó*ţWĹR!K˛L–{XÝ#SAJR‘5±dC¶¤V6r]m`Ët~Ěóü<C3B3>ťŚ´ÔHÁ覵Rv™ľÓX
|
||||||
|
2H©ÉNk{Ţ8<C5A2>'ňL^Č+y#ď
|
||||||
|
p”U%%%JAJ$żć?M
|
||||||
2
core/assets/baseparts/1603215415778.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschxœ-‹k
|
||||||
|
1„ÇMÅîуôPÅ
|
||||||
BIN
core/assets/baseparts/1603215454977.msch
Normal file
2
core/assets/baseparts/1603215491407.msch
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
mschxœ5Ïኃ0à1µµmjï9äàÞ(h~ÔHŒÂ½ýeÁ<>ufCÄn
|
||||||
|
Õj‡Ç¶ÍÅÝÎgøA7¹}Œ~K>¬@
|
||||||
BIN
core/assets/baseparts/1603215563717.msch
Normal file
BIN
core/assets/baseparts/1603215697527.msch
Normal file
BIN
core/assets/baseparts/1603215771822.msch
Normal file
1
core/assets/baseparts/1603215801163.msch
Normal file
@@ -0,0 +1 @@
|
|||||||
|
mschxœ-Œ[ƒ D<>J¬JŸaQ¤’ÆÄMÓµ÷£½<C2A3>~<7E>¹g&—3—åíÓ1å°ÚdS²oôìò=-q[‚‡Ž[íL´ÞFÒÃq<C383>áå’ñav£ó.0[ñÀ
|
||||||