Compare commits
330 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d68d2e9f30 | ||
|
|
948c48ea23 | ||
|
|
a9ccf6ca42 | ||
|
|
fd7b829e70 | ||
|
|
87a7cc6289 | ||
|
|
2f8b5e53bb | ||
|
|
8b7fa3b646 | ||
|
|
dd2c71fe61 | ||
|
|
3b58d57e5c | ||
|
|
cecf32e52e | ||
|
|
91a2dfab36 | ||
|
|
5e5838a8c1 | ||
|
|
0fffbc06dd | ||
|
|
4d360bfb73 | ||
|
|
e3001b614e | ||
|
|
6ecdef02ab | ||
|
|
36903eb749 | ||
|
|
f530c9514f | ||
|
|
fdffa77bc5 | ||
|
|
245dd39a60 | ||
|
|
4614aacc02 | ||
|
|
64ccdab90c | ||
|
|
02286b0c4e | ||
|
|
8e952a550b | ||
|
|
a29f95194d | ||
|
|
0e5db49b93 | ||
|
|
a2c29c0937 | ||
|
|
c318f05cfd | ||
|
|
789d200c24 | ||
|
|
2dc4a9e044 | ||
|
|
82577b91d5 | ||
|
|
8fd08a1574 | ||
|
|
7a41fc8ec8 | ||
|
|
798ca929d6 | ||
|
|
7e4e58fb78 | ||
|
|
28b9975c75 | ||
|
|
5536ade389 | ||
|
|
21bc195213 | ||
|
|
b6beacf053 | ||
|
|
94b6c133f4 | ||
|
|
949d7bed89 | ||
|
|
81ce12a38c | ||
|
|
eba65b2934 | ||
|
|
c7f5b7fca1 | ||
|
|
f670d522bf | ||
|
|
a02f7f46c3 | ||
|
|
4b7f254e17 | ||
|
|
9b42be560d | ||
|
|
31b39231a2 | ||
|
|
4eb2c1f646 | ||
|
|
5f89d8588d | ||
|
|
404cbf9b4a | ||
|
|
0aabc09b82 | ||
|
|
a5ebeadd95 | ||
|
|
9e188aaf03 | ||
|
|
870f5caca9 | ||
|
|
28b4ddfc72 | ||
|
|
13a4a26e97 | ||
|
|
81c7e63994 | ||
|
|
7f234ab5bc | ||
|
|
f8d0682810 | ||
|
|
175d6b1fc5 | ||
|
|
1cd8e8a097 | ||
|
|
ed95e38257 | ||
|
|
cab585225d | ||
|
|
3688dde5e5 | ||
|
|
ae6a5b2512 | ||
|
|
6f87611d67 | ||
|
|
6a5e31c908 | ||
|
|
8bda5e16cd | ||
|
|
d70d3d95f0 | ||
|
|
554b7d2ec4 | ||
|
|
ebc4031922 | ||
|
|
c526997aba | ||
|
|
c0e3a1f3ef | ||
|
|
7dc0a7a5c3 | ||
|
|
2943b6ed04 | ||
|
|
5feb212df7 | ||
|
|
327edcd347 | ||
|
|
94cbf4cddf | ||
|
|
08cc87affb | ||
|
|
18020d64cc | ||
|
|
48b7ceac06 | ||
|
|
dbcce9663c | ||
|
|
6ee7dd56fe | ||
|
|
99418e6b88 | ||
|
|
67db5e9dfc | ||
|
|
5f1bc6c6c2 | ||
|
|
05201d7012 | ||
|
|
6b4983537e | ||
|
|
87c8293c78 | ||
|
|
54488564f3 | ||
|
|
f2ac9ed385 | ||
|
|
38f2f1e30a | ||
|
|
02004011ec | ||
|
|
60bb982450 | ||
|
|
67389c0bac | ||
|
|
faa1fee1c0 | ||
|
|
0bae421fbc | ||
|
|
b29d81bf0f | ||
|
|
4792828da1 | ||
|
|
6171e887a8 | ||
|
|
f28fa93f40 | ||
|
|
940ad84493 | ||
|
|
0b168376ed | ||
|
|
f7bd376499 | ||
|
|
9566155bdb | ||
|
|
9994ddb31b | ||
|
|
fadfdaa673 | ||
|
|
4ca546f44a | ||
|
|
8af30c9256 | ||
|
|
42adc38720 | ||
|
|
c1d9dee46c | ||
|
|
69a7104286 | ||
|
|
aba5afe32c | ||
|
|
c1ccf4fceb | ||
|
|
916a4cfc73 | ||
|
|
fd107ab5b8 | ||
|
|
5fa6fccf7b | ||
|
|
0ce226d0c9 | ||
|
|
14e0b471d3 | ||
|
|
ed0df64cf9 | ||
|
|
35bc2c9803 | ||
|
|
a771dc8787 | ||
|
|
244eb91dfb | ||
|
|
7488a6d42b | ||
|
|
696a59f1b9 | ||
|
|
ee5a3269f2 | ||
|
|
f89bf027f7 | ||
|
|
4db432b0a9 | ||
|
|
c82fd9ead5 | ||
|
|
34715b1e06 | ||
|
|
f0870b3236 | ||
|
|
9a286800d6 | ||
|
|
59832b1777 | ||
|
|
561f566506 | ||
|
|
f0cacf6bd5 | ||
|
|
ce4031af74 | ||
|
|
dd7f91b8c2 | ||
|
|
8523e5bf6b | ||
|
|
860727d27a | ||
|
|
f175bf2c82 | ||
|
|
40008f44ac | ||
|
|
3f93b5c63b | ||
|
|
d2ce051c4a | ||
|
|
d5d90bde9a | ||
|
|
fc8d9febf6 | ||
|
|
b43c542213 | ||
|
|
e7533232c0 | ||
|
|
5e1aaf11a7 | ||
|
|
d062dffc13 | ||
|
|
4810bbbbd9 | ||
|
|
967998273f | ||
|
|
24decf8abc | ||
|
|
3bc605894e | ||
|
|
b74ae302ec | ||
|
|
db3dac261a | ||
|
|
87b47b3042 | ||
|
|
720e1a038e | ||
|
|
1753c54e88 | ||
|
|
2d42de83de | ||
|
|
c4e6af455d | ||
|
|
51d619449b | ||
|
|
1160a14f56 | ||
|
|
57fce0ddbc | ||
|
|
b9eb8a750b | ||
|
|
3ce16e0ed1 | ||
|
|
554d9b4047 | ||
|
|
02d565ce58 | ||
|
|
795bc1276b | ||
|
|
499b7b2e67 | ||
|
|
b6c0fe8bf7 | ||
|
|
d5bb1b72b9 | ||
|
|
af86564adc | ||
|
|
5354e02b6f | ||
|
|
4ee17a656f | ||
|
|
32c59b66f6 | ||
|
|
20732f04ff | ||
|
|
06763b34c3 | ||
|
|
6bab6c57f2 | ||
|
|
4eab89d73e | ||
|
|
8d20c46228 | ||
|
|
f5c4586bb7 | ||
|
|
bc6bbdbbe0 | ||
|
|
b77caed0ba | ||
|
|
df976f1212 | ||
|
|
999dd5eb6f | ||
|
|
a1a6a3ab81 | ||
|
|
d067bbfa65 | ||
|
|
3bd40eeb27 | ||
|
|
b124d54055 | ||
|
|
90691de457 | ||
|
|
bee83a3a3e | ||
|
|
fd8f2438fa | ||
|
|
7937d99a73 | ||
|
|
569afb5535 | ||
|
|
fc5a45e113 | ||
|
|
950f4a9f1a | ||
|
|
6a6e80b6d8 | ||
|
|
083c9792a6 | ||
|
|
893bfce767 | ||
|
|
f61f3df732 | ||
|
|
a3be5e332e | ||
|
|
33d65a8593 | ||
|
|
ebbf01c6e5 | ||
|
|
acb8496352 | ||
|
|
ecad5772d2 | ||
|
|
6e6f5714dd | ||
|
|
50ae15aa4f | ||
|
|
4e2c3049a0 | ||
|
|
3a785c166e | ||
|
|
5248a4eb9c | ||
|
|
c9a53aed7b | ||
|
|
bafe5dc784 | ||
|
|
5325488099 | ||
|
|
737ad5c8b7 | ||
|
|
17cea4e274 | ||
|
|
af5b579a2f | ||
|
|
c87eaaa928 | ||
|
|
33418397f8 | ||
|
|
8c7258e839 | ||
|
|
98fff9b81d | ||
|
|
0c63b27eea | ||
|
|
0968981aef | ||
|
|
8db4abdf43 | ||
|
|
9aa4219bf0 | ||
|
|
6c32ab4711 | ||
|
|
a80c5a1efa | ||
|
|
4ba46bff69 | ||
|
|
6a7c97277f | ||
|
|
cc70ff9732 | ||
|
|
2d25948c57 | ||
|
|
8946af4831 | ||
|
|
5e7ca0374c | ||
|
|
21f8e89ba4 | ||
|
|
f0aca90de2 | ||
|
|
097228066a | ||
|
|
7d8782f3dc | ||
|
|
e4ea9d561e | ||
|
|
e284d9de8e | ||
|
|
df6382a1ca | ||
|
|
c1c1a3318c | ||
|
|
796df1cec5 | ||
|
|
28980293c5 | ||
|
|
d878ad2e7e | ||
|
|
1290d1e9d4 | ||
|
|
f229f1e9fe | ||
|
|
0776951018 | ||
|
|
6d47b449b9 | ||
|
|
594c975c70 | ||
|
|
bf57318307 | ||
|
|
abd87793e4 | ||
|
|
7b4e6128ce | ||
|
|
2ae65acc28 | ||
|
|
2ee87ad078 | ||
|
|
d65beea179 | ||
|
|
b19f3ff8cf | ||
|
|
75fae9454d | ||
|
|
5d309c39cf | ||
|
|
649fc5a0e6 | ||
|
|
67cfa5d42f | ||
|
|
5dcacdeea1 | ||
|
|
2f7073bbe4 | ||
|
|
e8df6ed3be | ||
|
|
d9eb4c1296 | ||
|
|
4af0fbf553 | ||
|
|
2da0862cb2 | ||
|
|
66fcf84688 | ||
|
|
5740d40d57 | ||
|
|
6ef2256bf2 | ||
|
|
65f911909b | ||
|
|
2cb6e454c8 | ||
|
|
abfaa47db2 | ||
|
|
e06970eebb | ||
|
|
dadc83800b | ||
|
|
62f2c67321 | ||
|
|
1651844b4f | ||
|
|
fb9f42ff93 | ||
|
|
9c29b982dd | ||
|
|
f52c4964b3 | ||
|
|
46a8edb781 | ||
|
|
8dbdbe6d6c | ||
|
|
778069c15d | ||
|
|
e98457c540 | ||
|
|
7a3a76065c | ||
|
|
c73c97dc7b | ||
|
|
1b0dd279ae | ||
|
|
7dd487ccc5 | ||
|
|
d046591512 | ||
|
|
e4ce115abf | ||
|
|
aedcac5820 | ||
|
|
9f4430ad92 | ||
|
|
2ad8f1c112 | ||
|
|
f0d884e114 | ||
|
|
b618f5be80 | ||
|
|
7b63eac3eb | ||
|
|
df3f2ea9c1 | ||
|
|
30c6280ed1 | ||
|
|
1960b59629 | ||
|
|
6e6edf8322 | ||
|
|
f47fb01614 | ||
|
|
ae30bdd599 | ||
|
|
2c8962cf5f | ||
|
|
eb3e507a11 | ||
|
|
be3147465d | ||
|
|
484721fece | ||
|
|
9c36026991 | ||
|
|
bf5055f944 | ||
|
|
389034bf1a | ||
|
|
3f07102f2a | ||
|
|
d4ccfa31b5 | ||
|
|
5814b2a4b8 | ||
|
|
d3f61af493 | ||
|
|
233ea7bb4a | ||
|
|
6893a30ffb | ||
|
|
ae6d2fb363 | ||
|
|
baa7cb3a10 | ||
|
|
7b90544d91 | ||
|
|
9a5495d8b2 | ||
|
|
1fa769b3e7 | ||
|
|
96766ece4e | ||
|
|
add525396f | ||
|
|
26ae4edd63 | ||
|
|
063893adee | ||
|
|
ff37e99d71 | ||
|
|
3d0b02ee23 | ||
|
|
d7cfbfe6c8 | ||
|
|
dc00e22f13 | ||
|
|
bcde481304 | ||
|
|
5b1341e488 |
6
.gitignore
vendored
@@ -14,14 +14,16 @@
|
|||||||
/core/assets-raw/sprites/generated/
|
/core/assets-raw/sprites/generated/
|
||||||
/annotations/build/
|
/annotations/build/
|
||||||
/kryonet/build/
|
/kryonet/build/
|
||||||
/packer/build/
|
/tools/build/
|
||||||
|
/tests/build/
|
||||||
/server/build/
|
/server/build/
|
||||||
|
/test_files/
|
||||||
/annotations/build/
|
/annotations/build/
|
||||||
/android/assets/mindustry-maps/
|
/android/assets/mindustry-maps/
|
||||||
/android/assets/mindustry-saves/
|
/android/assets/mindustry-saves/
|
||||||
/core/assets/gifexport/
|
/core/assets/gifexport/
|
||||||
/core/assets/version.properties
|
/core/assets/version.properties
|
||||||
/core/assets/locales.json
|
/core/assets/locales
|
||||||
/ios/src/io/anuke/mindustry/gen/
|
/ios/src/io/anuke/mindustry/gen/
|
||||||
*.gif
|
*.gif
|
||||||
|
|
||||||
|
|||||||
40
.travis.yml
@@ -1,24 +1,28 @@
|
|||||||
language: android
|
language: android
|
||||||
|
|
||||||
jdk:
|
jdk:
|
||||||
- openjdk8
|
- openjdk8
|
||||||
|
|
||||||
android:
|
android:
|
||||||
components:
|
components:
|
||||||
- android-27
|
- android-28
|
||||||
|
- extra-google-google_play_services
|
||||||
# Additional components
|
- extra-google-m2repository
|
||||||
- extra-google-google_play_services
|
- extra-android-m2repository
|
||||||
- extra-google-m2repository
|
- addon-google_apis-google-28
|
||||||
- extra-android-m2repository
|
- build-tools-28.0.3
|
||||||
- addon-google_apis-google-27
|
|
||||||
- build-tools-27.0.3
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./gradlew desktop:dist
|
- "./gradlew test"
|
||||||
|
- "./gradlew desktop:dist"
|
||||||
after_success:
|
- "./gradlew server:dist"
|
||||||
- chmod +x upload-build.sh
|
|
||||||
- chmod +x cleanup_builds.sh
|
|
||||||
- ./upload-build.sh
|
|
||||||
|
|
||||||
|
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/desktop-release.jar"
|
||||||
|
- "server/build/libs/server-release.jar"
|
||||||
|
on:
|
||||||
|
repo: Anuken/Mindustry
|
||||||
|
tags: true
|
||||||
@@ -1,7 +1,8 @@
|
|||||||

