Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
beaa1da276 | ||
|
|
a378c35fb6 | ||
|
|
69ed90bb9d | ||
|
|
e337452d46 | ||
|
|
9f70386466 | ||
|
|
e7de4e1a10 | ||
|
|
4cc15b84f6 | ||
|
|
f3bfa418a5 | ||
|
|
663b0b8737 | ||
|
|
3a54813513 | ||
|
|
3e43d88374 | ||
|
|
580f8f5217 | ||
|
|
067c720a88 | ||
|
|
2541682bee | ||
|
|
78921a064e | ||
|
|
92d53b01fc | ||
|
|
8f1a4c5541 | ||
|
|
e2ccb6ea96 | ||
|
|
2f3a3979a4 | ||
|
|
9f065cea59 | ||
|
|
d2c5e09413 | ||
|
|
1cc5d54fde | ||
|
|
4ef2a6d81e | ||
|
|
be14e4173e | ||
|
|
c58aac5f67 | ||
|
|
cada4b2543 | ||
|
|
ccc5bebc3b | ||
|
|
8b80186320 | ||
|
|
1e8317fbac | ||
|
|
6500b5b6de | ||
|
|
eff677e112 | ||
|
|
543dae701c | ||
|
|
ec2bc54339 | ||
|
|
ca2c51896d | ||
|
|
c640ae21ad | ||
|
|
b8f392a116 | ||
|
|
bfa31bf184 | ||
|
|
088486c1ad | ||
|
|
acf891e419 | ||
|
|
ca90af5f56 | ||
|
|
45b82b9fa2 | ||
|
|
22cf431170 | ||
|
|
b513d92456 | ||
|
|
b3be63437e | ||
|
|
c801b625ac | ||
|
|
0bbc4c6777 | ||
|
|
4eed142ccc | ||
|
|
42ec5c9685 | ||
|
|
ca9876544e | ||
|
|
73d5865908 | ||
|
|
f474eab926 | ||
|
|
b76147ec50 | ||
|
|
22ca0ce33f | ||
|
|
4368c6e60e | ||
|
|
7591c51b60 | ||
|
|
93c88fea8c | ||
|
|
9de4deed37 | ||
|
|
254fd3e28d | ||
|
|
9a886aa582 | ||
|
|
a51047a80d | ||
|
|
55dba0c156 | ||
|
|
a98a7ba227 | ||
|
|
56348b3e31 | ||
|
|
89527f879b | ||
|
|
78646f512e | ||
|
|
fd4eac0f81 | ||
|
|
60cc6a1839 | ||
|
|
3d56fefb51 | ||
|
|
a5c178ae5a | ||
|
|
06163708bd | ||
|
|
137c6201c0 | ||
|
|
a341cff83f | ||
|
|
7501697f02 | ||
|
|
776214f7bb | ||
|
|
6df25c8308 | ||
|
|
ab51304dd6 | ||
|
|
e751e240db | ||
|
|
e675535cb7 | ||
|
|
84cdf2bbfe | ||
|
|
6f4914d5cb | ||
|
|
c7945610ee | ||
|
|
c6512c0b00 | ||
|
|
cc5a63109a | ||
|
|
43aa0d95f5 | ||
|
|
42ad617bbd | ||
|
|
e433d5f334 | ||
|
|
0ac15152d8 | ||
|
|
4af4824ad0 | ||
|
|
83b93eafbb | ||
|
|
7f8f08d2c5 | ||
|
|
85e6db44c1 | ||
|
|
b430eaa239 | ||
|
|
889c581d73 | ||
|
|
6163278161 | ||
|
|
ae9bb643e4 | ||
|
|
2af44b5f5e | ||
|
|
00ee86a1b7 | ||
|
|
9e4d2e67d2 | ||
|
|
34fa2bc52a | ||
|
|
da4be8f848 | ||
|
|
acd8682f40 | ||
|
|
0e3ca1d2c6 | ||
|
|
7c5f29e6fb | ||
|
|
760fcb2e23 | ||
|
|
ded8eb762f | ||
|
|
ef5d3cb26b | ||
|
|
b3317f3d4d | ||
|
|
63b2069e96 | ||
|
|
52232dc2ee | ||
|
|
64bc6d3ac0 | ||
|
|
124dcc67aa | ||
|
|
2276f471f2 | ||
|
|
2837f2cad2 | ||
|
|
6407a48973 | ||
|
|
f02d919b64 | ||
|
|
5566674c29 | ||
|
|
80a99eb031 | ||
|
|
cfe01850aa | ||
|
|
48158883c1 | ||
|
|
d71be5ecb1 | ||
|
|
1ba71a14f7 | ||
|
|
12157feeca | ||
|
|
200f4d42be | ||
|
|
201f606383 | ||
|
|
cf8b1c6b34 | ||
|
|
04452e6ba8 | ||
|
|
9ca00b5935 | ||
|
|
05999c9759 | ||
|
|
d23f113806 | ||
|
|
cc36b51bad | ||
|
|
3787b6308c | ||
|
|
7e2d57247d | ||
|
|
80a2eef239 | ||
|
|
16ee499f75 | ||
|
|
a9ff32df12 | ||
|
|
37c1b6ac1e | ||
|
|
54e5f3bcf6 | ||
|
|
2290685999 | ||
|
|
f3cbb54af5 | ||
|
|
85446f3284 | ||
|
|
ba93ccfc3e | ||
|
|
a1e7aad19d | ||
|
|
9d07ba06ab | ||
|
|
5a0c4bfc41 | ||
|
|
58ed13fc96 | ||
|
|
1f6c9eac65 | ||
|
|
bf3d400ca5 | ||
|
|
e37c2f1ec2 | ||
|
|
d95a3ef6aa | ||
|
|
c2f7bddb0f | ||
|
|
ec656a63eb | ||
|
|
06f2dc7032 | ||
|
|
0e5189e1b7 | ||
|
|
c477c767c5 | ||
|
|
c81d0eb025 | ||
|
|
7494e9a1a8 | ||
|
|
ccf6b81ed6 | ||
|
|
171899596f | ||
|
|
953c58fc49 | ||
|
|
ec4fe559f5 | ||
|
|
8079274531 | ||
|
|
ca3c0f30b8 | ||
|
|
a7955970ff | ||
|
|
dbbd03f4cd | ||
|
|
788ead37fb | ||
|
|
83dd62f2ad | ||
|
|
5ee6debb2a | ||
|
|
07a080931d | ||
|
|
0c44604a0f | ||
|
|
a9dfed098a | ||
|
|
71aa9230bf | ||
|
|
666978f9e1 | ||
|
|
9fe9344dfd | ||
|
|
f2e1e2ad4f | ||
|
|
ca6b369b85 | ||
|
|
ef65b1f5b3 | ||
|
|
962a3d859f | ||
|
|
daf36fc2a2 | ||
|
|
52a10f6898 | ||
|
|
a8b1dda1a1 | ||
|
|
dbd527dbdf | ||
|
|
ddbdfbb447 | ||
|
|
fda8db5562 | ||
|
|
b515773fbf | ||
|
|
a5dc717ff9 | ||
|
|
13bc8aa881 | ||
|
|
f958406e5e | ||
|
|
3ebd0c9f4f | ||
|
|
66e47fdc57 | ||
|
|
33bc4c9e6f | ||
|
|
a360416946 | ||
|
|
95f600e87a | ||
|
|
c492376c87 | ||
|
|
53b9d15993 | ||
|
|
115551b4f4 | ||
|
|
9e95a4bbc4 | ||
|
|
fa59008448 | ||
|
|
a298ccfd45 | ||
|
|
ee6c9ae1ab | ||
|
|
8238b9d2c1 | ||
|
|
49dbd44604 | ||
|
|
553c2beeea | ||
|
|
7c0f19a520 | ||
|
|
cbf0025712 | ||
|
|
5af84b4ad5 | ||
|
|
0bb475a54d | ||
|
|
db8d9669c2 | ||
|
|
f7ededb3a1 | ||
|
|
69257a2eb4 | ||
|
|
2b3fee983c | ||
|
|
e4045fb8a5 | ||
|
|
6ef175cb29 | ||
|
|
63e839c67c | ||
|
|
ccae400bcf | ||
|
|
dc75f996b0 | ||
|
|
e567777179 | ||
|
|
667907009d | ||
|
|
b9189a5570 | ||
|
|
fac33d08d7 | ||
|
|
182db13909 | ||
|
|
d2ee7cdf42 | ||
|
|
cf41adda2b | ||
|
|
5720f8b9b6 | ||
|
|
b8917ff608 | ||
|
|
b3e8aa9294 | ||
|
|
69cb000395 | ||
|
|
e115a4a0a0 | ||
|
|
01fcc9d674 | ||
|
|
664b7a3e45 | ||
|
|
aeba3e1f63 | ||
|
|
27d7a2917e | ||
|
|
023a4ff1ae | ||
|
|
7509cb1375 | ||
|
|
bc3a701b93 | ||
|
|
6be1d664b0 | ||
|
|
aa929b9c61 | ||
|
|
2504e6a93c | ||
|
|
0d5c83f928 | ||
|
|
79c314a983 | ||
|
|
0352ae9bf3 | ||
|
|
ae291be0a1 | ||
|
|
7e80948b58 | ||
|
|
dcc54faa93 | ||
|
|
1f5fe1ae13 | ||
|
|
6deaea5356 | ||
|
|
7f009df50f | ||
|
|
e69d827f72 | ||
|
|
b4cd02137d | ||
|
|
f7f002b786 | ||
|
|
2564190ae3 | ||
|
|
6732c14779 | ||
|
|
76877127b8 | ||
|
|
6cccf21960 | ||
|
|
b934bfc4f1 | ||
|
|
25fe0cc9f9 | ||
|
|
06d527a7ca | ||
|
|
e386a2c85b | ||
|
|
42ce901da2 | ||
|
|
616cc98098 | ||
|
|
87c5e27f50 | ||
|
|
3271d9d72e | ||
|
|
87d27b3070 | ||
|
|
df06d44c19 | ||
|
|
8b965dd872 | ||
|
|
01849ef1b3 | ||
|
|
0ac6fcca16 | ||
|
|
c48b239de0 | ||
|
|
da3b3358cd | ||
|
|
8538190e80 | ||
|
|
4df53b8e04 | ||
|
|
06dd6d98b2 | ||
|
|
e87793968a | ||
|
|
0dcad1261c | ||
|
|
d6fd7a0977 | ||
|
|
97a438cab3 | ||
|
|
48e56fcd7b | ||
|
|
81e18df994 | ||
|
|
12d7492708 | ||
|
|
efa856226d | ||
|
|
3b0548d42e | ||
|
|
cf4a69cb33 | ||
|
|
37bf2d8c2d | ||
|
|
66d80f8b8c | ||
|
|
c3c231ff6c | ||
|
|
0de5cb7e6b | ||
|
|
124640e23a | ||
|
|
e46deae1b1 | ||
|
|
19322f91f5 | ||
|
|
168dcb1dd2 | ||
|
|
48978acc47 | ||
|
|
eb4d7f1de6 | ||
|
|
da16465961 | ||
|
|
25b42157a9 | ||
|
|
2fa2fc9bf1 | ||
|
|
b452ac48f7 | ||
|
|
0e956a1f8e | ||
|
|
460debfa0c | ||
|
|
adbb931d93 | ||
|
|
f4307e8db3 | ||
|
|
60c35280f1 | ||
|
|
b843a50c4b | ||
|
|
19544d1e51 | ||
|
|
8b4cf3e3be | ||
|
|
8824d36dd2 | ||
|
|
ea7a69c637 | ||
|
|
cb3fd27cce | ||
|
|
6e19c7e6e5 | ||
|
|
be25b94242 | ||
|
|
d16ec09793 | ||
|
|
4db3cd713c | ||
|
|
8553bb7ecc | ||
|
|
12a22933dc | ||
|
|
9d49b58571 | ||
|
|
f29235ebf3 | ||
|
|
f761cdc79a | ||
|
|
a750252c02 | ||
|
|
456adc6a4f | ||
|
|
89587e378b | ||
|
|
19186c677c | ||
|
|
c1c4781f22 | ||
|
|
db54e4f350 | ||
|
|
4be3f27d5c | ||
|
|
a1975a40b6 | ||
|
|
5112fb9a0e | ||
|
|
e2cecffec3 | ||
|
|
3f65bdd383 | ||
|
|
98cec2df46 | ||
|
|
e6b66673a3 | ||
|
|
756439ce66 | ||
|
|
84b3c3d809 | ||
|
|
332cd6d118 | ||
|
|
77e2ce7274 | ||
|
|
6ed7a905a4 | ||
|
|
f92db080ed | ||
|
|
02dea62c26 | ||
|
|
dc32943612 | ||
|
|
e981ce8faf | ||
|
|
0699ae305e | ||
|
|
2ebd548170 | ||
|
|
b05d9a11f1 | ||
|
|
e488a79096 | ||
|
|
428785494d | ||
|
|
7efe3b2ea7 | ||
|
|
894bab4ecd | ||
|
|
d69229a333 | ||
|
|
7ecd2f4249 | ||
|
|
17f3d89300 | ||
|
|
82ac6a98a5 | ||
|
|
27ba9d7cd2 | ||
|
|
0194398a81 | ||
|
|
a4974ec8e3 | ||
|
|
3086ea6ecf | ||
|
|
872e967a12 | ||
|
|
727dacf9bb | ||
|
|
d5218ad160 | ||
|
|
7517d89964 | ||
|
|
f5d06edefc | ||
|
|
6ce1a323ab | ||
|
|
5184b5e6e1 | ||
|
|
ce6e4f02e0 | ||
|
|
e130c34a61 | ||
|
|
71f4ec957f | ||
|
|
9d6379dbf8 | ||
|
|
809cf8baad | ||
|
|
da911f3877 | ||
|
|
ff580d8a06 | ||
|
|
d38ec52faa | ||
|
|
abebad2f5f | ||
|
|
e8bf80a1d2 | ||
|
|
f695ad7e60 | ||
|
|
58d1c3265e | ||
|
|
774b2b64d3 | ||
|
|
099971d8f6 | ||
|
|
275d357b6c | ||
|
|
11d79aceec | ||
|
|
f6fa8fb326 | ||
|
|
6b849a4017 | ||
|
|
8ac7087adf | ||
|
|
9cb67b15da | ||
|
|
313e80448a | ||
|
|
be90286451 | ||
|
|
0f444a8ad7 | ||
|
|
c5d6814c50 | ||
|
|
491cd90af8 | ||
|
|
fb1cde88d8 | ||
|
|
a1fe1f7a9e | ||
|
|
d27480312a | ||
|
|
43d3aa6460 | ||
|
|
a819f80520 | ||
|
|
5c7e462e9c | ||
|
|
92219de5b7 | ||
|
|
02e789687d | ||
|
|
3f3c0d4911 | ||
|
|
ab0cc53ae7 | ||
|
|
e7d214d43b | ||
|
|
a5c6b9d240 | ||
|
|
ec02e87d94 | ||
|
|
90eb03cf78 | ||
|
|
4aa0c64567 | ||
|
|
c800574c4c | ||
|
|
1c4245d070 | ||
|
|
59ca250593 | ||
|
|
269a3f5841 | ||
|
|
9302dc1f44 | ||
|
|
694e722ce8 | ||
|
|
9fc5b187bf | ||
|
|
beb45688b2 | ||
|
|
9dd19c7559 | ||
|
|
c018a6feb0 | ||
|
|
1d8da1531d | ||
|
|
38a921558d | ||
|
|
f0d29df1d8 | ||
|
|
40951ad576 | ||
|
|
be15bdee46 | ||
|
|
d499f67839 | ||
|
|
53dba45410 | ||
|
|
26e3452f7c | ||
|
|
52d23725a7 | ||
|
|
b88591c51b | ||
|
|
49f5e584eb | ||
|
|
15641b7f2d | ||
|
|
bd75e7bb27 | ||
|
|
6b431ece1b | ||
|
|
dbecd74428 | ||
|
|
e58c886d60 | ||
|
|
70f92077b5 | ||
|
|
5c60109a88 | ||
|
|
04bb82d622 | ||
|
|
0b13529061 | ||
|
|
3ffdba4ee1 | ||
|
|
257a28e4d7 | ||
|
|
220b965d3c | ||
|
|
9eea0969cd | ||
|
|
424b4ba8a7 | ||
|
|
5a9603cf48 | ||
|
|
54105ce586 | ||
|
|
96cd2e20fe | ||
|
|
fb16df23af | ||
|
|
c27cd836d8 | ||
|
|
68bfae2cf3 | ||
|
|
491e2d923b | ||
|
|
3b658e0fc5 | ||
|
|
9b357dbe8c | ||
|
|
5f77b10bf9 | ||
|
|
3d7a930dcd | ||
|
|
d7baddecdd | ||
|
|
2724337aad | ||
|
|
42b02ec944 | ||
|
|
10968885c6 | ||
|
|
cf7dbf1090 | ||
|
|
116c2f9300 | ||
|
|
e38d49399b | ||
|
|
1e14d37387 | ||
|
|
83f8d89bf3 | ||
|
|
d7714654f1 | ||
|
|
eae749bbf1 | ||
|
|
20eee370ff | ||
|
|
cbf3ca6650 | ||
|
|
8718814bff | ||
|
|
fc0113c887 | ||
|
|
82951f6855 | ||
|
|
467f61583b | ||
|
|
97b9afb85a | ||
|
|
16c9fbe148 | ||
|
|
21ea978455 | ||
|
|
170cf7f8c0 | ||
|
|
7ebfe8990d | ||
|
|
390dfad960 | ||
|
|
c197382955 | ||
|
|
b6a2725c77 | ||
|
|
5b8f7d5c93 | ||
|
|
355ea97b50 | ||
|
|
0e4883c228 | ||
|
|
2fd3ae7d88 | ||
|
|
addf1ddf6d | ||
|
|
75515288cd | ||
|
|
81d2043d06 | ||
|
|
9809cb149a | ||
|
|
1fdb6ce3db | ||
|
|
65e932039b | ||
|
|
a2ac8bf0d2 | ||
|
|
cf1b2e38c2 | ||
|
|
f9ab9e6f96 | ||
|
|
c9fe48f6bb | ||
|
|
574506507f | ||
|
|
d91028a376 | ||
|
|
b7148edba5 | ||
|
|
b2876d5916 | ||
|
|
ad2bae37f1 | ||
|
|
5330e8d45d | ||
|
|
3f59a53024 | ||
|
|
6e5b3e519b | ||
|
|
e962ed5a25 | ||
|
|
caa6801ec4 | ||
|
|
6c7bf7511a | ||
|
|
6f3e4d7f25 | ||
|
|
2ca5d373d5 | ||
|
|
fb3fff9894 | ||
|
|
e5e417265d | ||
|
|
94453c127c | ||
|
|
0408389fda | ||
|
|
6ab65f735d | ||
|
|
296d6cbdb9 | ||
|
|
474f486980 | ||
|
|
3af897de1d | ||
|
|
2a72d5e3bf | ||
|
|
20da6a38ab | ||
|
|
0e2f071d63 | ||
|
|
37194ce6ab | ||
|
|
fa2b202dcf | ||
|
|
d07016eea9 | ||
|
|
71c15e996f | ||
|
|
e56227b2b0 | ||
|
|
6f2af6013c | ||
|
|
384c8d576b | ||
|
|
96393067bf | ||
|
|
8ce8423758 | ||
|
|
d3a50f6951 | ||
|
|
048ea6e56f | ||
|
|
4e85807aa9 | ||
|
|
c407e38516 | ||
|
|
8a1b3c291c | ||
|
|
ef294666ae | ||
|
|
d2c35d7b4b | ||
|
|
330ddc1c23 | ||
|
|
3434c35334 | ||
|
|
bae93299c7 | ||
|
|
62b8bdd7e3 | ||
|
|
729a4f50ba | ||
|
|
9af6cc0c6a | ||
|
|
b91800d821 | ||
|
|
5cbdd3ef0c | ||
|
|
de1584ece7 | ||
|
|
21b98b809f | ||
|
|
2235e35939 | ||
|
|
b0f574071a | ||
|
|
0fb3c6183e | ||
|
|
7f484c34a4 | ||
|
|
efb218653b | ||
|
|
a7f53421e3 | ||
|
|
55908f9112 | ||
|
|
8a183e72d4 | ||
|
|
8b672526e5 | ||
|
|
4d39837cf3 | ||
|
|
ae274d35c7 | ||
|
|
2fd3ab74a0 | ||
|
|
62dbbe39d1 | ||
|
|
6425f37e68 | ||
|
|
d120f1d730 | ||
|
|
21290057f0 | ||
|
|
feab7aa908 | ||
|
|
7e416f4251 | ||
|
|
d23f072922 | ||
|
|
c9686eb5d0 | ||
|
|
509cafe386 | ||
|
|
58642efa83 | ||
|
|
4bddbfa9ca | ||
|
|
8713c41741 | ||
|
|
a39660ec88 | ||
|
|
81655bbc99 | ||
|
|
5779583a65 | ||
|
|
db14d9f086 | ||
|
|
366e54784a | ||
|
|
fc8d70b12f | ||
|
|
2e74261566 | ||
|
|
09a45ee2fb | ||
|
|
aa7c39636c | ||
|
|
786194b0b9 | ||
|
|
23fb20abe3 | ||
|
|
5e426a60c1 | ||
|
|
91c3e50771 | ||
|
|
cef447356b | ||
|
|
965550ab0d | ||
|
|
4133f3fa48 | ||
|
|
75e0f20964 | ||
|
|
c0dd4d09f9 | ||
|
|
d5b8726c8c | ||
|
|
167be4e4a5 | ||
|
|
21bc2a108b | ||
|
|
3820baa885 | ||
|
|
665e458409 | ||
|
|
39a056e09f | ||
|
|
823a61670a | ||
|
|
8a60e96f0e | ||
|
|
1ee1d4398a | ||
|
|
3aff70b948 | ||
|
|
bf3316b110 | ||
|
|
f26fe0e821 | ||
|
|
4e3e232a30 | ||
|
|
e60474c7d0 | ||
|
|
993737a5c5 | ||
|
|
56efff6a0a | ||
|
|
3580c2b63d | ||
|
|
e93430019c | ||
|
|
dab3f8ef16 | ||
|
|
53d602c294 | ||
|
|
abf52f737a | ||
|
|
6d51b2e0a0 | ||
|
|
3a527c1292 | ||
|
|
e1fde4fcfd | ||
|
|
282f21e903 | ||
|
|
0e87cdafd5 | ||
|
|
3b29a4877f | ||
|
|
aef729eef6 | ||
|
|
c10cdbe1fc | ||
|
|
c5853eade6 | ||
|
|
f90829457a | ||
|
|
4a825a31ae | ||
|
|
207cfba2bd | ||
|
|
2c066e9c8c | ||
|
|
9cf425164e | ||
|
|
56defd8e02 | ||
|
|
c124414aba | ||
|
|
cc86657f62 | ||
|
|
28d1b99444 | ||
|
|
d4305f0287 | ||
|
|
0b3300397b | ||
|
|
6e4903f8c6 | ||
|
|
0d92ef53ec | ||
|
|
8a1775ab3f | ||
|
|
907b4edbf0 | ||
|
|
58118440b9 | ||
|
|
ebfaf13bed | ||
|
|
1de3e80525 | ||
|
|
664e3b96f8 | ||
|
|
fcfc42e057 | ||
|
|
4a41b50065 | ||
|
|
d1baaad955 | ||
|
|
3cd72e9e34 | ||
|
|
c39e2384ec | ||
|
|
57309b63a9 | ||
|
|
ff1bcdef35 | ||
|
|
1a3605761c | ||
|
|
b195a4a8e5 | ||
|
|
6f11fd4269 | ||
|
|
48556228df | ||
|
|
81d1554166 | ||
|
|
58c942116b | ||
|
|
439799ce8f | ||
|
|
b5b6b55f51 | ||
|
|
b48cd24118 | ||
|
|
05aa271ba0 | ||
|
|
069f495746 | ||
|
|
9b0b96e1cc | ||
|
|
0ba4359e55 | ||
|
|
65705cf86e | ||
|
|
38fd53b544 | ||
|
|
5e47aa3bb2 | ||
|
|
f194df5f80 | ||
|
|
25a5263c21 | ||
|
|
86e63beb14 | ||
|
|
d329a7bed9 | ||
|
|
613d5b44e2 | ||
|
|
179a74ce49 | ||
|
|
f9f9369082 | ||
|
|
4c2d9d791d | ||
|
|
335306f478 | ||
|
|
b8984db2f7 | ||
|
|
90464c55cf | ||
|
|
114db448dd | ||
|
|
6398fa4e1b | ||
|
|
e34d3d29e7 | ||
|
|
11e88fe009 | ||
|
|
36ca01a1a3 | ||
|
|
ad4cd7c54a | ||
|
|
93260d4662 | ||
|
|
fc2f39f44c | ||
|
|
a018d53496 | ||
|
|
1ddc69bb60 | ||
|
|
544f63e101 | ||
|
|
92fe219e78 | ||
|
|
6d9601b579 | ||
|
|
567434fe99 | ||
|
|
094726e916 | ||
|
|
e0996e29f4 | ||
|
|
e25b728089 | ||
|
|
8051a5c8d4 | ||
|
|
8b3d9504c9 | ||
|
|
f8e804d3cb | ||
|
|
0c96b3f7ed | ||
|
|
7af809496e | ||
|
|
b9331331a7 | ||
|
|
5e78db1a11 | ||
|
|
72f947634e | ||
|
|
ed33b04bfc | ||
|
|
44dee9b285 | ||
|
|
80b18bf793 | ||
|
|
0b3ba6f94a | ||
|
|
cb3ee2112f | ||
|
|
4d72af7d30 | ||
|
|
9704bf37cc | ||
|
|
112ec4bdff | ||
|
|
85aa1f5e34 | ||
|
|
4e92cd8b5c | ||
|
|
717aa69293 | ||
|
|
97fce0735d | ||
|
|
8b64aebe27 | ||
|
|
a9258f99d4 | ||
|
|
2fb28e589a | ||
|
|
dddce86ec7 | ||
|
|
a64aae1d78 | ||
|
|
028f1036fb | ||
|
|
0c2e006cc8 | ||
|
|
f42b519f20 | ||
|
|
41c6f389c7 | ||
|
|
db02b63be6 | ||
|
|
4805c77eac | ||
|
|
71b1428fbe | ||
|
|
cbd3bea792 | ||
|
|
e24d63c971 | ||
|
|
bdc4ed311c | ||
|
|
05c3c856a9 | ||
|
|
e58782c838 | ||
|
|
6ad776ca7a | ||
|
|
3c2004a2e7 | ||
|
|
e3a877c948 | ||
|
|
33814d2339 | ||
|
|
c756faddac | ||
|
|
eed063af2f | ||
|
|
382ca559eb | ||
|
|
e0ed93ed8a | ||
|
|
bb62a3163a | ||
|
|
cc850dd75e | ||
|
|
5ad9a65a15 | ||
|
|
c2103247ed | ||
|
|
6a6ed90473 | ||
|
|
478e3a2109 | ||
|
|
cf1c08c66e | ||
|
|
689d8c9e48 | ||
|
|
3ff15ff7e9 | ||
|
|
6d855fef24 | ||
|
|
7b8347a9c2 | ||
|
|
713e796da6 | ||
|
|
780449edee | ||
|
|
2736ec96fb | ||
|
|
4691696afe | ||
|
|
66d0019063 | ||
|
|
86683d60cd | ||
|
|
7b9f564f74 | ||
|
|
9e2851aa0b | ||
|
|
1af06f58ce | ||
|
|
03abf9dc0d | ||
|
|
12509e6225 | ||
|
|
58e21f32b4 | ||
|
|
735cb143ae | ||
|
|
7b7c1190cf | ||
|
|
f9fdbaae9b | ||
|
|
bcb080aa42 | ||
|
|
81b217dadc | ||
|
|
e48790de77 | ||
|
|
a4178e4c18 | ||
|
|
5ae986a6dd | ||
|
|
a07ded343c | ||
|
|
c990822abb | ||
|
|
dca67a8996 | ||
|
|
dc2020f328 | ||
|
|
7370173f63 | ||
|
|
c423d24834 | ||
|
|
b58bddbd03 | ||
|
|
2361f9a630 | ||
|
|
4334710289 | ||
|
|
c764999d75 | ||
|
|
6b416f7187 | ||
|
|
b3b59a5f6a | ||
|
|
5d252515e2 | ||
|
|
37ac3c9e70 | ||
|
|
32e95a69a9 | ||
|
|
c054ffeb2b | ||
|
|
027ea766e6 | ||
|
|
4e8a7d98af | ||
|
|
b50716362b | ||
|
|
4e57366960 | ||
|
|
52822246e8 | ||
|
|
25c7067664 | ||
|
|
6b89eabfee | ||
|
|
0571faa350 | ||
|
|
e3da9fed6e | ||
|
|
c74cfb63a6 | ||
|
|
9b13d85b46 | ||
|
|
25a542759d | ||
|
|
6d625167a5 | ||
|
|
5ef7c8bce8 | ||
|
|
692c4c65e4 | ||
|
|
de5c858903 | ||
|
|
2effc25ad0 | ||
|
|
ca7f9662e2 | ||
|
|
b56d235233 | ||
|
|
60b4e9a0d7 | ||
|
|
0e5d6d1252 | ||
|
|
4da35f91d9 | ||
|
|
e6b17adf3a | ||
|
|
d22a2995a3 | ||
|
|
32dd187421 | ||
|
|
2bdedfed25 | ||
|
|
9d967277cd | ||
|
|
d925a0a1b2 | ||
|
|
b1135371ac | ||
|
|
40bf89df32 | ||
|
|
84d23af453 | ||
|
|
4e28dbbf09 | ||
|
|
5ce1b5acb3 | ||
|
|
0c31df6630 | ||
|
|
f681ce9036 | ||
|
|
9147b69c3a | ||
|
|
2ecc7ff340 | ||
|
|
991310be92 | ||
|
|
7359e05412 | ||
|
|
f5133aa8e3 | ||
|
|
35306423b5 | ||
|
|
69f95ee396 | ||
|
|
559b64b3ac | ||
|
|
4747ee35be | ||
|
|
ff84208703 | ||
|
|
1f1df02356 | ||
|
|
143585bd39 | ||
|
|
59347a3de1 | ||
|
|
ac25174a95 | ||
|
|
b6b42bad9d | ||
|
|
ffffd5751d | ||
|
|
fc867d38e6 | ||
|
|
9c98602f9a | ||
|
|
cc278a3a6e | ||
|
|
2dd86456cf | ||
|
|
e43d2db0d6 | ||
|
|
33a8406bd3 | ||
|
|
66be97ee47 | ||
|
|
45e44fd8bc | ||
|
|
479b3854ba | ||
|
|
0293c2a3a8 | ||
|
|
a10f4455f7 | ||
|
|
a586a34f36 | ||
|
|
fcf3f83737 | ||
|
|
24adf22c53 | ||
|
|
0e4d0f6216 | ||
|
|
3e4de7df52 | ||
|
|
ed130b1bac | ||
|
|
96e73c89d8 | ||
|
|
b8fc1a70ed | ||
|
|
6175104b0e | ||
|
|
d6400c573a | ||
|
|
a96611a68c | ||
|
|
aa82a26e1d | ||
|
|
dfcfabec66 | ||
|
|
04e74cba01 | ||
|
|
7542587558 | ||
|
|
5a83175d96 | ||
|
|
4f43020509 | ||
|
|
81841ad35a | ||
|
|
82d1df7445 | ||
|
|
b7b8c61d47 | ||
|
|
0672e7f37e | ||
|
|
7f67b1dbce | ||
|
|
368e787f89 | ||
|
|
de2cba940d | ||
|
|
54e2c15ae4 | ||
|
|
fad7afb97e | ||
|
|
d5c78639f3 | ||
|
|
b91d26c509 | ||
|
|
051a2b6548 | ||
|
|
dfd08a8b69 | ||
|
|
3f40a4a63d | ||
|
|
a782e23e57 | ||
|
|
b74a466157 | ||
|
|
c7e7f7e58c | ||
|
|
760440fd24 | ||
|
|
856ea50676 | ||
|
|
dbd90bf843 | ||
|
|
8daf0a6619 | ||
|
|
6a9d23a2ef | ||
|
|
4d3cb54f7e | ||
|
|
22444e2d8e | ||
|
|
11a2016412 | ||
|
|
39588af3e4 | ||
|
|
99faf69fca | ||
|
|
0eec03c366 | ||
|
|
950e46e360 | ||
|
|
489d3d4777 | ||
|
|
07f17b1538 | ||
|
|
f42ba5adc8 | ||
|
|
6313b5b589 | ||
|
|
77d15c71cc | ||
|
|
5ffc3aca6a | ||
|
|
ffe6d8b356 | ||
|
|
13ee5512b2 | ||
|
|
3c36fccdf4 | ||
|
|
cd626b5718 | ||
|
|
a684e5b864 | ||
|
|
e919f0d60a | ||
|
|
35b883c065 | ||
|
|
fe95be6bd2 | ||
|
|
2bec423fd7 | ||
|
|
5ddbc7d25e | ||
|
|
7b829e3c3f | ||
|
|
e9c0648240 | ||
|
|
8a2b01fb27 | ||
|
|
3fa77d326c | ||
|
|
651886db35 | ||
|
|
0a4e5ca80e | ||
|
|
ef6a54580d | ||
|
|
ff3907d6f4 | ||
|
|
d36e7e5e45 | ||
|
|
e9cb036af1 | ||
|
|
ed8fc1fa1b | ||
|
|
c9b1c3f5ff | ||
|
|
3f16c75e06 | ||
|
|
9ab30eda4a | ||
|
|
bdc7a62c39 | ||
|
|
467327b5b0 | ||
|
|
32da99fcc1 | ||
|
|
178cd16010 | ||
|
|
7357cef274 | ||
|
|
033e489904 | ||
|
|
6de284f6eb | ||
|
|
776c5bcb82 | ||
|
|
8779326e78 | ||
|
|
4dfa4a2348 | ||
|
|
39cc6cfd6d | ||
|
|
98ef75a581 | ||
|
|
ab69f947ef | ||
|
|
a9bc173016 | ||
|
|
72181c154d | ||
|
|
acc8eda33f | ||
|
|
a5ea0ee39e | ||
|
|
ee44bc3143 | ||
|
|
c9106ef256 | ||
|
|
d44b9ae317 | ||
|
|
dd29c202ef | ||
|
|
1ed80c59fd | ||
|
|
17d8aa5dc2 | ||
|
|
dc490696ac | ||
|
|
8764208045 | ||
|
|
536e460fce | ||
|
|
b1dc1513e5 | ||
|
|
fdef57d38f | ||
|
|
e11ada7ef2 | ||
|
|
4a925237ae | ||
|
|
62ee68679d | ||
|
|
01d1d3adf0 | ||
|
|
67c9b2d276 | ||
|
|
eae56c4230 | ||
|
|
d02fcfad46 | ||
|
|
317fef8887 | ||
|
|
7ecec5548e | ||
|
|
f42b6d58ec | ||
|
|
bce8c14efb | ||
|
|
c68ca5ee87 | ||
|
|
8e21f0a113 | ||
|
|
03dc7b0ac5 | ||
|
|
5afb043fb2 | ||
|
|
389b748395 | ||
|
|
6103e5b664 | ||
|
|
ac10d2b082 | ||
|
|
47c398f744 | ||
|
|
b192b13250 | ||
|
|
ae0c0966d3 | ||
|
|
a1330c444c | ||
|
|
f4f7f3cc1d | ||
|
|
8927383d7b | ||
|
|
506647e70b | ||
|
|
ed9ad45332 | ||
|
|
07ded59fb8 | ||
|
|
c2e1e97862 | ||
|
|
66257c15af | ||
|
|
d6ecbcdf11 | ||
|
|
52da06729b | ||
|
|
c04a67bc85 | ||
|
|
47a477dedd | ||
|
|
45ae083eea | ||
|
|
4040d1995a | ||
|
|
a620647376 | ||
|
|
3d970138ca | ||
|
|
385c147975 | ||
|
|
29f67110be | ||
|
|
0eb8dd5170 | ||
|
|
3b85f6a499 | ||
|
|
b907b839bf | ||
|
|
16fb1154ef | ||
|
|
c4622772f8 | ||
|
|
c994662b97 | ||
|
|
017b6e86f7 | ||
|
|
a86146faa2 | ||
|
|
05b2ecd4eb | ||
|
|
430a4ce59e | ||
|
|
4fff0f9af7 | ||
|
|
e830e65247 | ||
|
|
990fe2bdf8 | ||
|
|
0358038b71 | ||
|
|
9ad195b68b | ||
|
|
5911a7a0f5 | ||
|
|
7ee15b1ffd | ||
|
|
7f7117187e | ||
|
|
3b4c78ca4a | ||
|
|
0d62cbd7c5 | ||
|
|
21d6494923 | ||
|
|
a5d076decc | ||
|
|
02ce0bc8a5 | ||
|
|
fe5ca2614e | ||
|
|
066e1b39ab | ||
|
|
e5e19f0a44 | ||
|
|
6e43281ee4 | ||
|
|
394f6b8170 | ||
|
|
b8e9683c81 | ||
|
|
ca3b71d2b8 | ||
|
|
5dfd76427b | ||
|
|
e421b6f896 | ||
|
|
bb144185a1 | ||
|
|
947375ba52 | ||
|
|
c02fba3719 | ||
|
|
30d02787a6 | ||
|
|
2a360a8113 | ||
|
|
e87687ea04 | ||
|
|
9cafff14c6 | ||
|
|
debae7c6a1 | ||
|
|
11e3f522b3 | ||
|
|
5a3304d006 | ||
|
|
515a3073d5 | ||
|
|
9d8168dbf5 |
@@ -1,5 +1,5 @@
|
||||
name: Bug report
|
||||
description: The type of device you were playing on
|
||||
description: An issue with the game.
|
||||
labels: ["bug"]
|
||||
|
||||
body:
|
||||
@@ -43,17 +43,17 @@ body:
|
||||
id: mods
|
||||
attributes:
|
||||
label: Mods used
|
||||
description: The mod repositories or zip files that are related to the issue, if applicable.
|
||||
description: The mod repositories or zip files that are related to the issue, if applicable. If you are positive that you have none enabled, write 'none'.
|
||||
validations:
|
||||
required: false
|
||||
required: true
|
||||
- type: textarea
|
||||
id: save-file
|
||||
attributes:
|
||||
label: Save file
|
||||
description: The (zipped) save file you were playing on when the bug happened. If this happened in the campaign, specify the sector, and attach the file you get from Settings -> Game Data -> Export Data. For custom games, attach the .msav file exported from the save dialog, zipped.
|
||||
placeholder: THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME OR IN MULTIPLAYER, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME. IF YOU DO NOT HAVE A SAVE, DON'T WASTE TIME OPENING THIS ISSUE.
|
||||
placeholder: THIS IS REQUIRED FOR ANY IN-GAME ISSUE. IF YOU DO NOT HAVE A SAVE, DO NOT WASTE TIME OPENING THIS ISSUE.
|
||||
validations:
|
||||
required: false
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
@@ -72,5 +72,9 @@ body:
|
||||
required: true
|
||||
- label: I have searched the closed and open issues to make sure that this problem has not already been reported.
|
||||
required: true
|
||||
- label: "I am not using Foo's Client, and have made sure the bug is not caused by mods I have installed."
|
||||
- label: "I am not using Foo's Client."
|
||||
required: true
|
||||
- label: "This issue occurs with no mods enabled."
|
||||
required: true
|
||||
- label: "I have attached a valid save file."
|
||||
required: true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
If your pull request is **not** translation or serverlist-related, read the list of requirements below and check each box:
|
||||
If your pull request is **not** translation-related, read the list of requirements below and check each box:
|
||||
|
||||
- [ ] I have read the [contribution guidelines](https://github.com/Anuken/Mindustry/blob/master/CONTRIBUTING.md).
|
||||
- [ ] I have ensured that my code compiles, if applicable.
|
||||
- [ ] I have ensured that any new features in this PR function correctly in-game, if applicable.
|
||||
- [ ] I have ensured that any new features or fixes in this PR function correctly in-game, if applicable.
|
||||
- [ ] I affirm that this code follows Mindustry's [AI policy](https://github.com/Anuken/Mindustry/blob/master/CONTRIBUTING.md#ai-policy).
|
||||
@@ -14,10 +14,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v7
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
- name: Set env
|
||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
@@ -30,27 +31,9 @@ jobs:
|
||||
git tag ${RELEASE_VERSION}
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/Arc ${RELEASE_VERSION};
|
||||
cd ../Mindustry
|
||||
- name: Update JITpack repo
|
||||
run: |
|
||||
cd ../
|
||||
cp -r ./Mindustry ./MindustryJitpack
|
||||
cd MindustryJitpack
|
||||
git config --global user.name "Github Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
git clone --depth 1 https://github.com/Anuken/MindustryJitpack.git
|
||||
rm -rf .git
|
||||
cp -r ./MindustryJitpack/.git ./.git
|
||||
rm -rf MindustryJitpack
|
||||
rm -rf .github
|
||||
rm README.md
|
||||
git add .
|
||||
git commit --allow-empty -m "Updating"
|
||||
git tag ${RELEASE_VERSION}
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryJitpack ${RELEASE_VERSION}
|
||||
cd ../Mindustry
|
||||
- name: Create artifacts
|
||||
run: |
|
||||
./gradlew desktop:dist server:dist core:depsJar core:mergedJavadoc -Pbuildversion=${RELEASE_VERSION:1}
|
||||
./gradlew desktop:dist server:dist core:depsJar core:assetsJar core:mergedJavadoc -Pbuildversion=${RELEASE_VERSION:1}
|
||||
- name: Update docs
|
||||
run: |
|
||||
cd ../
|
||||
@@ -97,3 +80,11 @@ jobs:
|
||||
file: core/build/libs/core-release-deps.jar
|
||||
asset_name: dependencies.jar
|
||||
tag: ${{ github.ref }}
|
||||
|
||||
- name: Upload assets JAR
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: core/build/libs/core-release-assets.jar
|
||||
asset_name: assets.jar
|
||||
tag: ${{ github.ref }}
|
||||
|
||||
@@ -6,5 +6,5 @@ jobs:
|
||||
name: "Validation"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: gradle/wrapper-validation-action@v2
|
||||
- uses: actions/checkout@v7
|
||||
- uses: gradle/actions/wrapper-validation@v3
|
||||
|
||||
@@ -10,21 +10,23 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v7
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
- name: Fetch latest Arc
|
||||
run: git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
- name: Run unit tests
|
||||
run: ./gradlew tests:test --stacktrace --rerun
|
||||
- name: Run unit tests and build JAR
|
||||
run: ./gradlew desktop:dist
|
||||
- name: Upload desktop JAR for testing
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: Desktop JAR (zipped)
|
||||
name: Desktop JAR
|
||||
archive: false
|
||||
path: desktop/build/libs/Mindustry.jar
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v7
|
||||
- name: Trigger BE build
|
||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||
run: |
|
||||
@@ -22,17 +22,18 @@ jobs:
|
||||
git config --global user.name "Github Actions"
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${BNUM}
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
- name: Fetch latest Arc
|
||||
run: git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
- name: Update bundles
|
||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||
run: |
|
||||
./gradlew updateBundles
|
||||
./gradlew -DcompileMethodParams updateBundles
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git config --global user.name "Github Actions"
|
||||
@@ -41,35 +42,18 @@ jobs:
|
||||
git commit -m "Automatic bundle update"
|
||||
git push
|
||||
fi
|
||||
- name: Update scripts and class mappings
|
||||
- name: Update scripts, class mappings and map names
|
||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||
run: |
|
||||
./gradlew updateScripts
|
||||
./gradlew -DcompileMethodParams updateScripts fixMaps
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git config --global user.name "Github Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
git add core/assets/scripts/* core/src/mindustry/mod/ClassMap.java
|
||||
git commit -m "Automatic class mapping update"
|
||||
git add core/assets/maps/*
|
||||
git commit -m "Automatic class mapping and map name update"
|
||||
git push
|
||||
fi
|
||||
- name: Update JITpack repo
|
||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||
run: |
|
||||
git config --global user.name "Github Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
cd ../
|
||||
cp -r ./Mindustry ./MindustryJitpack
|
||||
cd MindustryJitpack
|
||||
git clone --depth 1 https://github.com/Anuken/MindustryJitpack.git
|
||||
rm -rf .git
|
||||
cp -r ./MindustryJitpack/.git ./.git
|
||||
rm -rf MindustryJitpack
|
||||
rm -rf .github
|
||||
rm README.md
|
||||
git add .
|
||||
git commit --allow-empty -m "Updating"
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryJitpack
|
||||
cd ../Mindustry
|
||||
- name: Run unit tests
|
||||
run: ./gradlew tests:test --rerun --stacktrace
|
||||
|
||||
@@ -4,9 +4,6 @@ This is for code contributions. For translations, see [TRANSLATING](TRANSLATING.
|
||||
|
||||
## Basic Guidelines
|
||||
|
||||
### Use an IDE.
|
||||
Specifically, IntelliJ IDEA. Download the (free) Community Edition of it [here](https://www.jetbrains.com/idea/download/). Some people use other tools, like VS Code, but I would personally not recommend them for Java development.
|
||||
|
||||
### Always test your changes.
|
||||
Do not submit something without at least running the game to see if it compiles.
|
||||
If you are submitting a new block, make sure it has a name and description, and that it works correctly in-game. If you are changing existing block mechanics, test them out first.
|
||||
@@ -20,11 +17,19 @@ Yes, there are occurrences of trailing spaces, extra newlines, empty indents, an
|
||||
|
||||
I **especially** do not want to see PRs that apply any kind of automated analysis to the source code to "optimize" anything - my IDE can do that already. If the PR doesn't actually change anything useful, I'm not going to review or merge it.
|
||||
|
||||
### Do not make AI "contributions".
|
||||
## AI Policy
|
||||
|
||||
If I see a PR with significant amounts of code that's obviously written by AI, I will reject your PR, and you will be blocked. Don't waste my time with slop.
|
||||
Mindustry's AI contribution policies are similar to that of [the Rust language](https://forge.rust-lang.org/policies/llm-usage.html), which are summarized as follows:
|
||||
|
||||
Asking AI questions, and using that information to help you write code? Fine. Using it to actually write code? No.
|
||||
- ✔️ You **are** allowed use AI to review your own code, summarize, inform, and answer questions.
|
||||
- ✔️ You **are** allowed to use AI to translate your *human-written* messages into English, if necessary.
|
||||
|
||||
- ❌ You are **not** allowed to submit PRs that are generated by AI.
|
||||
- ❌ You are **not** allowed to use AI to *generate* any text posted (PRs, issues, commit messages, etc.)
|
||||
|
||||
- ⚠️ If you post *anything* that is based on AI output (potential solution to a bug, crash diagnosis...), it must be clearly marked as being sourced from AI.
|
||||
|
||||
Repeated (or particularly egregious) violations of these rules will get you banned from this repository.
|
||||
|
||||
## Style Guidelines
|
||||
|
||||
@@ -34,7 +39,7 @@ This means:
|
||||
- Same-line braces.
|
||||
- 4 spaces indentation
|
||||
- `camelCase`, **even for constants or enums**. Why? Because `SCREAMING_CASE` is ugly, annoying to type and does not achieve anything useful. Constants are *less* dangerous than variables, not more. Any reasonable IDE should highlight them for you anyway.
|
||||
- No underscores for anything. (Yes, I know `Bindings` violates this principle, but that's for legacy reasons and really should be cleaned up some day)
|
||||
- No underscores for anything.
|
||||
- Do not use braceless `if/else` statements. `if(x) statement else statement2` should **never** be done. In very specific situations, having braceless if-statements on one line is allowed: `if(cond) return;` would be valid.
|
||||
- Prefer single-line javadoc `/** @return for example */` instead of multiline javadoc whenever possible
|
||||
- Short method/variable names (multipleLongWords should be avoided if it's possible to do so reasonably, especially for variables)
|
||||
@@ -67,7 +72,6 @@ What you'll usually need to change:
|
||||
### Avoid boxed types (Integer, Boolean)
|
||||
Never create variables or collections with boxed types `Seq<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntSeq` and `IntMap`.
|
||||
|
||||
|
||||
### Do not allocate anything if possible.
|
||||
Never allocate `new` objects in the main loop. If you absolutely require new objects, use `Pools` to obtain and free object instances.
|
||||
Otherwise, use the `Tmp` variables for things like vector/shape operations, or create `static` variables for re-use.
|
||||
@@ -77,9 +81,13 @@ If using a list, make it a static variable and clear it every time it is used. R
|
||||
This is situational, but in essence, what it means is to avoid using any sort of getters and setters unless absolutely necessary. Public or protected fields should suffice for most things.
|
||||
If something needs to be encapsulated in the future, IntelliJ can handle it with a few clicks.
|
||||
|
||||
|
||||
### Do not create methods unless necessary.
|
||||
Unless a block of code is very large or used in more than 1-2 places, don't split it up into a separate method. Making unnecessary methods only creates confusion, and may slightly decrease performance.
|
||||
|
||||
## Other Notes
|
||||
If you would like your name to appear in the game's credits, add it to the [list of contributors](https://github.com/Anuken/Mindustry/blob/master/core/assets/contributors) as part of your PR.
|
||||
|
||||
- If you would like your name to appear in the game's credits, add it to the [list of contributors](https://github.com/Anuken/Mindustry/blob/master/core/assets/contributors) as part of your PR.
|
||||
|
||||
- Using an IDE is highly recommended, but not required.
|
||||
- I use IntelliJ; download it [here](https://www.jetbrains.com/idea/download/).
|
||||
- Some people use other tools, like VS Code, but I haven't used them for Java myself, and cannot guarantee that they will work well for this codebase.
|
||||
@@ -1,3 +0,0 @@
|
||||
# Note: The v7 server list is frozen. No new servers will be accepted. All v8 server PRs should be made [here](https://github.com/Anuken/MindustryServerList).
|
||||
|
||||
*PRs to edit addresses of existing servers will still be accepted, although very infrequently.*
|
||||
@@ -8,6 +8,7 @@
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
<application
|
||||
android:enableOnBackInvokedCallback="false"
|
||||
android:resizeableActivity="true"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
@@ -24,13 +25,40 @@
|
||||
android:label="@string/app_name"
|
||||
android:screenOrientation="user"
|
||||
android:exported="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="uiMode|keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="mindustry"/>
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="content" />
|
||||
<data android:mimeType="application/octet-stream" />
|
||||
<data android:mimeType="application/x-msav" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="file" />
|
||||
<data android:host="*" />
|
||||
<data android:mimeType="*/*" />
|
||||
<data android:pathPattern=".*\\.msav" />
|
||||
</intent-filter>
|
||||
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
@@ -60,7 +60,7 @@ android{
|
||||
def versionNameResult = "$versionNumber-$versionType-${getBuildVersion().replace(" ", "-")}"
|
||||
|
||||
applicationId "io.anuke.mindustry"
|
||||
minSdkVersion 14
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 36
|
||||
|
||||
versionName versionNameResult
|
||||
@@ -75,8 +75,8 @@ android{
|
||||
}
|
||||
|
||||
compileOptions{
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
flavorDimensions = ["google"]
|
||||
|
||||
@@ -5,20 +5,21 @@ import android.app.*;
|
||||
import android.content.*;
|
||||
import android.content.pm.*;
|
||||
import android.net.*;
|
||||
import android.os.Build.*;
|
||||
import android.os.*;
|
||||
import android.os.Build.*;
|
||||
import android.telephony.*;
|
||||
import arc.*;
|
||||
import arc.backend.android.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import dalvik.system.*;
|
||||
import mindustry.*;
|
||||
import mindustry.game.Saves.*;
|
||||
import mindustry.io.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.FileChooser.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -30,7 +31,7 @@ import static mindustry.Vars.*;
|
||||
public class AndroidLauncher extends AndroidApplication{
|
||||
public static final int PERMISSION_REQUEST_CODE = 1;
|
||||
boolean doubleScaleTablets = true;
|
||||
FileChooser chooser;
|
||||
FileChooserDialog chooser;
|
||||
Runnable permCallback;
|
||||
|
||||
@Override
|
||||
@@ -97,8 +98,7 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
};
|
||||
}catch(SecurityException e){
|
||||
//`setReadOnly` to jar file in `/sdcard/Android/data/...` does not work on some Android 14 device
|
||||
//But in `/data/...` it works
|
||||
//`setReadOnly` to jar file in `/sdcard/Android/data/...` does not work on some Android 14 devices, but in `/data/...`, it does
|
||||
|
||||
if(Build.VERSION.SDK_INT < VERSION_CODES.O_MR1){
|
||||
throw e;
|
||||
@@ -127,27 +127,34 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showFileChooser(boolean open, String title, String extension, Cons<Fi> cons){
|
||||
showFileChooser(open, title, cons, extension);
|
||||
}
|
||||
|
||||
void showFileChooser(boolean open, String title, Cons<Fi> cons, String... extensions){
|
||||
public void showFileChooser(FileChooserParams params){
|
||||
try{
|
||||
String extension = extensions[0];
|
||||
String extension = params.extensions[0];
|
||||
|
||||
if(VERSION.SDK_INT >= VERSION_CODES.Q){
|
||||
Intent intent = new Intent(open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
||||
Intent intent = new Intent(params.open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setType(extension.equals("zip") && !open && extensions.length == 1 ? "application/zip" : "*/*");
|
||||
intent.putExtra(Intent.EXTRA_TITLE, "export." + extension);
|
||||
intent.setType(extension.equals("zip") && !params.open && params.extensions.length == 1 ? "application/zip" : "*/*");
|
||||
intent.putExtra(Intent.EXTRA_TITLE, params.fileName);
|
||||
if(params.allowMultiple){
|
||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
|
||||
}
|
||||
|
||||
addResultListener(i -> startActivityForResult(intent, i), (code, in) -> {
|
||||
if(code == Activity.RESULT_OK && in != null && in.getData() != null){
|
||||
Uri uri = in.getData();
|
||||
Uri[] uris;
|
||||
if(in.getClipData() != null){
|
||||
uris = new Uri[in.getClipData().getItemCount()];
|
||||
for(int i = 0; i < uris.length; i++){
|
||||
uris[i] = in.getClipData().getItemAt(i).getUri();
|
||||
}
|
||||
}else{
|
||||
uris = new Uri[]{in.getData()};
|
||||
}
|
||||
|
||||
if(uri.getPath().contains("(invalid)")) return;
|
||||
if(uris.length == 0 || uris[0].getPath().contains("(invalid)")) return;
|
||||
|
||||
Core.app.post(() -> Core.app.post(() -> cons.get(new Fi(uri.getPath()){
|
||||
Fi[] files = Seq.with(uris).map(uri -> new Fi(uri.getPath()){
|
||||
@Override
|
||||
public InputStream read(){
|
||||
try{
|
||||
@@ -165,18 +172,23 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
throw new ArcRuntimeException(e);
|
||||
}
|
||||
}
|
||||
})));
|
||||
|
||||
@Override
|
||||
public Writer writer(boolean append, String charset){
|
||||
try{
|
||||
return new OutputStreamWriter(write(append), charset);
|
||||
}catch(IOException ex){
|
||||
throw new ArcRuntimeException(ex);
|
||||
}
|
||||
}
|
||||
}).toArray(Fi.class);
|
||||
|
||||
Core.app.post(() -> Core.app.post(() -> params.handleChooseResult(files)));
|
||||
}
|
||||
});
|
||||
}else if(VERSION.SDK_INT >= VERSION_CODES.M && !(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
|
||||
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
|
||||
chooser = new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), open, file -> {
|
||||
if(!open){
|
||||
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
|
||||
}else{
|
||||
cons.get(file);
|
||||
}
|
||||
});
|
||||
chooser = FileChooser.createFallbackFileChooser(params);
|
||||
|
||||
ArrayList<String> perms = new ArrayList<>();
|
||||
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
||||
@@ -187,22 +199,13 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
|
||||
}else{
|
||||
if(open){
|
||||
new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
|
||||
}else{
|
||||
super.showFileChooser(open, "@open", extension, cons);
|
||||
}
|
||||
FileChooser.showFallbackFileChooser(params);
|
||||
}
|
||||
}catch(Throwable error){
|
||||
Core.app.post(() -> Vars.ui.showException(error));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showMultiFileChooser(Cons<Fi> cons, String... extensions){
|
||||
showFileChooser(true, "@open", cons, extensions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginForceLandscape(){
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
|
||||
@@ -218,7 +221,9 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
hideStatusBar = true;
|
||||
useGL30 = true;
|
||||
}});
|
||||
checkFiles(getIntent());
|
||||
|
||||
var intent = getIntent();
|
||||
Events.on(ClientLoadEvent.class, u -> handleIntent(intent));
|
||||
|
||||
try{
|
||||
//new external folder
|
||||
@@ -235,7 +240,6 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
Log.err("Failed to delete cached folder", t);
|
||||
}
|
||||
|
||||
|
||||
//move to internal storage if there's no file indicating that it moved
|
||||
if(!Core.files.local("files_moved").exists()){
|
||||
Log.info("Moving files to external storage...");
|
||||
@@ -277,54 +281,45 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
}
|
||||
|
||||
private void checkFiles(Intent intent){
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent){
|
||||
super.onNewIntent(intent);
|
||||
|
||||
handleIntent(intent);
|
||||
}
|
||||
|
||||
private void handleIntent(Intent intent){
|
||||
if(intent == null) return;
|
||||
|
||||
try{
|
||||
Uri uri = intent.getData();
|
||||
if(uri != null){
|
||||
File myFile = null;
|
||||
String scheme = uri.getScheme();
|
||||
if(scheme.equals("file")){
|
||||
String fileName = uri.getEncodedPath();
|
||||
myFile = new File(fileName);
|
||||
}else if(!scheme.equals("content")){
|
||||
//error
|
||||
return;
|
||||
}
|
||||
boolean save = uri.getPath().endsWith(saveExtension);
|
||||
boolean map = uri.getPath().endsWith(mapExtension);
|
||||
InputStream inStream;
|
||||
if(myFile != null) inStream = new FileInputStream(myFile);
|
||||
else inStream = getContentResolver().openInputStream(uri);
|
||||
Core.app.post(() -> Core.app.post(() -> {
|
||||
if(save){ //open save
|
||||
System.out.println("Opening save.");
|
||||
Fi file = Core.files.local("temp-save." + saveExtension);
|
||||
file.write(inStream, false);
|
||||
if(SaveIO.isSaveValid(file)){
|
||||
try{
|
||||
SaveSlot slot = control.saves.importSave(file);
|
||||
ui.load.runLoadSave(slot);
|
||||
}catch(IOException e){
|
||||
ui.showException("@save.import.fail", e);
|
||||
}
|
||||
}else{
|
||||
ui.showErrorMessage("@save.import.invalid");
|
||||
}
|
||||
}else if(map){ //open map
|
||||
Fi file = Core.files.local("temp-map." + mapExtension);
|
||||
file.write(inStream, false);
|
||||
|
||||
//clear data (not sure if necessary?)
|
||||
intent.setAction(Intent.ACTION_MAIN);
|
||||
intent.setData(null);
|
||||
setIntent(intent);
|
||||
|
||||
if("mindustry".equalsIgnoreCase(scheme)){ //open a server URL
|
||||
|
||||
String host = uri.getHost();
|
||||
int port = uri.getPort();
|
||||
|
||||
if(host != null && !host.isEmpty()){
|
||||
Core.app.post(() -> {
|
||||
System.out.println("Opening map.");
|
||||
if(!ui.editor.isShown()){
|
||||
ui.editor.show();
|
||||
}
|
||||
ui.editor.beginEditMap(file);
|
||||
ui.showConfirm(Core.bundle.format("servers.connect.confirm", host), () -> ui.join.connect(host, port != -1 ? port : 6567));
|
||||
});
|
||||
}
|
||||
}));
|
||||
}else{ //open a save file
|
||||
Fi file = Core.files.cache("imported");
|
||||
file.write(getContentResolver().openInputStream(uri), false);
|
||||
|
||||
ClientLauncher.handleFileImport(file);
|
||||
}
|
||||
}
|
||||
}catch(IOException e){
|
||||
e.printStackTrace();
|
||||
}catch(Throwable e){
|
||||
Log.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@ package mindustry.android;
|
||||
|
||||
import android.annotation.*;
|
||||
import android.os.*;
|
||||
import android.os.Build.*;
|
||||
import arc.*;
|
||||
import arc.backend.android.*;
|
||||
import com.android.dex.*;
|
||||
import com.android.dx.cf.direct.*;
|
||||
import com.android.dx.command.dexer.*;
|
||||
@@ -13,7 +11,6 @@ import com.android.dx.dex.cf.*;
|
||||
import com.android.dx.dex.file.DexFile;
|
||||
import com.android.dx.merge.*;
|
||||
import dalvik.system.*;
|
||||
import mindustry.mod.*;
|
||||
import rhino.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -159,8 +156,9 @@ public class AndroidRhinoContext{
|
||||
}catch(IOException e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
android.content.Context context = (android.content.Context)((AndroidApplication)Core.app);
|
||||
return new DexClassLoader(dexFile.getPath(), VERSION.SDK_INT >= 21 ? context.getCodeCacheDir().getPath() : context.getCacheDir().getAbsolutePath(), null, getParent()).loadClass(name);
|
||||
|
||||
var context = (android.content.Context)Core.app;
|
||||
return new DexClassLoader(dexFile.getPath(), context.getCodeCacheDir().getPath(), null, getParent()).loadClass(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -85,9 +85,11 @@ public class Annotations{
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface GroupDef{
|
||||
Class[] value();
|
||||
Class[] exclude() default {};
|
||||
boolean collide() default false;
|
||||
boolean spatial() default false;
|
||||
boolean mapping() default false;
|
||||
boolean update() default false;
|
||||
}
|
||||
|
||||
/** Indicates an entity definition. */
|
||||
@@ -107,6 +109,8 @@ public class Annotations{
|
||||
boolean genio() default true;
|
||||
/** Whether I made a massive mistake by merging two different class branches */
|
||||
boolean legacy() default false;
|
||||
/** Groups to exclude. */
|
||||
String[] excludeGroups() default {};
|
||||
}
|
||||
|
||||
/** Indicates an internal interface for entity components. */
|
||||
|
||||
@@ -211,10 +211,7 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
||||
if(round++ >= rounds) return false; //only process 1 round
|
||||
if(rootDirectory == null){
|
||||
try{
|
||||
String path = Fi.get(filer.getResource(StandardLocation.CLASS_OUTPUT, "no", "no")
|
||||
.toUri().toURL().toString().substring(OS.isWindows ? 6 : "file:".length()))
|
||||
.parent().parent().parent().parent().parent().parent().parent().toString().replace("%20", " ");
|
||||
rootDirectory = Fi.get(path).parent();
|
||||
rootDirectory = new Fi(new File(filer.getResource(StandardLocation.CLASS_OUTPUT, "no", "no").toUri())).parent().parent().parent().parent().parent().parent().parent().parent();
|
||||
}catch(IOException e){
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -232,7 +229,7 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
||||
|
||||
@Override
|
||||
public SourceVersion getSupportedSourceVersion(){
|
||||
return SourceVersion.RELEASE_8;
|
||||
return SourceVersion.RELEASE_17;
|
||||
}
|
||||
|
||||
public void process(RoundEnvironment env) throws Exception{
|
||||
|
||||
@@ -20,6 +20,7 @@ import javax.lang.model.element.*;
|
||||
import javax.lang.model.type.*;
|
||||
import java.lang.annotation.*;
|
||||
import java.util.*;
|
||||
import java.util.regex.*;
|
||||
|
||||
@SupportedAnnotationTypes({
|
||||
"mindustry.annotations.Annotations.EntityDef",
|
||||
@@ -29,6 +30,11 @@ import java.util.*;
|
||||
"mindustry.annotations.Annotations.TypeIOHandler"
|
||||
})
|
||||
public class EntityProcess extends BaseProcessor{
|
||||
static final Pattern selfParamPattern = Pattern.compile("this\\.<(.*)>self\\(\\)");
|
||||
static final Pattern selfPattern = Pattern.compile("self\\(\\)");
|
||||
static final Pattern yieldPattern = Pattern.compile(" yield ");
|
||||
static final Pattern missingPattern = Pattern.compile("\\/\\*missing\\*\\/");
|
||||
|
||||
Seq<EntityDefinition> definitions = new Seq<>();
|
||||
Seq<GroupDefinition> groupDefs = new Seq<>();
|
||||
Seq<Stype> baseComponents;
|
||||
@@ -77,12 +83,12 @@ public class EntityProcess extends BaseProcessor{
|
||||
for(Smethod elem : component.methods()){
|
||||
if(elem.is(Modifier.ABSTRACT) || elem.is(Modifier.NATIVE)) continue;
|
||||
//get all statements in the method, store them
|
||||
methodBlocks.put(elem.descString(), elem.tree().getBody().toString()
|
||||
.replaceAll("this\\.<(.*)>self\\(\\)", "this") //fix parameterized self() calls
|
||||
.replaceAll("self\\(\\)", "this") //fix self() calls
|
||||
.replaceAll(" yield ", "") //fix enchanced switch
|
||||
.replaceAll("\\/\\*missing\\*\\/", "var") //fix vars
|
||||
);
|
||||
String body = elem.tree().getBody().toString();
|
||||
body = selfParamPattern.matcher(body).replaceAll("this"); //fix parameterized self() calls
|
||||
body = selfPattern.matcher(body).replaceAll("this"); //fix self() calls
|
||||
body = yieldPattern.matcher(body).replaceAll(""); //fix enhanced switch
|
||||
body = missingPattern.matcher(body).replaceAll("var"); //fix vars
|
||||
methodBlocks.put(elem.descString(), body);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,15 +240,21 @@ public class EntityProcess extends BaseProcessor{
|
||||
return result;
|
||||
});
|
||||
|
||||
Seq<Stype> exclusions = types(an, GroupDef::exclude).map(stype -> {
|
||||
Stype result = interfaceToComp(stype);
|
||||
if(result == null) throw new IllegalArgumentException("Interface " + stype + " does not have an associated component!");
|
||||
return result;
|
||||
});
|
||||
|
||||
//representative component type
|
||||
Stype repr = types.first();
|
||||
String groupType = repr.annotation(Component.class).base() ? baseName(repr) : interfaceName(repr);
|
||||
|
||||
String name = group.name().startsWith("g") ? group.name().substring(1) : group.name();
|
||||
String name = group.name();
|
||||
|
||||
boolean collides = an.collide();
|
||||
groupDefs.add(new GroupDefinition(name,
|
||||
ClassName.bestGuess(packageName + "." + groupType), types, an.spatial(), an.mapping(), collides));
|
||||
ClassName.bestGuess(packageName + "." + groupType), types, exclusions, an.spatial(), an.mapping(), collides, an.update()));
|
||||
|
||||
TypeSpec.Builder accessor = TypeSpec.interfaceBuilder("IndexableEntity__" + name);
|
||||
accessor.addMethod(MethodSpec.methodBuilder("setIndex__" + name).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC).addParameter(int.class, "index").returns(void.class).build());
|
||||
@@ -258,7 +270,9 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
//all component classes (not interfaces)
|
||||
Seq<Stype> components = allComponents(type);
|
||||
Seq<GroupDefinition> groups = groupDefs.select(g -> (!g.components.isEmpty() && !g.components.contains(s -> !components.contains(s))) || g.manualInclusions.contains(type));
|
||||
Seq<GroupDefinition> groups = groupDefs.select(g -> (!g.components.isEmpty() && !Structs.contains(ann.excludeGroups(), g.name)
|
||||
&& !g.components.contains(s -> !components.contains(s)) && !g.excludedComponents.contains(s -> components.contains(s))));
|
||||
|
||||
ObjectMap<String, Seq<Smethod>> methods = new ObjectMap<>();
|
||||
ObjectMap<FieldSpec, Svar> specVariables = new ObjectMap<>();
|
||||
ObjectSet<String> usedFields = new ObjectSet<>();
|
||||
@@ -558,7 +572,15 @@ public class EntityProcess extends BaseProcessor{
|
||||
String blockName = elem.up().getSimpleName().toString().toLowerCase().replace("comp", "");
|
||||
|
||||
//skip empty blocks
|
||||
if(str.replace("{", "").replace("\n", "").replace("}", "").replace("\t", "").replace(" ", "").isEmpty()){
|
||||
boolean empty = true;
|
||||
for(int i = 0; i < str.length(); i++){
|
||||
char c = str.charAt(i);
|
||||
if(c != '{' && c != '}' && c != '\n' && c != '\t' && c != ' '){
|
||||
empty = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(empty){
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -685,13 +707,18 @@ public class EntityProcess extends BaseProcessor{
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||
|
||||
MethodSpec.Builder groupUpdate = MethodSpec.methodBuilder("update")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||
|
||||
MethodSpec.Builder groupPoolUpdate = MethodSpec.methodBuilder("updatePooling")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||
|
||||
//free everything pooled at the start of each updaet
|
||||
groupUpdate
|
||||
groupPoolUpdate
|
||||
.addStatement("for($T p : freeQueue) $T.free(p)", Poolable.class, Pools.class)
|
||||
.addStatement("freeQueue.clear()");
|
||||
|
||||
groupUpdate.addStatement("updatePooling()");
|
||||
|
||||
//method resize
|
||||
for(GroupDefinition group : groupDefs){
|
||||
if(group.spatial){
|
||||
@@ -700,7 +727,11 @@ public class EntityProcess extends BaseProcessor{
|
||||
}
|
||||
}
|
||||
|
||||
groupUpdate.addStatement("all.update()");
|
||||
for(GroupDefinition group : groupDefs){
|
||||
if(group.updates){
|
||||
groupUpdate.addStatement("$L.update()", group.name);
|
||||
}
|
||||
}
|
||||
|
||||
for(GroupDefinition group : groupDefs){
|
||||
if(group.collides){
|
||||
@@ -709,6 +740,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
}
|
||||
|
||||
groupsBuilder.addMethod(groupResize.build());
|
||||
groupsBuilder.addMethod(groupPoolUpdate.build());
|
||||
groupsBuilder.addMethod(groupUpdate.build());
|
||||
|
||||
write(groupsBuilder);
|
||||
@@ -984,17 +1016,18 @@ public class EntityProcess extends BaseProcessor{
|
||||
class GroupDefinition{
|
||||
final String name;
|
||||
final ClassName baseType;
|
||||
final Seq<Stype> components;
|
||||
final boolean spatial, mapping, collides;
|
||||
final ObjectSet<Selement> manualInclusions = new ObjectSet<>();
|
||||
final Seq<Stype> components, excludedComponents;
|
||||
final boolean spatial, mapping, collides, updates;
|
||||
|
||||
public GroupDefinition(String name, ClassName bestType, Seq<Stype> components, boolean spatial, boolean mapping, boolean collides){
|
||||
public GroupDefinition(String name, ClassName bestType, Seq<Stype> components, Seq<Stype> excludedComponents, boolean spatial, boolean mapping, boolean collides, boolean updates){
|
||||
this.baseType = bestType;
|
||||
this.components = components;
|
||||
this.excludedComponents = excludedComponents;
|
||||
this.name = name;
|
||||
this.spatial = spatial;
|
||||
this.mapping = mapping;
|
||||
this.collides = collides;
|
||||
this.updates = updates;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -142,6 +142,19 @@ public class AssetsProcess extends BaseProcessor{
|
||||
.addParameter(int.class, "id")
|
||||
.returns(Sound.class)
|
||||
.addStatement("return (Sound)idToSound.get(id, () -> Sounds.none)").build());
|
||||
|
||||
type.addMethod(MethodSpec.methodBuilder("registerSound")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||
.addParameter(Sound.class, "sound")
|
||||
.addParameter(int.class, "id")
|
||||
.returns(void.class)
|
||||
.addStatement("idToSound.put(id, sound); soundToId.put(sound, id);").build());
|
||||
|
||||
type.addMethod(MethodSpec.methodBuilder("unregisterSound")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||
.addParameter(Sound.class, "sound")
|
||||
.returns(void.class)
|
||||
.addStatement("int id = soundToId.get(sound); if(id != 0){ soundToId.remove(sound); idToSound.remove(id); }").build());
|
||||
}
|
||||
|
||||
HashSet<String> names = new HashSet<>();
|
||||
|
||||
@@ -6,6 +6,7 @@ atrax=1
|
||||
beta=30
|
||||
block=2
|
||||
corvus=24
|
||||
dummy=49
|
||||
elude=45
|
||||
flare=3
|
||||
gamma=31
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{fields:[{name:abilities,type:"mindustry.entities.abilities.Ability[]"},{name:aimX,type:float},{name:aimY,type:float},{name:building,type:Building},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}
|
||||
@@ -42,8 +42,8 @@ allprojects{
|
||||
if(!project.hasProperty("versionModifier")) versionModifier = 'release'
|
||||
if(!project.hasProperty("versionType")) versionType = 'official'
|
||||
appName = 'Mindustry'
|
||||
steamworksVersion = '0b86023401880bb5e586bc404bedbaae9b1f1c94'
|
||||
rhinoVersion = '54b75cbd1207ef1fd5cff517cbd188e763c85baa'
|
||||
steamworksVersion = '185e76cfe630a6f0e1dd7b9bf57be41f6064a1f2'
|
||||
rhinoVersion = '32395f942976a6d1d21ec9877664554cd5762306'
|
||||
|
||||
loadVersionProps = {
|
||||
return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p }
|
||||
@@ -77,7 +77,8 @@ allprojects{
|
||||
}
|
||||
|
||||
hasSprites = {
|
||||
return new File(rootDir, "core/assets/sprites/sprites.aatls").exists()
|
||||
def file = new File(rootDir, "core/build/last_pack_version")
|
||||
return new File(rootDir, "core/assets/sprites/sprites.aatls").exists() && file.exists() && file.text == versionNumber
|
||||
}
|
||||
|
||||
getModifierString = {
|
||||
@@ -193,7 +194,7 @@ allprojects{
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile){
|
||||
targetCompatibility = 8
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
options.encoding = "UTF-8"
|
||||
options.compilerArgs += ["-Xlint:deprecation"]
|
||||
@@ -214,16 +215,32 @@ allprojects{
|
||||
|
||||
configure(project(":annotations")){
|
||||
tasks.withType(JavaCompile){
|
||||
targetCompatibility = 8
|
||||
sourceCompatibility = 8
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
options.fork = true
|
||||
|
||||
options.compilerArgs.addAll([
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
|
||||
"--add-exports", "java.base/sun.reflect.annotation=ALL-UNNAMED"
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
//compile with java 8 compatibility for everything except the annotation project
|
||||
configure(subprojects - project(":annotations") - project(":tests")){
|
||||
tasks.withType(JavaCompile){
|
||||
options.compilerArgs.addAll(['--release', '8'])
|
||||
options.compilerArgs.addAll(['--release', '17'])
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc){
|
||||
@@ -254,7 +271,6 @@ project(":desktop"){
|
||||
implementation "com.github.Anuken:steamworks4j:$steamworksVersion"
|
||||
|
||||
implementation arcModule("backends:backend-sdl")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,7 +282,7 @@ project(":core"){
|
||||
kapt{
|
||||
javacOptions{
|
||||
option("-source", "17")
|
||||
option("-target", "1.8")
|
||||
option("-target", "17")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,6 +326,7 @@ project(":core"){
|
||||
from{ configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) } }
|
||||
from zipTree("../server/build/libs/server-release.jar")
|
||||
from files("src/")
|
||||
from files("../../Arc/natives/natives-desktop/libs")
|
||||
from files("../../Arc/arc-core/src/")
|
||||
from files("../../Arc/extensions/arcnet/src/")
|
||||
from files("../../Arc/extensions/g3d/src/")
|
||||
@@ -330,17 +347,27 @@ project(":core"){
|
||||
from sourceSets.main.allSource
|
||||
}
|
||||
|
||||
task assetsJar(type: Jar, dependsOn: ":tools:pack"){
|
||||
task assetsJar(type: Jar){
|
||||
dependsOn ":tools:pack"
|
||||
archiveClassifier = 'assets'
|
||||
from files("assets"){
|
||||
exclude "config", "cache", "music", "sounds", "sprites/fallback"
|
||||
|
||||
into('assets'){
|
||||
from 'assets'
|
||||
exclude 'config', 'cache', 'music', 'sounds', 'sprites/fallback'
|
||||
}
|
||||
|
||||
into('assets-raw/sprites'){
|
||||
from 'assets-raw/sprites_out'
|
||||
include '**/*.png'
|
||||
}
|
||||
}
|
||||
|
||||
task musicJar(type: Jar){
|
||||
archiveClassifier = 'music'
|
||||
from files("assets"){
|
||||
include "music/*", "sounds/*"
|
||||
|
||||
into('assets'){
|
||||
from 'assets'
|
||||
include '**/*.ogg', '**/*.mp3'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,7 +385,6 @@ project(":core"){
|
||||
if(localArc && debugged()) api arcModule("extensions:recorder")
|
||||
if(localArc) api arcModule(":extensions:packer")
|
||||
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
compileOnly project(":annotations")
|
||||
if(!project.hasProperty("noKapt")) kapt project(":annotations")
|
||||
}
|
||||
@@ -403,7 +429,7 @@ project(":server"){
|
||||
dependencies{
|
||||
implementation project(":core")
|
||||
implementation arcModule("backends:backend-headless")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
implementation 'org.jline:jline:4.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -449,8 +475,8 @@ project(":tools"){
|
||||
implementation arcModule("natives:natives-freetype-desktop")
|
||||
implementation arcModule("backends:backend-headless")
|
||||
|
||||
implementation("com.google.guava:guava:33.3.1-jre")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
implementation "com.google.guava:guava:33.3.1-jre"
|
||||
implementation 'com.github.javaparser:javaparser-core:3.28.2'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -508,3 +534,9 @@ task resolveDependencies{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(System.getProperty("compileMethodParams") != null){
|
||||
project(":core").tasks.withType(JavaCompile).configureEach{
|
||||
options.compilerArgs << '-parameters'
|
||||
}
|
||||
}
|
||||
@@ -308,12 +308,6 @@
|
||||
"discord-logo-white"
|
||||
]
|
||||
},
|
||||
{
|
||||
"uid": "dd6df3b754e8d0dbf09d9b24088f0442",
|
||||
"css": "box",
|
||||
"code": 59422,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "f08ba9f0e8f9b426a92efcaa59c1e932",
|
||||
"css": "reddit-alien",
|
||||
@@ -1083,6 +1077,186 @@
|
||||
"search": [
|
||||
"arrow-note"
|
||||
]
|
||||
},
|
||||
{
|
||||
"uid": "9ea0a737ccc45d6c510dcbae56058849",
|
||||
"css": "music",
|
||||
"code": 59402,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "81db033e704eb7c586a365559d7c0f36",
|
||||
"css": "file-audio",
|
||||
"code": 61895,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e44601720c64e6bb6a2d5cba6b0c588c",
|
||||
"css": "volume-off",
|
||||
"code": 59404,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "fee6e00f36e8ca8ef3e4a62caa213bf6",
|
||||
"css": "volume-down",
|
||||
"code": 59423,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "76857a03fbaa6857fe063b6c25aa98ed",
|
||||
"css": "volume-up",
|
||||
"code": 59424,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "3db5347bd219f3bce6025780f5d9ef45",
|
||||
"css": "tag",
|
||||
"code": 59425,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "a3f89e106175a5c5c4e9738870b12e55",
|
||||
"css": "tags",
|
||||
"code": 59432,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "69bd9dfe950d07d910f39c6988364e49",
|
||||
"css": "battery-4",
|
||||
"code": 62016,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "7ab4ec24078133effbc4e923b65ef835",
|
||||
"css": "battery-3",
|
||||
"code": 62017,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e430a168b45ba40aa988ca1a5034a553",
|
||||
"css": "battery-2",
|
||||
"code": 62018,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "99f4ea74adc24022106932d84a49b055",
|
||||
"css": "battery-1",
|
||||
"code": 62019,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "9983d2489e028d659d196915a25ef3ca",
|
||||
"css": "battery-0",
|
||||
"code": 62020,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "26613a2e6bc41593c54bead46f8c8ee3",
|
||||
"css": "file-code",
|
||||
"code": 61897,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "dd69d9aa589ea7bc0a82a3fe67039f4b",
|
||||
"css": "file-video",
|
||||
"code": 61896,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e80ae555c1413a4ec18b33fb348b4049",
|
||||
"css": "file-archive",
|
||||
"code": 61894,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c95735c17a10af81448c7fed98a04546",
|
||||
"css": "folder-open",
|
||||
"code": 59438,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "b091a8bd0fdade174951f17d936f51e4",
|
||||
"css": "folder-empty",
|
||||
"code": 61716,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6533bdc16ab201eb3f3b27ce989cab33",
|
||||
"css": "folder-open-empty",
|
||||
"code": 61717,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c7a75a25880928fe76981a53eca4f926",
|
||||
"css": "inbox",
|
||||
"code": 59439,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6fe95ffc3c807e62647d4f814a96e0d7",
|
||||
"css": "sitemap",
|
||||
"code": 61672,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "2c413e78faf1d6631fd7b094d14c2253",
|
||||
"css": "cloud",
|
||||
"code": 59441,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "de2fc7a5c986ab8c622f63455d7cf814",
|
||||
"css": "upload-cloud",
|
||||
"code": 61678,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f5999a012fc3752386635ec02a858447",
|
||||
"css": "download-cloud",
|
||||
"code": 61677,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e7a4824e79002c2d8ce3047b2da8b5a2",
|
||||
"css": "rain",
|
||||
"code": 59442,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "ac10a3a3077eab1b9d66509eb25fb9b4",
|
||||
"css": "cloud-sun",
|
||||
"code": 59448,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "6f200a5a449259c51cd0ccf56b4c1e93",
|
||||
"css": "drizzle",
|
||||
"code": 59452,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "3cac7625657b10cf706e7f332749c912",
|
||||
"css": "cloud-flash",
|
||||
"code": 59456,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "364cc69fb3edb8fb21caa6a2c0489589",
|
||||
"css": "cloud-wind",
|
||||
"code": 59457,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "cc05df515bebe11df3ada0a5910a8f6d",
|
||||
"css": "box",
|
||||
"code": 59422,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "d5f287ad8e3a2db8f808bc09980ec3dc",
|
||||
"css": "chart-alt",
|
||||
"code": 59459,
|
||||
"src": "typicons"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 966 B |
|
After Width: | Height: | Size: 583 B |
|
After Width: | Height: | Size: 494 B |
|
After Width: | Height: | Size: 366 B |
|
After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 273 B |
|
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 428 B |
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 425 B |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 359 B |
|
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 400 B |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 560 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1010 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 130 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 576 B |
|
After Width: | Height: | Size: 609 B |
@@ -37,4 +37,5 @@ sector.siege.credit = hhh i 17
|
||||
sector.ravine.credit = Bepis
|
||||
|
||||
#megabase center
|
||||
sector.sector-serpulo-27.name = ᒆᐴᑫᑈᐴᐾᐶᒅᑜᒆ
|
||||
sector.sector-serpulo-27.name = ᒆᐴᑫᑈᐴᐾᐶᒅᑜᒆ
|
||||
threat.unreasonable = ᐰᐬᑀᐲᑚᑓᐭ
|
||||
@@ -113,7 +113,6 @@ Michael Klier (opengameart.org)
|
||||
Lee Barkovich (opengameart.org)
|
||||
Neoqueto (Darktech LDR Font)
|
||||
Nikolass
|
||||
VolasYouKnow
|
||||
Quick-Korx
|
||||
Angel-24
|
||||
Catchears
|
||||
@@ -187,11 +186,15 @@ Iniquit
|
||||
DSFdsfWxp
|
||||
Someone's Shadow
|
||||
buj
|
||||
dozham
|
||||
Agzam4
|
||||
ItsKirby69
|
||||
giannir1988
|
||||
TheCuber
|
||||
萌新-hhgs
|
||||
Jovinull
|
||||
Denilseven
|
||||
Alon
|
||||
硫缺铅/PyratiteNoLead
|
||||
Space
|
||||
Space
|
||||
Eric Wolf
|
||||
|
||||
@@ -624,3 +624,5 @@
|
||||
63058=metal-wall-3|block-metal-wall-3-ui
|
||||
63057=ore-wall-graphite|block-ore-wall-graphite-ui
|
||||
63056=large-canvas|block-large-canvas-ui
|
||||
63055=target-dummy|block-target-dummy-ui
|
||||
63054=dummy|unit-dummy-ui
|
||||
|
||||