Compare commits
506 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8bc59fb67c | ||
|
|
ab5319f3d1 | ||
|
|
6128df0062 | ||
|
|
142938cdca | ||
|
|
b32efe129e | ||
|
|
2b20272a61 | ||
|
|
d9ef79a7b5 | ||
|
|
576f0be4ab | ||
|
|
47099a8a9b | ||
|
|
04dfda0c55 | ||
|
|
b6df916700 | ||
|
|
e239406199 | ||
|
|
266744b1dd | ||
|
|
ab716e96e2 | ||
|
|
649d527dcf | ||
|
|
c5e7ddaf7a | ||
|
|
b2a4cb42cf | ||
|
|
3fc5941f54 | ||
|
|
741360022b | ||
|
|
86e2f62aed | ||
|
|
e552915637 | ||
|
|
98a51c1f61 | ||
|
|
aa84eefa8f | ||
|
|
22e12ce3e5 | ||
|
|
f4a82b5c01 | ||
|
|
60520ea855 | ||
|
|
b70a0869cd | ||
|
|
7bdd21bb75 | ||
|
|
0dd3736f2a | ||
|
|
deb2d30706 | ||
|
|
c416e1546d | ||
|
|
6d3a67ae59 | ||
|
|
6b60147152 | ||
|
|
8c91aca838 | ||
|
|
b47e282747 | ||
|
|
134d0e7e4a | ||
|
|
26b596760b | ||
|
|
8a5e15e82d | ||
|
|
ffb5eee62a | ||
|
|
387d9b39da | ||
|
|
43b5cb62bb | ||
|
|
580923a646 | ||
|
|
06444f497b | ||
|
|
1676ad5f1b | ||
|
|
478d86677d | ||
|
|
c5e0db8de9 | ||
|
|
228690b400 | ||
|
|
8e95be0ac2 | ||
|
|
47b1e700ea | ||
|
|
3ad1949727 | ||
|
|
441680861e | ||
|
|
5e848ecbb3 | ||
|
|
c9520e607f | ||
|
|
40a8c52ba1 | ||
|
|
cb6ffd7810 | ||
|
|
185a7bb7d8 | ||
|
|
bc3405d11d | ||
|
|
2804361436 | ||
|
|
4f40f3c4b2 | ||
|
|
897c55c410 | ||
|
|
9e97b5851e | ||
|
|
625fbdb2d7 | ||
|
|
0f32d3f619 | ||
|
|
273c74b275 | ||
|
|
2500d0a930 | ||
|
|
25bf3be009 | ||
|
|
910dab1896 | ||
|
|
6198ad557a | ||
|
|
89b3d3b670 | ||
|
|
122f43ddb9 | ||
|
|
50104d2532 | ||
|
|
f5f30d6026 | ||
|
|
114cd48521 | ||
|
|
548da3ea5f | ||
|
|
2a8b8d040b | ||
|
|
0dc2d4445b | ||
|
|
8ac497354a | ||
|
|
0cbbcc00a5 | ||
|
|
5cfab33ada | ||
|
|
18328320c1 | ||
|
|
73c48afc99 | ||
|
|
62bd0442df | ||
|
|
0aee75c1c1 | ||
|
|
dc3c27297f | ||
|
|
9363946874 | ||
|
|
df78412896 | ||
|
|
16190aa878 | ||
|
|
e6e5b95adc | ||
|
|
990adcd3b3 | ||
|
|
75a5bbdbb1 | ||
|
|
af1746932f | ||
|
|
56ff5689f4 | ||
|
|
0dd15f3141 | ||
|
|
72fb7b9df7 | ||
|
|
d7e1297cce | ||
|
|
3c9d4ee38f | ||
|
|
828e6bb1b7 | ||
|
|
6e42d59716 | ||
|
|
6f589b5c84 | ||
|
|
6d1b8b81fa | ||
|
|
cddd7e0e94 | ||
|
|
340bc5f2f7 | ||
|
|
ecd117cd58 | ||
|
|
ea0788f56c | ||
|
|
4199702b9b | ||
|
|
5946aaa31f | ||
|
|
444b5dbd97 | ||
|
|
695ccfcc4d | ||
|
|
a6d5bdd001 | ||
|
|
bd4d8efd78 | ||
|
|
53baad766f | ||
|
|
8ac746188b | ||
|
|
62dbce089f | ||
|
|
fd5d0b2cbb | ||
|
|
6226e0c5a3 | ||
|
|
01a9be835f | ||
|
|
97eb66b0a5 | ||
|
|
048c5e68f1 | ||
|
|
8f39def993 | ||
|
|
0be674d7af | ||
|
|
e6499f7e5a | ||
|
|
10bd1d1969 | ||
|
|
ec94267b8e | ||
|
|
d3ad113bf5 | ||
|
|
8d7242a1ef | ||
|
|
13879dd374 | ||
|
|
0f519fd358 | ||
|
|
e7fb128499 | ||
|
|
c2d619cb7f | ||
|
|
78176cca90 | ||
|
|
dbc49649c0 | ||
|
|
49ee821029 | ||
|
|
e1499330bc | ||
|
|
222175e005 | ||
|
|
388927715e | ||
|
|
ac9e1febfb | ||
|
|
e47836cc64 | ||
|
|
f8f48f1c88 | ||
|
|
95e8a603a5 | ||
|
|
c400fd88f3 | ||
|
|
095d90fd22 | ||
|
|
797be92ddd | ||
|
|
7f23bd694c | ||
|
|
1cbf8b960a | ||
|
|
c8ce195522 | ||
|
|
4458ae042e | ||
|
|
1c3d7c1c73 | ||
|
|
cb3bbd169f | ||
|
|
ab107bfc0d | ||
|
|
d0b5b49bf8 | ||
|
|
1b4b1d5c9f | ||
|
|
aee800ab7a | ||
|
|
895b46307a | ||
|
|
d300d45f22 | ||
|
|
dd05f5278c | ||
|
|
1897008c72 | ||
|
|
328cdac60f | ||
|
|
3942c6cd55 | ||
|
|
f0f7b5aaf7 | ||
|
|
3ad9e44891 | ||
|
|
80bdaa1edc | ||
|
|
39acb224d1 | ||
|
|
f51d565db8 | ||
|
|
d608cf6536 | ||
|
|
0b49bd1985 | ||
|
|
fce69005a9 | ||
|
|
b73420b156 | ||
|
|
fb863cb39b | ||
|
|
8247ff15ed | ||
|
|
af8db9062c | ||
|
|
9039d52817 | ||
|
|
88d5e1cca8 | ||
|
|
57544e615f | ||
|
|
61a92d55ae | ||
|
|
940965f03d | ||
|
|
30a254e9be | ||
|
|
581782af28 | ||
|
|
72cad1409f | ||
|
|
e7e4985761 | ||
|
|
cdb3d29767 | ||
|
|
90fe5329e3 | ||
|
|
22e20cb2da | ||
|
|
a3454e50d7 | ||
|
|
75b8f5e543 | ||
|
|
1a0b22ef15 | ||
|
|
bc78d1a561 | ||
|
|
00b953a04e | ||
|
|
aa0ef529f5 | ||
|
|
bd134bf9c9 | ||
|
|
752267c521 | ||
|
|
34635e3460 | ||
|
|
ba0b4513f1 | ||
|
|
4764808450 | ||
|
|
c66fd67510 | ||
|
|
3997ca6454 | ||
|
|
4242100c53 | ||
|
|
32adcc3676 | ||
|
|
80c26606f0 | ||
|
|
a7852098f1 | ||
|
|
72638fc215 | ||
|
|
65418529cd | ||
|
|
ceea0d1730 | ||
|
|
764ea699b1 | ||
|
|
bdb7f522fb | ||
|
|
2461331e32 | ||
|
|
3464f40da3 | ||
|
|
3b2b79d539 | ||
|
|
8616fc6b05 | ||
|
|
9e9c001422 | ||
|
|
93bbd34055 | ||
|
|
cac953e812 | ||
|
|
aeb3662414 | ||
|
|
1687ce3182 | ||
|
|
2888e87bb8 | ||
|
|
094ebb8020 | ||
|
|
54ad52edc2 | ||
|
|
0e869f3cb5 | ||
|
|
4d40af6ac0 | ||
|
|
79a2f31056 | ||
|
|
b2341bf75c | ||
|
|
c4c4b473e5 | ||
|
|
6e26ccf25d | ||
|
|
83bfad3546 | ||
|
|
90f6fff1ae | ||
|
|
52f2b52990 | ||
|
|
48ed4b0e49 | ||
|
|
c3c609e7b9 | ||
|
|
6cd8fa6b0c | ||
|
|
ffb6d398d7 | ||
|
|
52674b4668 | ||
|
|
4ae2370137 | ||
|
|
cee55afa5c | ||
|
|
f998bbbe4c | ||
|
|
e5d19a9819 | ||
|
|
dd75d88d2f | ||
|
|
65ea01218a | ||
|
|
7a2234cd25 | ||
|
|
11ede2756e | ||
|
|
3e51fab387 | ||
|
|
962f413421 | ||
|
|
ae6c938abb | ||
|
|
68faae69c5 | ||
|
|
08edce7906 | ||
|
|
55eb493d1f | ||
|
|
d6be07f1b8 | ||
|
|
064a012b25 | ||
|
|
df26148e7c | ||
|
|
d26f533111 | ||
|
|
69575dbab3 | ||
|
|
9f4a430412 | ||
|
|
23843be981 | ||
|
|
486e3ffc0a | ||
|
|
8127e5a66f | ||
|
|
53167a3b52 | ||
|
|
1b77247c40 | ||
|
|
24374cf7e3 | ||
|
|
88de54ec90 | ||
|
|
3035d569cc | ||
|
|
51f9ad5a2c | ||
|
|
bb322f1bff | ||
|
|
72843e9c92 | ||
|
|
20fbe2fbbe | ||
|
|
bf073a84c8 | ||
|
|
35b158dba7 | ||
|
|
465c0e7dc3 | ||
|
|
eb4f6f2e9f | ||
|
|
0ff56e3a68 | ||
|
|
4ddc59589c | ||
|
|
1e15d7a33e | ||
|
|
e4e2b6ab00 | ||
|
|
af67690e75 | ||
|
|
b37ae484c0 | ||
|
|
13969bdd29 | ||
|
|
a3f5583326 | ||
|
|
f137c11c6c | ||
|
|
8d6afbd80d | ||
|
|
c46fa206f6 | ||
|
|
e8da206389 | ||
|
|
18f1b5f9d2 | ||
|
|
b2b8cf2357 | ||
|
|
a4fd88a440 | ||
|
|
96a92fd85f | ||
|
|
e5175d6309 | ||
|
|
b5ceee3336 | ||
|
|
a1624f61ae | ||
|
|
5ee26fc3f4 | ||
|
|
93ffb66e59 | ||
|
|
4b9bcfb014 | ||
|
|
a161c09441 | ||
|
|
0c396f76b2 | ||
|
|
b2408b1a7c | ||
|
|
c97826ed29 | ||
|
|
9c653a46bc | ||
|
|
eaa2ad4f05 | ||
|
|
88ce7837a6 | ||
|
|
9f5a183793 | ||
|
|
c2a6690d24 | ||
|
|
5e5b719704 | ||
|
|
4054c7d12d | ||
|
|
bb5e454b91 | ||
|
|
ffb12f9c0b | ||
|
|
a89786d079 | ||
|
|
2d3fd513d8 | ||
|
|
271d01dc9d | ||
|
|
d3ffaea042 | ||
|
|
404b593ab8 | ||
|
|
b9f1dea914 | ||
|
|
f3385e6453 | ||
|
|
a2e55f7861 | ||
|
|
761e0114a5 | ||
|
|
dcae128d06 | ||
|
|
a891a8badc | ||
|
|
f3ec5b533e | ||
|
|
d50397edf1 | ||
|
|
49986f22c8 | ||
|
|
70f279d978 | ||
|
|
84c5a75b6c | ||
|
|
97663e87a6 | ||
|
|
5956edcb8e | ||
|
|
7e975f2134 | ||
|
|
40de13f9c7 | ||
|
|
70946539e3 | ||
|
|
996c594dfc | ||
|
|
d8eeb79b63 | ||
|
|
cf61dd0704 | ||
|
|
6fd5f1563a | ||
|
|
3c643c917a | ||
|
|
378be0ef86 | ||
|
|
29e90969eb | ||
|
|
fb724514f3 | ||
|
|
1f11da75d2 | ||
|
|
a2fa65330d | ||
|
|
d3af66b7ed | ||
|
|
fcc433fe17 | ||
|
|
617bdf9910 | ||
|
|
3b2aa92eb7 | ||
|
|
4c17b56e28 | ||
|
|
ad13c83f93 | ||
|
|
768d67a8ae | ||
|
|
d827cda395 | ||
|
|
106e6c98a3 | ||
|
|
e7ad797d4e | ||
|
|
6e1fb71194 | ||
|
|
9f5dc7f091 | ||
|
|
57b273639c | ||
|
|
278d690a6b | ||
|
|
c91c0f7b47 | ||
|
|
6a406f4d45 | ||
|
|
eecaa850e0 | ||
|
|
f332332eaa | ||
|
|
79b0e76be0 | ||
|
|
30650efd98 | ||
|
|
b7759c8151 | ||
|
|
0382c35ac0 | ||
|
|
819262c93f | ||
|
|
db60f4bb1c | ||
|
|
7785ca55c2 | ||
|
|
75dcceff43 | ||
|
|
af91979d4c | ||
|
|
52cd4a77dd | ||
|
|
8a1da3c0ed | ||
|
|
9d67c36c32 | ||
|
|
f283709e62 | ||
|
|
5035559b08 | ||
|
|
01e1438382 | ||
|
|
4eee472043 | ||
|
|
5f89a1b9ca | ||
|
|
b9db5ad662 | ||
|
|
4a7960d64b | ||
|
|
5b8084e1fa | ||
|
|
ab67b67e4c | ||
|
|
f825931f92 | ||
|
|
6113edf2ce | ||
|
|
8413443c26 | ||
|
|
f67fb31bc5 | ||
|
|
d321ec5ed1 | ||
|
|
084ae184f9 | ||
|
|
d1ec652f7b | ||
|
|
7a2a6586be | ||
|
|
392dcf3092 | ||
|
|
8a983c784d | ||
|
|
a443263439 | ||
|
|
3e766b9f54 | ||
|
|
89b9501f35 | ||
|
|
816ae84005 | ||
|
|
c0e425cf46 | ||
|
|
9ebb4c7d12 | ||
|
|
46c3b35028 | ||
|
|
ef2b8be726 | ||
|
|
df51078858 | ||
|
|
5783b61631 | ||
|
|
98a53381fb | ||
|
|
daccfa5fe3 | ||
|
|
d82c24616f | ||
|
|
905ca3dcfc | ||
|
|
b4fb687c4f | ||
|
|
39fb2ae5ab | ||
|
|
b40beb0d1d | ||
|
|
4a96b9bb00 | ||
|
|
f83a178982 | ||
|
|
986b4276e1 | ||
|
|
6f6f418ec9 | ||
|
|
1463571cd7 | ||
|
|
7dfb0a81e3 | ||
|
|
9699d9467a | ||
|
|
08a2872527 | ||
|
|
7c81a807ea | ||
|
|
3bf7031e6a | ||
|
|
503fc980f4 | ||
|
|
efed11eb97 | ||
|
|
330820062f | ||
|
|
45d157fe3f | ||
|
|
812dea385c | ||
|
|
c582bdea46 | ||
|
|
e6c6a9381b | ||
|
|
4b4c0755c6 | ||
|
|
aeb0539c91 | ||
|
|
9feafa45f5 | ||
|
|
927df391f3 | ||
|
|
cbef6adeb1 | ||
|
|
2dee221861 | ||
|
|
0b175cb25d | ||
|
|
0820338b55 | ||
|
|
a2b46eee6f | ||
|
|
09a435320a | ||
|
|
bf56200c06 | ||
|
|
2d18df2011 | ||
|
|
bab87c0da8 | ||
|
|
148f272500 | ||
|
|
6de4af727b | ||
|
|
75946b9d14 | ||
|
|
1c63ee6743 | ||
|
|
efdaf0d986 | ||
|
|
3f6aeac33d | ||
|
|
d9692004cc | ||
|
|
67a12eecad | ||
|
|
37999e0870 | ||
|
|
66dc1e94f5 | ||
|
|
ebcce194a0 | ||
|
|
95eab94c80 | ||
|
|
41a6dbe06c | ||
|
|
fa22b0ec12 | ||
|
|
be60a367e8 | ||
|
|
608de34205 | ||
|
|
0a8f2edb05 | ||
|
|
41b08f38c5 | ||
|
|
a83c0b2e9a | ||
|
|
8f853c8f18 | ||
|
|
b4071f6dcb | ||
|
|
6b70418861 | ||
|
|
de0235ad94 | ||
|
|
c278c632b3 | ||
|
|
6392330e70 | ||
|
|
160ae4e244 | ||
|
|
a6c9bd3182 | ||
|
|
801eadd8a8 | ||
|
|
211dab1297 | ||
|
|
0c3b39ffdc | ||
|
|
c31f88a318 | ||
|
|
e9eb981782 | ||
|
|
83bde8a781 | ||
|
|
52f352bf94 | ||
|
|
b419a96d69 | ||
|
|
eb3d5b62f5 | ||
|
|
1c5f578d88 | ||
|
|
db3aae1388 | ||
|
|
0b08eb72a6 | ||
|
|
cbc81376be | ||
|
|
27e9901d05 | ||
|
|
532c36677c | ||
|
|
0c20c6ecb7 | ||
|
|
fbb3240ebb | ||
|
|
855957b099 | ||
|
|
c5226c9e59 | ||
|
|
3bad95b389 | ||
|
|
54ef7760b9 | ||
|
|
2ed5d34192 | ||
|
|
9336a2b4c5 | ||
|
|
eb92ca8cd7 | ||
|
|
d3922905c9 | ||
|
|
f5866d7f72 | ||
|
|
dbbc72d00f | ||
|
|
2b4bcf0b0a | ||
|
|
0851f2d0e2 | ||
|
|
ea9ed841ee | ||
|
|
567f3fd3cd | ||
|
|
9dcd8dc419 | ||
|
|
e19bd9d434 | ||
|
|
35ecd26634 | ||
|
|
ac3bb37c36 | ||
|
|
17b8b285a3 | ||
|
|
788bf383aa | ||
|
|
8d0b889f3c | ||
|
|
d250fb655d | ||
|
|
74eb79de17 | ||
|
|
e2eabfc141 | ||
|
|
a3ee43b31c | ||
|
|
12dd16d4bf | ||
|
|
a5b9e57576 | ||
|
|
6c194d257c | ||
|
|
09598e0ced | ||
|
|
6af2696f6a | ||
|
|
69dac77932 | ||
|
|
2764e0e5fa | ||
|
|
fa5cdc3afa | ||
|
|
8dae5ec47a |
17
.travis.yml
@@ -1,21 +1,28 @@
|
|||||||
|
|
||||||
jdk:
|
jdk:
|
||||||
- openjdk8
|
- openjdk8
|
||||||
script:
|
script:
|
||||||
- "git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc"
|
- git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
||||||
- "./gradlew test"
|
- "./gradlew test"
|
||||||
- "./gradlew desktop:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
- "./gradlew desktop:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
||||||
- "./gradlew server:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
- "./gradlew server:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
- provider: releases
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
draft: false
|
draft: false
|
||||||
api_key:
|
api_key:
|
||||||
secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg=
|
secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg=
|
||||||
file:
|
file:
|
||||||
- "desktop/build/libs/desktop-release.jar"
|
- desktop/build/libs/desktop-release.jar
|
||||||
- "server/build/libs/server-release.jar"
|
- server/build/libs/server-release.jar
|
||||||
on:
|
on:
|
||||||
repo: Anuken/Mindustry
|
repo: Anuken/Mindustry
|
||||||
tags: true
|
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=
|
||||||
|
|||||||
@@ -40,6 +40,6 @@ After building, the output .JAR file should be in `/desktop/build/libs/desktop-r
|
|||||||
|
|
||||||
### Downloads
|
### Downloads
|
||||||
|
|
||||||
<a href="https://anuke.itch.io/mindustry"><img src="https://i.imgur.com/sk26hTV.png" width="auto" height="75"></a>
|
<a href="https://anuke.itch.io/mindustry"><img src="https://static.itch.io/images/badge.svg" width="auto" height="75"></a>
|
||||||
|
|
||||||
<a href="https://play.google.com/store/apps/details?id=io.anuke.mindustry&hl=en"><img src="https://i.imgur.com/8dF6l81.png" width="auto" height="75"></a>
|
<a href="https://play.google.com/store/apps/details?id=io.anuke.mindustry&hl=en"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Get_it_on_Google_play.svg/1280px-Get_it_on_Google_play.svg.png" width="auto" height="75"></a>
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
package="io.anuke.mindustry">
|
package="io.anuke.mindustry">
|
||||||
|
|
||||||
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
|
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
|
||||||
<uses-permission android:name="com.android.vending.BILLING" />
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
@@ -61,10 +60,6 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
|
||||||
<activity android:name=".DonationsActivity"
|
|
||||||
android:theme="@style/GdxTheme" />
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ buildscript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies{
|
dependencies{
|
||||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
classpath 'com.android.tools.build:gradle:3.4.1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,9 +27,6 @@ repositories {
|
|||||||
dependencies{
|
dependencies{
|
||||||
implementation project(":core")
|
implementation project(":core")
|
||||||
implementation project(":net")
|
implementation project(":net")
|
||||||
implementation 'com.android.support:support-v4:28.0.0'
|
|
||||||
implementation 'org.sufficientlysecure:donations:2.5'
|
|
||||||
implementation 'com.google.android.gms:play-services-auth:16.0.1'
|
|
||||||
|
|
||||||
implementation arcModule("backends:backend-android")
|
implementation arcModule("backends:backend-android")
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
||||||
@@ -47,9 +44,9 @@ dependencies {
|
|||||||
task deploy(type: Copy){
|
task deploy(type: Copy){
|
||||||
dependsOn "assembleRelease"
|
dependsOn "assembleRelease"
|
||||||
|
|
||||||
from "build/outputs/apk/google/release/android-google-release.apk"
|
from "build/outputs/apk/release/android-release.apk"
|
||||||
into "../deploy/"
|
into "../deploy/"
|
||||||
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk")
|
rename("android-release.apk", appName + "-android-" + getVersionString() + ".apk")
|
||||||
}
|
}
|
||||||
|
|
||||||
android{
|
android{
|
||||||
@@ -103,12 +100,6 @@ android {
|
|||||||
|
|
||||||
flavorDimensions "google"
|
flavorDimensions "google"
|
||||||
|
|
||||||
productFlavors {
|
|
||||||
google {
|
|
||||||
buildConfigField "boolean", "DONATIONS_GOOGLE", "true"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
signingConfigs{
|
signingConfigs{
|
||||||
release{
|
release{
|
||||||
if(project.hasProperty("RELEASE_STORE_FILE")){
|
if(project.hasProperty("RELEASE_STORE_FILE")){
|
||||||
@@ -122,12 +113,14 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(project.hasProperty("RELEASE_STORE_FILE")) {
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// called every time gradle gets executed, takes the native dependencies of
|
// called every time gradle gets executed, takes the native dependencies of
|
||||||
// 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.
|
||||||
@@ -176,26 +169,3 @@ 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 Idea project, using the old Ant based build.
|
|
||||||
idea {
|
|
||||||
module {
|
|
||||||
sourceDirs += file("src")
|
|
||||||
scopes = [COMPILE: [plus: [project.configurations.compile]]]
|
|
||||||
|
|
||||||
iml {
|
|
||||||
withXml {
|
|
||||||
def node = it.asNode()
|
|
||||||
def builder = NodeBuilder.newInstance()
|
|
||||||
builder.current = node
|
|
||||||
builder.component(name: "FacetManager") {
|
|
||||||
facet(type: "android", name: "Android") {
|
|
||||||
configuration {
|
|
||||||
option(name: "UPDATE_PROPERTY_FILES", value: "true")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -9,6 +9,5 @@
|
|||||||
#
|
#
|
||||||
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
||||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||||
|
|
||||||
# Project target.
|
# Project target.
|
||||||
target=android-19
|
target=android-19
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 20 KiB |
@@ -1,32 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="#000">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_gravity="top"
|
|
||||||
android:adjustViewBounds="false"
|
|
||||||
android:contentDescription="background"
|
|
||||||
android:cropToPadding="false"
|
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:src="@drawable/background" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/donations_activity_container"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -2,14 +2,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Mindustry</string>
|
<string name="app_name">Mindustry</string>
|
||||||
<string-array name="donation_google_catalog_values">
|
|
||||||
<item>1 Dollar</item>
|
|
||||||
<item>2 Dollars</item>
|
|
||||||
<item>5 Dollars</item>
|
|
||||||
<item>10 Dollars</item>
|
|
||||||
<item>15 Dollars</item>
|
|
||||||
<item>25 Dollars</item>
|
|
||||||
<item>50 Dollars</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -10,31 +10,22 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings.Secure;
|
import android.provider.Settings.Secure;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
|
||||||
import com.google.android.gms.common.GoogleApiAvailability;
|
|
||||||
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
|
|
||||||
import com.google.android.gms.common.GooglePlayServicesRepairableException;
|
|
||||||
import com.google.android.gms.security.ProviderInstaller;
|
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
|
import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
|
||||||
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
|
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
|
||||||
import io.anuke.arc.files.FileHandle;
|
import io.anuke.arc.files.FileHandle;
|
||||||
import io.anuke.arc.function.Consumer;
|
import io.anuke.arc.function.Consumer;
|
||||||
|
import io.anuke.arc.function.Predicate;
|
||||||
import io.anuke.arc.scene.ui.layout.Unit;
|
import io.anuke.arc.scene.ui.layout.Unit;
|
||||||
import io.anuke.arc.util.Strings;
|
import io.anuke.arc.util.Strings;
|
||||||
import io.anuke.arc.util.serialization.Base64Coder;
|
import io.anuke.arc.util.serialization.Base64Coder;
|
||||||
import io.anuke.net.KryoClient;
|
|
||||||
import io.anuke.net.KryoServer;
|
|
||||||
import io.anuke.mindustry.core.Platform;
|
import io.anuke.mindustry.core.Platform;
|
||||||
import io.anuke.mindustry.game.Saves.SaveSlot;
|
import io.anuke.mindustry.game.Saves.SaveSlot;
|
||||||
import io.anuke.mindustry.io.SaveIO;
|
import io.anuke.mindustry.io.SaveIO;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.*;
|
||||||
import io.anuke.mindustry.ui.dialogs.FileChooser;
|
import io.anuke.mindustry.ui.dialogs.FileChooser;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
@@ -53,8 +44,8 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
Platform.instance = new Platform(){
|
Platform.instance = new Platform(){
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void openDonations(){
|
public void hide(){
|
||||||
showDonations();
|
moveTaskToBack(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -80,8 +71,8 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){
|
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, Predicate<String> filetype){
|
||||||
chooser = new FileChooser(text, file -> file.extension().equalsIgnoreCase(filetype), open, cons);
|
chooser = new FileChooser(text, file -> filetype.test(file.extension().toLowerCase()), open, cons);
|
||||||
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
|
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
|
||||||
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
|
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
|
||||||
chooser.show();
|
chooser.show();
|
||||||
@@ -94,7 +85,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
||||||
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||||
}
|
}
|
||||||
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE);
|
requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,20 +105,13 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
try{
|
|
||||||
ProviderInstaller.installIfNeeded(this);
|
|
||||||
}catch(GooglePlayServicesRepairableException e){
|
|
||||||
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
|
|
||||||
apiAvailability.getErrorDialog(this, e.getConnectionStatusCode(), 0).show();
|
|
||||||
}catch(GooglePlayServicesNotAvailableException e){
|
|
||||||
Log.e("SecurityException", "Google Play Services not available.");
|
|
||||||
}
|
|
||||||
if(doubleScaleTablets && isTablet(this.getContext())){
|
if(doubleScaleTablets && isTablet(this.getContext())){
|
||||||
Unit.dp.addition = 0.5f;
|
Unit.dp.addition = 0.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
config.hideStatusBar = true;
|
config.hideStatusBar = true;
|
||||||
Net.setClientProvider(new KryoClient());
|
Net.setClientProvider(new ArcNetClient());
|
||||||
Net.setServerProvider(new KryoServer());
|
Net.setServerProvider(new ArcNetServer());
|
||||||
initialize(new Mindustry(), config);
|
initialize(new Mindustry(), config);
|
||||||
checkFiles(getIntent());
|
checkFiles(getIntent());
|
||||||
}
|
}
|
||||||
@@ -172,7 +156,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
SaveSlot slot = control.saves.importSave(file);
|
SaveSlot slot = control.saves.importSave(file);
|
||||||
ui.load.runLoadSave(slot);
|
ui.load.runLoadSave(slot);
|
||||||
}catch(IOException e){
|
}catch(IOException e){
|
||||||
ui.showError(Core.bundle.format("save.import.fail", Strings.parseException(e, false)));
|
ui.showError(Core.bundle.format("save.import.fail", Strings.parseException(e, true)));
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
ui.showError("$save.import.invalid");
|
ui.showError("$save.import.invalid");
|
||||||
@@ -195,22 +179,8 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPackageInstalled(String packagename){
|
|
||||||
try{
|
|
||||||
getPackageManager().getPackageInfo(packagename, 0);
|
|
||||||
return true;
|
|
||||||
}catch(Exception e){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isTablet(Context context){
|
private boolean isTablet(Context context){
|
||||||
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
|
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
return manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
|
return manager != null && manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
|
||||||
}
|
|
||||||
|
|
||||||
private void showDonations(){
|
|
||||||
Intent intent = new Intent(this, DonationsActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
package io.anuke.mindustry;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentActivity;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
import org.sufficientlysecure.donations.DonationsFragment;
|
|
||||||
|
|
||||||
public class DonationsActivity extends FragmentActivity{
|
|
||||||
/**
|
|
||||||
* Google
|
|
||||||
*/
|
|
||||||
private static final String GOOGLE_PUBKEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzG93KhpfBPKTo2jF0yxbWkkmMKwsPNM4SsMj1aDq7vv6n3R+mqJVfprOJxFfJh7JchXTflLIgiaKXFAiU70gJbMTniEWnEaFSxAeF09a7U0RjOwN+7rFwjCG91c2CpYxPanBTQP4zasc1ODPVzq4q6/4ByjhenN71V4WmR08NFIAodcfFPrOkDPil7i8y7cgcd1Ky53U0TS+LLYJttAK3XdTK4s7VE3I5IKoeNa4uwCmIM59R67q2k3cXjLk/nP6MP+y++EzHN/PTiR1sVg4dMP8K31RPw/1QNLPQwJz6Wc872oWwb7xo5gkoXbDc5WPPydsi8F3SyKNaYwzN6CDFQIDAQAB";
|
|
||||||
private static final String[] GOOGLE_CATALOG = new String[]{
|
|
||||||
"mindustry.donation.1", "mindustry.donation.2", "mindustry.donation.5",
|
|
||||||
"mindustry.donation.10", "mindustry.donation.15",
|
|
||||||
"mindustry.donation.25", "mindustry.donation.50"};
|
|
||||||
DonationsFragment donationsFragment;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the activity is first created.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState){
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
setTheme(R.style.GdxTheme);
|
|
||||||
|
|
||||||
setContentView(R.layout.donations_activity);
|
|
||||||
|
|
||||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
|
||||||
if(BuildConfig.DONATIONS_GOOGLE){
|
|
||||||
donationsFragment = DonationsFragment.newInstance(BuildConfig.DEBUG, true, GOOGLE_PUBKEY, GOOGLE_CATALOG,
|
|
||||||
getResources().getStringArray(R.array.donation_google_catalog_values), false, null, null,
|
|
||||||
null, false, null, null, false, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ft.replace(R.id.donations_activity_container, donationsFragment, "donationsFragment");
|
|
||||||
ft.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onStart(){
|
|
||||||
super.onStart();
|
|
||||||
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
|
||||||
b.setOnClickListener(view -> {
|
|
||||||
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
|
|
||||||
b.setEnabled(false);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Needed for Google Play In-app Billing. It uses startIntentSenderForResult(). The result is not propagated to
|
|
||||||
* the Fragment like in startActivityForResult(). Thus we need to propagate manually to our Fragment.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data){
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
|
||||||
b.setEnabled(true);
|
|
||||||
|
|
||||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
|
||||||
Fragment fragment = fragmentManager.findFragmentByTag("donationsFragment");
|
|
||||||
if(fragment != null){
|
|
||||||
fragment.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,30 @@
|
|||||||
package io.anuke.annotations;
|
package io.anuke.annotations;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.*;
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
public class Annotations{
|
public class Annotations{
|
||||||
|
|
||||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
/** Indicates that a method should always call its super version. */
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
public @interface CallSuper{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Annotation that allows overriding CallSuper annotation. To be used on method that overrides method with CallSuper annotation from parent class.*/
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
public @interface OverrideCallSuper {
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Indicates that a method return or field can be null.*/
|
||||||
|
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface Nullable{
|
public @interface Nullable{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Indicates that a method return or field cannot be null.*/
|
||||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface NonNull{
|
public @interface NonNull{
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package io.anuke.annotations;
|
||||||
|
|
||||||
|
import com.sun.source.util.TreePath;
|
||||||
|
import com.sun.source.util.Trees;
|
||||||
|
import com.sun.tools.javac.tree.JCTree;
|
||||||
|
import com.sun.tools.javac.tree.JCTree.JCExpressionStatement;
|
||||||
|
import io.anuke.annotations.Annotations.OverrideCallSuper;
|
||||||
|
|
||||||
|
import javax.annotation.processing.*;
|
||||||
|
import javax.lang.model.SourceVersion;
|
||||||
|
import javax.lang.model.element.Element;
|
||||||
|
import javax.lang.model.element.TypeElement;
|
||||||
|
import javax.tools.Diagnostic.Kind;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@SupportedAnnotationTypes("java.lang.Override")
|
||||||
|
public class CallSuperAnnotationProcessor extends AbstractProcessor{
|
||||||
|
private Trees trees;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init (ProcessingEnvironment pe) {
|
||||||
|
super.init(pe);
|
||||||
|
trees = Trees.instance(pe);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean process (Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
|
||||||
|
for (Element e : roundEnv.getElementsAnnotatedWith(Override.class)) {
|
||||||
|
if (e.getAnnotation(OverrideCallSuper.class) != null) return false;
|
||||||
|
|
||||||
|
CodeAnalyzerTreeScanner codeScanner = new CodeAnalyzerTreeScanner();
|
||||||
|
codeScanner.setMethodName(e.getSimpleName().toString());
|
||||||
|
|
||||||
|
TreePath tp = trees.getPath(e.getEnclosingElement());
|
||||||
|
codeScanner.scan(tp, trees);
|
||||||
|
|
||||||
|
if (codeScanner.isCallSuperUsed()) {
|
||||||
|
List list = codeScanner.getMethod().getBody().getStatements();
|
||||||
|
|
||||||
|
if (!doesCallSuper(list, codeScanner.getMethodName())) {
|
||||||
|
processingEnv.getMessager().printMessage(Kind.ERROR, "Overriding method '" + codeScanner.getMethodName() + "' must explicitly call super method from its parent class.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean doesCallSuper (List list, String methodName) {
|
||||||
|
for (Object object : list) {
|
||||||
|
if (object instanceof JCTree.JCExpressionStatement) {
|
||||||
|
JCTree.JCExpressionStatement expr = (JCExpressionStatement) object;
|
||||||
|
String exprString = expr.toString();
|
||||||
|
if (exprString.startsWith("super." + methodName) && exprString.endsWith(");")) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SourceVersion getSupportedSourceVersion () {
|
||||||
|
return SourceVersion.RELEASE_8;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
package io.anuke.annotations;
|
package io.anuke.annotations;
|
||||||
|
|
||||||
import io.anuke.annotations.MethodEntry;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/** Represents a class witha list method entries to include in it. */
|
/** Represents a class witha list method entries to include in it. */
|
||||||
|
|||||||
@@ -0,0 +1,98 @@
|
|||||||
|
package io.anuke.annotations;
|
||||||
|
|
||||||
|
import com.sun.source.tree.*;
|
||||||
|
import com.sun.source.util.TreePathScanner;
|
||||||
|
import com.sun.source.util.Trees;
|
||||||
|
import com.sun.tools.javac.code.Scope;
|
||||||
|
import com.sun.tools.javac.code.Symbol;
|
||||||
|
import com.sun.tools.javac.code.Symbol.MethodSymbol;
|
||||||
|
import com.sun.tools.javac.code.Type.ClassType;
|
||||||
|
import com.sun.tools.javac.tree.JCTree.JCIdent;
|
||||||
|
import com.sun.tools.javac.tree.JCTree.JCTypeApply;
|
||||||
|
import io.anuke.annotations.Annotations.CallSuper;
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
|
||||||
|
class CodeAnalyzerTreeScanner extends TreePathScanner<Object, Trees> {
|
||||||
|
private String methodName;
|
||||||
|
private MethodTree method;
|
||||||
|
private boolean callSuperUsed;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object visitClass (ClassTree classTree, Trees trees) {
|
||||||
|
Tree extendTree = classTree.getExtendsClause();
|
||||||
|
|
||||||
|
if (extendTree instanceof JCTypeApply) { //generic classes case
|
||||||
|
JCTypeApply generic = (JCTypeApply) extendTree;
|
||||||
|
extendTree = generic.clazz;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extendTree instanceof JCIdent) {
|
||||||
|
JCIdent tree = (JCIdent) extendTree;
|
||||||
|
Scope members = tree.sym.members();
|
||||||
|
|
||||||
|
if (checkScope(members))
|
||||||
|
return super.visitClass(classTree, trees);
|
||||||
|
|
||||||
|
if (checkSuperTypes((ClassType) tree.type))
|
||||||
|
return super.visitClass(classTree, trees);
|
||||||
|
|
||||||
|
}
|
||||||
|
callSuperUsed = false;
|
||||||
|
|
||||||
|
return super.visitClass(classTree, trees);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkSuperTypes (ClassType type) {
|
||||||
|
if (type.supertype_field != null && type.supertype_field.tsym != null) {
|
||||||
|
if (checkScope(type.supertype_field.tsym.members()))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return checkSuperTypes((ClassType) type.supertype_field);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkScope (Scope members) {
|
||||||
|
for (Symbol s : members.getElements()) {
|
||||||
|
if (s instanceof MethodSymbol) {
|
||||||
|
MethodSymbol ms = (MethodSymbol) s;
|
||||||
|
|
||||||
|
if (ms.getSimpleName().toString().equals(methodName)) {
|
||||||
|
Annotation annotation = ms.getAnnotation(CallSuper.class);
|
||||||
|
if (annotation != null) {
|
||||||
|
callSuperUsed = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object visitMethod (MethodTree methodTree, Trees trees) {
|
||||||
|
if (methodTree.getName().toString().equals(methodName))
|
||||||
|
method = methodTree;
|
||||||
|
|
||||||
|
return super.visitMethod(methodTree, trees);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMethodName (String methodName) {
|
||||||
|
this.methodName = methodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMethodName () {
|
||||||
|
return methodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MethodTree getMethod () {
|
||||||
|
return method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCallSuperUsed () {
|
||||||
|
return callSuperUsed;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
package io.anuke.annotations;
|
package io.anuke.annotations;
|
||||||
|
|
||||||
import io.anuke.annotations.Annotations.Loc;
|
import io.anuke.annotations.Annotations.*;
|
||||||
import io.anuke.annotations.Annotations.PacketPriority;
|
|
||||||
import io.anuke.annotations.Annotations.Variant;
|
|
||||||
|
|
||||||
import javax.lang.model.element.ExecutableElement;
|
import javax.lang.model.element.ExecutableElement;
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,13 @@
|
|||||||
package io.anuke.annotations;
|
package io.anuke.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.FieldSpec;
|
import com.squareup.javapoet.*;
|
||||||
import com.squareup.javapoet.JavaFile;
|
|
||||||
import com.squareup.javapoet.TypeSpec;
|
|
||||||
import io.anuke.annotations.Annotations.Loc;
|
import io.anuke.annotations.Annotations.Loc;
|
||||||
import io.anuke.annotations.Annotations.Remote;
|
import io.anuke.annotations.Annotations.Remote;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import io.anuke.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
import javax.lang.model.element.Element;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.element.ExecutableElement;
|
|
||||||
import javax.lang.model.element.Modifier;
|
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|||||||
@@ -3,9 +3,7 @@ package io.anuke.annotations;
|
|||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import io.anuke.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.lang.model.element.Modifier;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
import javax.lang.model.element.VariableElement;
|
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
@@ -25,7 +23,6 @@ public class RemoteReadGenerator{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a class for reading remote invoke packets.
|
* Generates a class for reading remote invoke packets.
|
||||||
*
|
|
||||||
* @param entries List of methods to use.
|
* @param entries List of methods to use.
|
||||||
* @param className Simple target class name.
|
* @param className Simple target class name.
|
||||||
* @param packageName Full target package name.
|
* @param packageName Full target package name.
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import com.squareup.javapoet.*;
|
|||||||
import io.anuke.annotations.Annotations.Loc;
|
import io.anuke.annotations.Annotations.Loc;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import io.anuke.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.lang.model.element.ExecutableElement;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.element.Modifier;
|
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
import javax.lang.model.element.VariableElement;
|
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|||||||
@@ -5,21 +5,15 @@ import io.anuke.annotations.Annotations.Serialize;
|
|||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
import javax.lang.model.element.Modifier;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
import javax.lang.model.element.VariableElement;
|
|
||||||
import javax.lang.model.util.ElementFilter;
|
import javax.lang.model.util.ElementFilter;
|
||||||
import java.io.DataInput;
|
import java.io.*;
|
||||||
import java.io.DataOutput;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes({
|
@SupportedAnnotationTypes("io.anuke.annotations.Annotations.Serialize")
|
||||||
"io.anuke.annotations.Annotations.Serialize"
|
|
||||||
})
|
|
||||||
public class SerializeAnnotationProcessor extends AbstractProcessor{
|
public class SerializeAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Target class name. */
|
/** Target class name. */
|
||||||
private static final String className = "Serialization";
|
private static final String className = "Serialization";
|
||||||
@@ -48,10 +42,13 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
|
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
|
||||||
classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build());
|
classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build());
|
||||||
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
||||||
|
|
||||||
|
|
||||||
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
for(TypeElement elem : elements){
|
for(TypeElement elem : elements){
|
||||||
TypeName type = TypeName.get(elem.asType());
|
TypeName type = TypeName.get(elem.asType());
|
||||||
|
String simpleTypeName = type.toString().substring(type.toString().lastIndexOf('.') + 1);
|
||||||
|
|
||||||
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
||||||
.addSuperinterface(ParameterizedTypeName.get(
|
.addSuperinterface(ParameterizedTypeName.get(
|
||||||
@@ -74,7 +71,8 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
|
|
||||||
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
|
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
|
||||||
for(VariableElement field : fields){
|
for(VariableElement field : fields){
|
||||||
if(field.getModifiers().contains(Modifier.STATIC) || field.getModifiers().contains(Modifier.TRANSIENT) || field.getModifiers().contains(Modifier.PRIVATE)) continue;
|
if(field.getModifiers().contains(Modifier.STATIC) || field.getModifiers().contains(Modifier.TRANSIENT) || field.getModifiers().contains(Modifier.PRIVATE))
|
||||||
|
continue;
|
||||||
|
|
||||||
String name = field.getSimpleName().toString();
|
String name = field.getSimpleName().toString();
|
||||||
String typeName = Utils.typeUtils.erasure(field.asType()).toString().replace('$', '.');
|
String typeName = Utils.typeUtils.erasure(field.asType()).toString().replace('$', '.');
|
||||||
@@ -96,10 +94,8 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
|
|
||||||
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
||||||
|
|
||||||
String sname = type.toString().substring(type.toString().lastIndexOf('.') + 1);
|
name(writeMethod, "write" + simpleTypeName);
|
||||||
|
name(readMethod, "read" + simpleTypeName);
|
||||||
name(writeMethod, "write" + sname);
|
|
||||||
name(readMethod, "read" + sname);
|
|
||||||
|
|
||||||
writeMethod.addModifiers(Modifier.STATIC);
|
writeMethod.addModifiers(Modifier.STATIC);
|
||||||
readMethod.addModifiers(Modifier.STATIC);
|
readMethod.addModifiers(Modifier.STATIC);
|
||||||
|
|||||||
@@ -1,25 +1,22 @@
|
|||||||
package io.anuke.annotations;
|
package io.anuke.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.JavaFile;
|
import com.squareup.javapoet.*;
|
||||||
import com.squareup.javapoet.MethodSpec;
|
|
||||||
import com.squareup.javapoet.TypeName;
|
|
||||||
import com.squareup.javapoet.TypeSpec;
|
|
||||||
import io.anuke.annotations.Annotations.Struct;
|
import io.anuke.annotations.Annotations.Struct;
|
||||||
import io.anuke.annotations.Annotations.StructField;
|
import io.anuke.annotations.Annotations.StructField;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
import javax.lang.model.element.Modifier;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
import javax.lang.model.element.VariableElement;
|
|
||||||
import javax.lang.model.type.TypeKind;
|
import javax.lang.model.type.TypeKind;
|
||||||
import javax.lang.model.util.ElementFilter;
|
import javax.lang.model.util.ElementFilter;
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**Generates ""value types"" classes that are packed into integer primitives of the most aproppriate size.
|
/**
|
||||||
* It would be nice if Java didn't make crazy hacks like this necessary.*/
|
* Generates ""value types"" classes that are packed into integer primitives of the most aproppriate size.
|
||||||
|
* It would be nice if Java didn't make crazy hacks like this necessary.
|
||||||
|
*/
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes({
|
@SupportedAnnotationTypes({
|
||||||
"io.anuke.annotations.Annotations.Struct"
|
"io.anuke.annotations.Annotations.Struct"
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
io.anuke.annotations.RemoteMethodAnnotationProcessor
|
io.anuke.annotations.RemoteMethodAnnotationProcessor
|
||||||
io.anuke.annotations.SerializeAnnotationProcessor
|
io.anuke.annotations.SerializeAnnotationProcessor
|
||||||
io.anuke.annotations.StructAnnotationProcessor
|
io.anuke.annotations.StructAnnotationProcessor
|
||||||
|
io.anuke.annotations.CallSuperAnnotationProcessor
|
||||||
33
build.gradle
@@ -15,8 +15,6 @@ buildscript{
|
|||||||
}
|
}
|
||||||
|
|
||||||
allprojects{
|
allprojects{
|
||||||
apply plugin: "idea"
|
|
||||||
|
|
||||||
version = 'release'
|
version = 'release'
|
||||||
|
|
||||||
ext{
|
ext{
|
||||||
@@ -29,7 +27,7 @@ allprojects{
|
|||||||
arcHash = null
|
arcHash = null
|
||||||
|
|
||||||
debugged = {
|
debugged = {
|
||||||
return new File(projectDir.parent, '../debug').exists() && !project.hasProperty("release")
|
return new File(projectDir.parent, '../debug').exists() && !project.hasProperty("release") && project.hasProperty("args")
|
||||||
}
|
}
|
||||||
|
|
||||||
localArc = {
|
localArc = {
|
||||||
@@ -37,7 +35,7 @@ allprojects{
|
|||||||
}
|
}
|
||||||
|
|
||||||
getArcHash = {
|
getArcHash = {
|
||||||
//get latest commit hash from gtihub since JITPack's '-snapshot' version doesn't work correctly
|
//get latest commit hash from github since JITPack's '-snapshot' version doesn't work correctly
|
||||||
if(arcHash == null){
|
if(arcHash == null){
|
||||||
try{
|
try{
|
||||||
arcHash = 'git ls-remote https://github.com/Anuken/Arc.git'.execute().text.split("\t")[0]
|
arcHash = 'git ls-remote https://github.com/Anuken/Arc.git'.execute().text.split("\t")[0]
|
||||||
@@ -89,7 +87,8 @@ allprojects{
|
|||||||
|
|
||||||
try{
|
try{
|
||||||
pfile.createNewFile()
|
pfile.createNewFile()
|
||||||
}catch(Exception ignored){}
|
}catch(Exception ignored){
|
||||||
|
}
|
||||||
|
|
||||||
if(pfile.exists()){
|
if(pfile.exists()){
|
||||||
props.load(new FileInputStream(pfile))
|
props.load(new FileInputStream(pfile))
|
||||||
@@ -112,7 +111,10 @@ allprojects{
|
|||||||
maven{ url "https://oss.sonatype.org/content/repositories/snapshots/" }
|
maven{ url "https://oss.sonatype.org/content/repositories/snapshots/" }
|
||||||
maven{ url "https://oss.sonatype.org/content/repositories/releases/" }
|
maven{ url "https://oss.sonatype.org/content/repositories/releases/" }
|
||||||
maven{ url 'https://jitpack.io' }
|
maven{ url 'https://jitpack.io' }
|
||||||
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType(Javadoc).all{ enabled = false }
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":desktop"){
|
project(":desktop"){
|
||||||
@@ -128,7 +130,7 @@ project(":desktop"){
|
|||||||
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
||||||
|
|
||||||
compile arcModule("backends:backend-lwjgl3")
|
compile arcModule("backends:backend-lwjgl3")
|
||||||
compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.0'
|
compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.2'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,10 +172,12 @@ project(":ios"){
|
|||||||
project(":core"){
|
project(":core"){
|
||||||
apply plugin: "java"
|
apply plugin: "java"
|
||||||
|
|
||||||
task finish{
|
task preGen{
|
||||||
generateLocales()
|
generateLocales()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies{
|
||||||
|
if(System.properties["user.name"] == "anuke"){
|
||||||
task cleanGen{
|
task cleanGen{
|
||||||
doFirst{
|
doFirst{
|
||||||
delete{
|
delete{
|
||||||
@@ -185,7 +189,7 @@ project(":core"){
|
|||||||
task copyGen{
|
task copyGen{
|
||||||
doLast{
|
doLast{
|
||||||
copy{
|
copy{
|
||||||
from("../core/build/classes/java/main/io/anuke/mindustry/gen/"){
|
from("../core/build/generated/sources/annotationProcessor/java/main/io/anuke/mindustry/gen"){
|
||||||
include "**/*.java"
|
include "**/*.java"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,12 +198,15 @@ project(":core"){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies{
|
|
||||||
compileJava.dependsOn(cleanGen)
|
compileJava.dependsOn(cleanGen)
|
||||||
compileJava.finalizedBy(copyGen)
|
compileJava.finalizedBy(copyGen)
|
||||||
|
}
|
||||||
|
|
||||||
|
compileJava.dependsOn(preGen)
|
||||||
|
|
||||||
compile arcModule("arc-core")
|
compile arcModule("arc-core")
|
||||||
compile arcModule("extensions:freetype")
|
compile arcModule("extensions:freetype")
|
||||||
|
compile arcModule("extensions:arcnet")
|
||||||
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
||||||
|
|
||||||
compileOnly project(":annotations")
|
compileOnly project(":annotations")
|
||||||
@@ -239,6 +246,12 @@ project(":tools"){
|
|||||||
|
|
||||||
dependencies{
|
dependencies{
|
||||||
compile project(":core")
|
compile project(":core")
|
||||||
|
|
||||||
|
//for render tests
|
||||||
|
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
||||||
|
|
||||||
|
compile arcModule("backends:backend-lwjgl3")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,6 +260,7 @@ project(":annotations"){
|
|||||||
|
|
||||||
dependencies{
|
dependencies{
|
||||||
compile 'com.squareup:javapoet:1.11.0'
|
compile 'com.squareup:javapoet:1.11.0'
|
||||||
|
compile files("${System.getProperty('java.home')}/../lib/tools.jar")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,7 +270,6 @@ project(":net"){
|
|||||||
dependencies{
|
dependencies{
|
||||||
compile project(":core")
|
compile project(":core")
|
||||||
compile "org.lz4:lz4-java:1.4.1"
|
compile "org.lz4:lz4-java:1.4.1"
|
||||||
compile 'com.github.Anuken:kryonet:a64d2280880e80566ca1bdaffa55de43e51cad38'
|
|
||||||
compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893'
|
compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 1018 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 1.8 KiB |
BIN
core/assets-raw/sprites/blocks/distribution/bridge-arrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 93 B After Width: | Height: | Size: 123 B |
|
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 1.7 KiB |
BIN
core/assets-raw/sprites/blocks/distribution/center.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 97 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 106 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 133 B After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 115 B After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 852 B |
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 88 B After Width: | Height: | Size: 116 B |
|
Before Width: | Height: | Size: 78 B After Width: | Height: | Size: 101 B |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 800 B |
|
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 474 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 135 B After Width: | Height: | Size: 3.5 KiB |