|

|
||||||
|
|
||||||
[](https://travis-ci.org/Anuken/Mindustry)
|
[](https://travis-ci.org/Anuken/Mindustry)
|
||||||
\
|
[](https://discord.gg/mindustry)
|
||||||
|
|
||||||
A pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/). Winner of the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam).
|
A pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/). Winner of the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam).
|
||||||
|
|
||||||
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
|
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ task deploy(type: Copy){
|
|||||||
dependsOn "assembleRelease"
|
dependsOn "assembleRelease"
|
||||||
|
|
||||||
from "build/outputs/apk/google/release/android-google-release.apk"
|
from "build/outputs/apk/google/release/android-google-release.apk"
|
||||||
into "../deploy/";
|
into "../deploy/"
|
||||||
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk");
|
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk")
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
buildToolsVersion '27.0.3'
|
buildToolsVersion '28.0.3'
|
||||||
compileSdkVersion 27
|
compileSdkVersion 28
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
@@ -100,7 +100,7 @@ android {
|
|||||||
keyAlias RELEASE_KEY_ALIAS
|
keyAlias RELEASE_KEY_ALIAS
|
||||||
keyPassword RELEASE_KEY_PASSWORD
|
keyPassword RELEASE_KEY_PASSWORD
|
||||||
}else{
|
}else{
|
||||||
println("No keystore info property found!");
|
println("No keystore info property found!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,11 +115,11 @@ android {
|
|||||||
// the natives configuration, and extracts them to the proper libs/ folders
|
// the natives configuration, and extracts them to the proper libs/ folders
|
||||||
// so they get packed with the APK.
|
// so they get packed with the APK.
|
||||||
task copyAndroidNatives() {
|
task copyAndroidNatives() {
|
||||||
file("libs/armeabi/").mkdirs();
|
file("libs/armeabi/").mkdirs()
|
||||||
file("libs/armeabi-v7a/").mkdirs();
|
file("libs/armeabi-v7a/").mkdirs()
|
||||||
file("libs/arm64-v8a/").mkdirs();
|
file("libs/arm64-v8a/").mkdirs()
|
||||||
file("libs/x86_64/").mkdirs();
|
file("libs/x86_64/").mkdirs()
|
||||||
file("libs/x86/").mkdirs();
|
file("libs/x86/").mkdirs()
|
||||||
|
|
||||||
configurations.natives.files.each { jar ->
|
configurations.natives.files.each { jar ->
|
||||||
def outputDir = null
|
def outputDir = null
|
||||||
@@ -137,6 +137,7 @@ task copyAndroidNatives() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task run(type: Exec) {
|
task run(type: Exec) {
|
||||||
def path
|
def path
|
||||||
def localProperties = project.file("../local.properties")
|
def localProperties = project.file("../local.properties")
|
||||||
@@ -158,47 +159,18 @@ task run(type: Exec) {
|
|||||||
def adb = path + "/platform-tools/adb"
|
def adb = path + "/platform-tools/adb"
|
||||||
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher'
|
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher'
|
||||||
}
|
}
|
||||||
// sets up the Android Eclipse project, using the old Ant based build.
|
|
||||||
eclipse {
|
|
||||||
// need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
|
|
||||||
// ignores any nodes added in classpath.file.withXml
|
|
||||||
sourceSets {
|
|
||||||
main {
|
|
||||||
java.srcDirs "src", 'gen'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jdt {
|
|
||||||
sourceCompatibility = 1.7
|
|
||||||
targetCompatibility = 1.7
|
|
||||||
}
|
|
||||||
|
|
||||||
classpath {
|
|
||||||
plusConfigurations += [project.configurations.compile]
|
|
||||||
containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
|
|
||||||
}
|
|
||||||
|
|
||||||
project {
|
|
||||||
name = appName + "-android"
|
|
||||||
natures 'com.android.ide.eclipse.adt.AndroidNature'
|
|
||||||
buildCommands.clear();
|
|
||||||
buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
|
|
||||||
buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
|
|
||||||
buildCommand "org.eclipse.jdt.core.javabuilder"
|
|
||||||
buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// sets up the Android Idea project, using the old Ant based build.
|
// sets up the Android Idea project, using the old Ant based build.
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
sourceDirs += file("src");
|
sourceDirs += file("src")
|
||||||
scopes = [COMPILE: [plus: [project.configurations.compile]]]
|
scopes = [COMPILE: [plus: [project.configurations.compile]]]
|
||||||
|
|
||||||
iml {
|
iml {
|
||||||
withXml {
|
withXml {
|
||||||
def node = it.asNode()
|
def node = it.asNode()
|
||||||
def builder = NodeBuilder.newInstance();
|
def builder = NodeBuilder.newInstance()
|
||||||
builder.current = node;
|
builder.current = node
|
||||||
builder.component(name: "FacetManager") {
|
builder.component(name: "FacetManager") {
|
||||||
facet(type: "android", name: "Android") {
|
facet(type: "android", name: "Android") {
|
||||||
configuration {
|
configuration {
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:maxLength="15"
|
|
||||||
>
|
>
|
||||||
|
|
||||||
<requestFocus />
|
<requestFocus />
|
||||||
|
|||||||
15
android/res/values-ko/strings.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<string name="app_name">Mindustry</string>
|
||||||
|
<string-array name="donation_google_catalog_values">
|
||||||
|
<item>1 달러</item>
|
||||||
|
<item>2 달러</item>
|
||||||
|
<item>5 달러</item>
|
||||||
|
<item>10 달러</item>
|
||||||
|
<item>15 달러</item>
|
||||||
|
<item>25 달러</item>
|
||||||
|
<item>50 달러</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
</resources>
|
||||||
15
android/res/values-ru/strings.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<string name="app_name">Mindustry</string>
|
||||||
|
<string-array name="donation_google_catalog_values">
|
||||||
|
<item>1 Доллар</item>
|
||||||
|
<item>2 Доллара</item>
|
||||||
|
<item>5 Доллара</item>
|
||||||
|
<item>10 Долларов</item>
|
||||||
|
<item>15 Долларов</item>
|
||||||
|
<item>25 Долларов</item>
|
||||||
|
<item>50 Долларов</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
</resources>
|
||||||
@@ -90,11 +90,6 @@ public class AndroidLauncher extends PatchedAndroidApplication{
|
|||||||
return new DefaultThreadImpl();
|
return new DefaultThreadImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDebug(){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUUID(){
|
public String getUUID(){
|
||||||
try{
|
try{
|
||||||
@@ -207,7 +202,7 @@ public class AndroidLauncher extends PatchedAndroidApplication{
|
|||||||
file.write(inStream, false);
|
file.write(inStream, false);
|
||||||
if(SaveIO.isSaveValid(file)){
|
if(SaveIO.isSaveValid(file)){
|
||||||
try{
|
try{
|
||||||
SaveSlot slot = control.getSaves().importSave(file);
|
SaveSlot slot = control.saves.importSave(file);
|
||||||
ui.load.runLoadSave(slot);
|
ui.load.runLoadSave(slot);
|
||||||
}catch(IOException e){
|
}catch(IOException e){
|
||||||
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));
|
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class AndroidTextFieldDialog{
|
|||||||
while(!isBuild){
|
while(!isBuild){
|
||||||
try{
|
try{
|
||||||
Thread.sleep(10);
|
Thread.sleep(10);
|
||||||
}catch(InterruptedException e){
|
}catch(InterruptedException ignored){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,13 +46,10 @@ public class DonationsActivity extends FragmentActivity{
|
|||||||
|
|
||||||
public void onStart(){
|
public void onStart(){
|
||||||
super.onStart();
|
super.onStart();
|
||||||
Button b = ((Button) findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button));
|
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
||||||
b.setOnClickListener(new View.OnClickListener(){
|
b.setOnClickListener(view -> {
|
||||||
@Override
|
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
|
||||||
public void onClick(View view){
|
b.setEnabled(false);
|
||||||
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
|
|
||||||
b.setEnabled(false);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +61,7 @@ public class DonationsActivity extends FragmentActivity{
|
|||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data){
|
protected void onActivityResult(int requestCode, int resultCode, Intent data){
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
Button b = ((Button) findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button));
|
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
||||||
b.setEnabled(true);
|
b.setEnabled(true);
|
||||||
|
|
||||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||||
|
|||||||
@@ -5,12 +5,15 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/**
|
|
||||||
* Goal: To create a system to send events to the server from the client and vice versa, without creating a new packet type each time.<br>
|
|
||||||
* These events may optionally also trigger on the caller client/server as well.<br>
|
|
||||||
*/
|
|
||||||
public class Annotations{
|
public class Annotations{
|
||||||
|
|
||||||
|
/** Marks a class as serializable.*/
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
public @interface Serialize{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public enum PacketPriority{
|
public enum PacketPriority{
|
||||||
/** Gets put in a queue and processed if not connected. */
|
/** Gets put in a queue and processed if not connected. */
|
||||||
normal,
|
normal,
|
||||||
@@ -60,7 +63,7 @@ public class Annotations{
|
|||||||
|
|
||||||
/** Marks a method as invokable remotely across a server/client connection. */
|
/** Marks a method as invokable remotely across a server/client connection. */
|
||||||
@Target(ElementType.METHOD)
|
@Target(ElementType.METHOD)
|
||||||
@Retention(RetentionPolicy.CLASS)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface Remote{
|
public @interface Remote{
|
||||||
/** Specifies the locations from which this method can be invoked. */
|
/** Specifies the locations from which this method can be invoked. */
|
||||||
Loc targets() default Loc.server;
|
Loc targets() default Loc.server;
|
||||||
@@ -90,7 +93,7 @@ public class Annotations{
|
|||||||
* being the type returned by {@link #value()}.
|
* being the type returned by {@link #value()}.
|
||||||
*/
|
*/
|
||||||
@Target(ElementType.METHOD)
|
@Target(ElementType.METHOD)
|
||||||
@Retention(RetentionPolicy.CLASS)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface WriteClass{
|
public @interface WriteClass{
|
||||||
Class<?> value();
|
Class<?> value();
|
||||||
}
|
}
|
||||||
@@ -101,7 +104,7 @@ public class Annotations{
|
|||||||
* and have one parameter, being of type {@link java.nio.ByteBuffer}.
|
* and have one parameter, being of type {@link java.nio.ByteBuffer}.
|
||||||
*/
|
*/
|
||||||
@Target(ElementType.METHOD)
|
@Target(ElementType.METHOD)
|
||||||
@Retention(RetentionPolicy.CLASS)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface ReadClass{
|
public @interface ReadClass{
|
||||||
Class<?> value();
|
Class<?> value();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import java.util.stream.Collectors;
|
|||||||
/** The annotation processor for generating remote method call code. */
|
/** The annotation processor for generating remote method call code. */
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes({
|
@SupportedAnnotationTypes({
|
||||||
"io.anuke.annotations.Annotations.Remote",
|
"io.anuke.annotations.Annotations.Remote",
|
||||||
"io.anuke.annotations.Annotations.WriteClass",
|
"io.anuke.annotations.Annotations.WriteClass",
|
||||||
"io.anuke.annotations.Annotations.ReadClass",
|
"io.anuke.annotations.Annotations.ReadClass",
|
||||||
})
|
})
|
||||||
public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Maximum size of each event packet. */
|
/** Maximum size of each event packet. */
|
||||||
@@ -74,7 +74,6 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
|||||||
if(round == 1){
|
if(round == 1){
|
||||||
//get serializers
|
//get serializers
|
||||||
serializers = new IOFinder().findSerializers(roundEnv);
|
serializers = new IOFinder().findSerializers(roundEnv);
|
||||||
|
|
||||||
//last method ID used
|
//last method ID used
|
||||||
int lastMethodID = 0;
|
int lastMethodID = 0;
|
||||||
//find all elements with the Remote annotation
|
//find all elements with the Remote annotation
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ public class RemoteWriteGenerator{
|
|||||||
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
|
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
|
||||||
|
|
||||||
//add statement to create packet from pool
|
//add statement to create packet from pool
|
||||||
method.addStatement("$1N packet = $2N.obtain($1N.class)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.ucore.util.Pooling");
|
method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.ucore.util.Pooling");
|
||||||
//assign buffer
|
//assign buffer
|
||||||
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
|
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
|
||||||
//assign priority
|
//assign priority
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
package io.anuke.annotations;
|
||||||
|
|
||||||
|
import com.squareup.javapoet.*;
|
||||||
|
import io.anuke.annotations.Annotations.Serialize;
|
||||||
|
|
||||||
|
import javax.annotation.processing.*;
|
||||||
|
import javax.lang.model.SourceVersion;
|
||||||
|
import javax.lang.model.element.Modifier;
|
||||||
|
import javax.lang.model.element.TypeElement;
|
||||||
|
import javax.lang.model.element.VariableElement;
|
||||||
|
import javax.lang.model.util.ElementFilter;
|
||||||
|
import java.io.DataInput;
|
||||||
|
import java.io.DataOutput;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
|
@SupportedAnnotationTypes({
|
||||||
|
"io.anuke.annotations.Annotations.Serialize"
|
||||||
|
})
|
||||||
|
public class SerializeAnnotationProcessor extends AbstractProcessor{
|
||||||
|
/**Target class name.*/
|
||||||
|
private static final String className = "Serialization";
|
||||||
|
/** Name of the base package to put all the generated classes. */
|
||||||
|
private static final String packageName = "io.anuke.mindustry.gen";
|
||||||
|
|
||||||
|
private int round;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void init(ProcessingEnvironment processingEnv){
|
||||||
|
super.init(processingEnv);
|
||||||
|
//put all relevant utils into utils class
|
||||||
|
Utils.typeUtils = processingEnv.getTypeUtils();
|
||||||
|
Utils.elementUtils = processingEnv.getElementUtils();
|
||||||
|
Utils.filer = processingEnv.getFiler();
|
||||||
|
Utils.messager = processingEnv.getMessager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
|
||||||
|
if(round++ != 0) return false; //only process 1 round
|
||||||
|
|
||||||
|
try{
|
||||||
|
Set<TypeElement> elements = ElementFilter.typesIn(roundEnv.getElementsAnnotatedWith(Serialize.class));
|
||||||
|
|
||||||
|
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
|
||||||
|
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
|
for(TypeElement elem : elements){
|
||||||
|
TypeName type = TypeName.get(elem.asType());
|
||||||
|
|
||||||
|
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
||||||
|
.addSuperinterface(ParameterizedTypeName.get(
|
||||||
|
ClassName.get(Class.forName("io.anuke.ucore.io.TypeSerializer")), type));
|
||||||
|
|
||||||
|
MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write")
|
||||||
|
.returns(void.class)
|
||||||
|
.addParameter(DataOutput.class, "stream")
|
||||||
|
.addParameter(type, "object")
|
||||||
|
.addAnnotation(Override.class)
|
||||||
|
.addException(IOException.class)
|
||||||
|
.addModifiers(Modifier.PUBLIC);
|
||||||
|
|
||||||
|
MethodSpec.Builder readMethod = MethodSpec.methodBuilder("read")
|
||||||
|
.returns(type)
|
||||||
|
.addParameter(DataInput.class, "stream")
|
||||||
|
.addAnnotation(Override.class)
|
||||||
|
.addException(IOException.class)
|
||||||
|
.addModifiers(Modifier.PUBLIC);
|
||||||
|
|
||||||
|
readMethod.addStatement("$L object = new $L()", type, type);
|
||||||
|
|
||||||
|
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
|
||||||
|
for(VariableElement field : fields){
|
||||||
|
if(field.getModifiers().contains(Modifier.STATIC) || field.getModifiers().contains(Modifier.TRANSIENT) || field.getModifiers().contains(Modifier.PRIVATE)) continue;
|
||||||
|
|
||||||
|
String name = field.getSimpleName().toString();
|
||||||
|
String typeName = Utils.typeUtils.erasure(field.asType()).toString().replace('$', '.');
|
||||||
|
String capName = Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
|
||||||
|
|
||||||
|
if(field.asType().getKind().isPrimitive()){
|
||||||
|
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
|
||||||
|
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
|
||||||
|
}else{
|
||||||
|
writeMethod.addStatement("io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
|
||||||
|
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).read(stream)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
readMethod.addStatement("return object");
|
||||||
|
|
||||||
|
serializer.addMethod(writeMethod.build());
|
||||||
|
serializer.addMethod(readMethod.build());
|
||||||
|
|
||||||
|
method.addStatement("io.anuke.ucore.core.Settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
classBuilder.addMethod(method.build());
|
||||||
|
|
||||||
|
//write result
|
||||||
|
JavaFile.builder(packageName, classBuilder.build()).build().writeTo(Utils.filer);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
69
build.gradle
@@ -9,7 +9,7 @@ buildscript {
|
|||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0'
|
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0'
|
||||||
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
|
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
|
||||||
classpath 'com.android.tools.build:gradle:3.1.3'
|
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||||
classpath "com.badlogicgames.gdx:gdx-tools:1.9.8"
|
classpath "com.badlogicgames.gdx:gdx-tools:1.9.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,15 +22,16 @@ allprojects {
|
|||||||
|
|
||||||
ext {
|
ext {
|
||||||
versionNumber = '4.0'
|
versionNumber = '4.0'
|
||||||
versionType = 'alpha'
|
versionModifier = 'alpha'
|
||||||
|
versionType = 'official'
|
||||||
appName = 'Mindustry'
|
appName = 'Mindustry'
|
||||||
gdxVersion = '1.9.8'
|
gdxVersion = '1.9.8'
|
||||||
roboVMVersion = '2.3.0'
|
roboVMVersion = '2.3.0'
|
||||||
uCoreVersion = '64ec4a15148b27749ca7b505dea9743add9902f2'
|
uCoreVersion = '53f99fbdc50910a15b4f55e9739385f47cf800cf'
|
||||||
|
|
||||||
getVersionString = {
|
getVersionString = {
|
||||||
String buildVersion = getBuildVersion()
|
String buildVersion = getBuildVersion()
|
||||||
return "$versionNumber-$versionType-$buildVersion"
|
return "$versionNumber-$versionModifier-$buildVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
getBuildVersion = {
|
getBuildVersion = {
|
||||||
@@ -43,14 +44,13 @@ allprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
generateLocales = {
|
generateLocales = {
|
||||||
def output = '["en",'
|
def output = 'en\n'
|
||||||
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
|
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
|
||||||
bundles.listFiles().each { other ->
|
bundles.listFiles().each { other ->
|
||||||
if(other.name == "bundle.properties") return;
|
if(other.name == "bundle.properties") return
|
||||||
output += '"' + other.name.substring("bundle".length() + 1, other.name.lastIndexOf('.')) + '",'
|
output += other.name.substring("bundle".length() + 1, other.name.lastIndexOf('.')) + "\n"
|
||||||
}
|
}
|
||||||
output = (output.substring(0, output.size() - 1) + "]")
|
new File(project(':core').projectDir, 'assets/locales').text = output
|
||||||
new File(project(':core').projectDir, 'assets/locales.json').text = output;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
writeVersion = {
|
writeVersion = {
|
||||||
@@ -59,18 +59,18 @@ allprojects {
|
|||||||
|
|
||||||
try{
|
try{
|
||||||
pfile.createNewFile()
|
pfile.createNewFile()
|
||||||
}catch (Exception e){}
|
}catch (Exception ignored){}
|
||||||
|
|
||||||
if(pfile.exists()) {
|
if(pfile.exists()) {
|
||||||
|
|
||||||
props.load(new FileInputStream(pfile))
|
props.load(new FileInputStream(pfile))
|
||||||
|
|
||||||
String code = getBuildVersion()
|
String buildid = getBuildVersion()
|
||||||
|
|
||||||
props["name"] = appName
|
props["type"] = versionType
|
||||||
props["version"] = versionType
|
props["number"] = versionNumber
|
||||||
props["code"] = versionNumber
|
props["modifier"] = versionModifier
|
||||||
props["build"] = code
|
props["build"] = buildid
|
||||||
|
|
||||||
props.store(pfile.newWriter(), "Autogenerated file. Do not modify.")
|
props.store(pfile.newWriter(), "Autogenerated file. Do not modify.")
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,8 @@ project(":desktop") {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compile project(":core")
|
compile project(":core")
|
||||||
compile project(":kryonet")
|
compile project(":kryonet")
|
||||||
|
if(new File(projectDir.parent, '../debug').exists() && System.properties["release"] == null) compile project(":debug")
|
||||||
|
|
||||||
compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
|
compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
|
||||||
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||||
compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion"
|
compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion"
|
||||||
@@ -103,7 +105,6 @@ project(":html") {
|
|||||||
apply plugin: "gwt"
|
apply plugin: "gwt"
|
||||||
apply plugin: "war"
|
apply plugin: "war"
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(":core")
|
compile project(":core")
|
||||||
compileOnly project(":annotations")
|
compileOnly project(":annotations")
|
||||||
@@ -116,10 +117,6 @@ project(":html") {
|
|||||||
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion"
|
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion"
|
||||||
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources"
|
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources"
|
||||||
}
|
}
|
||||||
|
|
||||||
compileJava.options.compilerArgs = [
|
|
||||||
"-processor", "io.anuke.annotations.RemoteMethodAnnotationProcessor"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":ios") {
|
project(":ios") {
|
||||||
@@ -184,7 +181,7 @@ project(":core") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compileJava.options.compilerArgs = [
|
compileJava.options.compilerArgs = [
|
||||||
"-processor", "io.anuke.annotations.RemoteMethodAnnotationProcessor"
|
"-processor", "io.anuke.annotations.RemoteMethodAnnotationProcessor,io.anuke.annotations.SerializeAnnotationProcessor"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +204,24 @@ project(":server") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":packer") {
|
project(":tests"){
|
||||||
|
apply plugin: "java"
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testImplementation project(":core")
|
||||||
|
testImplementation('org.junit.jupiter:junit-jupiter-api:5.1.0')
|
||||||
|
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.1.0')
|
||||||
|
testImplementation "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
|
||||||
|
testImplementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||||
|
}
|
||||||
|
|
||||||
|
test {
|
||||||
|
useJUnitPlatform()
|
||||||
|
workingDir = new File("../core/assets")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project(":tools") {
|
||||||
apply plugin: "java"
|
apply plugin: "java"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -228,15 +242,8 @@ project(":kryonet") {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(":core")
|
compile project(":core")
|
||||||
compile 'com.github.crykn:kryonet:2.22.1'
|
compile "org.lz4:lz4-java:1.4.1"
|
||||||
|
compile 'com.github.Anuken:kryonet:53b10247b1'
|
||||||
compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893'
|
compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":reporter"){
|
|
||||||
apply plugin: "java"
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.eclipse.doLast {
|
|
||||||
delete ".project"
|
|
||||||
}
|
|
||||||
|
|||||||
BIN
core/assets-raw/sprites/blocks/defense/force-projector-top.png
Normal file
|
After Width: | Height: | Size: 121 B |
BIN
core/assets-raw/sprites/blocks/defense/force-projector.png
Normal file
|
After Width: | Height: | Size: 312 B |
|
After Width: | Height: | Size: 111 B |
BIN
core/assets-raw/sprites/blocks/defense/overdrive-projector.png
Normal file
|
After Width: | Height: | Size: 215 B |
BIN
core/assets-raw/sprites/blocks/defense/shock-mine.png
Normal file
|
After Width: | Height: | Size: 123 B |
|
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 782 B |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 124 B |
|
Before Width: | Height: | Size: 84 B After Width: | Height: | Size: 139 B |
|
Before Width: | Height: | Size: 75 B After Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 199 B |
|
Before Width: | Height: | Size: 111 B |
|
Before Width: | Height: | Size: 111 B |
BIN
core/assets-raw/sprites/blocks/extra/shadow-round-4.png
Normal file
|
After Width: | Height: | Size: 127 B |
BIN
core/assets-raw/sprites/blocks/extra/shadow-shock-mine.png
Normal file
|
After Width: | Height: | Size: 93 B |
BIN
core/assets-raw/sprites/blocks/extra/spawn.png
Normal file
|
After Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 83 B |
|
Before Width: | Height: | Size: 93 B After Width: | Height: | Size: 93 B |
|
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 101 B |
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 113 B |
|
Before Width: | Height: | Size: 133 B After Width: | Height: | Size: 135 B |
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 140 B |
|
Before Width: | Height: | Size: 126 B After Width: | Height: | Size: 130 B |
|
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 144 B |
|
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 129 B |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 135 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 124 B |
|
Before Width: | Height: | Size: 84 B After Width: | Height: | Size: 143 B |
|
Before Width: | Height: | Size: 75 B After Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 150 B |
|
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 156 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 154 B |
|
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 138 B |
|
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |
BIN
core/assets-raw/sprites/blocks/mechs/alpha-mech-pad.png
Normal file
|
After Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 283 B |
|
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 320 B |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 139 B |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 137 B |
|
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 246 B |
BIN
core/assets-raw/sprites/blocks/storage/container.png
Normal file
|
After Width: | Height: | Size: 374 B |
|
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 238 B |
|
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 258 B |
|
Before Width: | Height: | Size: 93 B After Width: | Height: | Size: 93 B |
|
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 111 B |
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 207 B |
BIN
core/assets-raw/sprites/blocks/turrets/turrets/meltdown-heat.png
Normal file
|
After Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 228 B |
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 234 B |
|
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
|
Before Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 178 B After Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 170 B |
BIN
core/assets-raw/sprites/blocks/units/fortress-factory.png
Normal file
|
After Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 178 B After Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 298 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
|
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 112 B |
|
Before Width: | Height: | Size: 150 B |
|
After Width: | Height: | Size: 234 B |
BIN
core/assets-raw/sprites/blocks/units/revenant-factory-top.png
Normal file
|
After Width: | Height: | Size: 241 B |
BIN
core/assets-raw/sprites/blocks/units/revenant-factory.png
Normal file
|
After Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 185 B |
|
Before Width: | Height: | Size: 175 B After Width: | Height: | Size: 175 B |
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
BIN
core/assets-raw/sprites/blocks/units/titan-factory-top-open.png
Normal file
|
After Width: | Height: | Size: 178 B |