Compare commits
1467 Commits
v140.3
...
async-ping
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63b92e6dd6 | ||
|
|
3be67aa52a | ||
|
|
a73b783d98 | ||
|
|
db4c861dde | ||
|
|
c7a35ae789 | ||
|
|
3e5ad07e8c | ||
|
|
8aa7e8b930 | ||
|
|
021e766214 | ||
|
|
8d89fac0af | ||
|
|
342ec4adce | ||
|
|
d4d85ec873 | ||
|
|
4406431291 | ||
|
|
1c40e3bbf2 | ||
|
|
083168f7e0 | ||
|
|
35a833eb67 | ||
|
|
b9bf4ee794 | ||
|
|
6f3e75569c | ||
|
|
76e83c1516 | ||
|
|
bd4ae0639d | ||
|
|
066fa04ded | ||
|
|
59ea35c443 | ||
|
|
477645a211 | ||
|
|
e9d95c2c2e | ||
|
|
1224b29a4b | ||
|
|
41f448af2c | ||
|
|
4bf140c516 | ||
|
|
282946c5d8 | ||
|
|
75a06eaea1 | ||
|
|
7cf3ce0f66 | ||
|
|
7d8aea77d8 | ||
|
|
b8ab3fcc90 | ||
|
|
9d4f5ff87c | ||
|
|
778e61e8d5 | ||
|
|
2297aed1c9 | ||
|
|
68f82e7b44 | ||
|
|
ef4a07a94f | ||
|
|
05fcc603b4 | ||
|
|
2366041cfb | ||
|
|
367a20c891 | ||
|
|
0c233319d9 | ||
|
|
22b1639b6f | ||
|
|
944797f8e1 | ||
|
|
931c03945d | ||
|
|
7440f195ba | ||
|
|
46fa57bb3b | ||
|
|
292c08fe63 | ||
|
|
2f4d5fc1b2 | ||
|
|
8a5ccb3acf | ||
|
|
14854ae0a2 | ||
|
|
7fedc05ea9 | ||
|
|
cf1856229e | ||
|
|
1d894bdacd | ||
|
|
84add050a9 | ||
|
|
30d2b443b1 | ||
|
|
a4c137b6b8 | ||
|
|
f0a2bb87fc | ||
|
|
797ef6400c | ||
|
|
ce1ac8e934 | ||
|
|
cde4fa2c29 | ||
|
|
a2356d74aa | ||
|
|
b0cc7d2e85 | ||
|
|
e8db6d4837 | ||
|
|
1d3736cf82 | ||
|
|
a2e5fbdedb | ||
|
|
b94de4e9b9 | ||
|
|
92b2fc0772 | ||
|
|
07fb3e04ff | ||
|
|
3949679cc4 | ||
|
|
4aaf3b2287 | ||
|
|
6e163591d9 | ||
|
|
f5b9fc21d0 | ||
|
|
c255ff0acd | ||
|
|
5eab64ee50 | ||
|
|
0145a1599e | ||
|
|
89261e187e | ||
|
|
836e0a6f66 | ||
|
|
5a30696e79 | ||
|
|
2191c89fe3 | ||
|
|
981796a5b2 | ||
|
|
fae167a91d | ||
|
|
43e64c5205 | ||
|
|
ad746938a7 | ||
|
|
61945e5ce7 | ||
|
|
9d62bd0422 | ||
|
|
0b6b9b4525 | ||
|
|
601efbf65f | ||
|
|
0f3b5d155e | ||
|
|
faf4432fbe | ||
|
|
60d1c91bf4 | ||
|
|
7652fdf7cd | ||
|
|
a68dc4feb2 | ||
|
|
55881d67b1 | ||
|
|
c1fabfd4a4 | ||
|
|
7d1bbb61f0 | ||
|
|
288c969f51 | ||
|
|
9b6d95c507 | ||
|
|
33178c1635 | ||
|
|
d1d1454a55 | ||
|
|
288ab37e6f | ||
|
|
6ce59b74bd | ||
|
|
2677ea5600 | ||
|
|
3a64685280 | ||
|
|
93d4eaa970 | ||
|
|
5bf0193cb3 | ||
|
|
35df3202ae | ||
|
|
b2f76ea0bd | ||
|
|
d8da46af87 | ||
|
|
790d1e144f | ||
|
|
4495e85a4d | ||
|
|
2a6dc573ac | ||
|
|
180eb6d1f0 | ||
|
|
7d3bd7e71b | ||
|
|
41d19ce0cb | ||
|
|
332d98148b | ||
|
|
8ab37c5ce4 | ||
|
|
df8f90a02b | ||
|
|
13b78927f4 | ||
|
|
3a485eb338 | ||
|
|
175153e870 | ||
|
|
5d5783bf54 | ||
|
|
317a533b5c | ||
|
|
5830259e41 | ||
|
|
68b06fdea6 | ||
|
|
588732c856 | ||
|
|
eeefdd8054 | ||
|
|
1eb70404d7 | ||
|
|
a0f235b430 | ||
|
|
4802076bf8 | ||
|
|
3e4b86d095 | ||
|
|
32ca69a96f | ||
|
|
e494806cc8 | ||
|
|
c02a052b7b | ||
|
|
484d89f022 | ||
|
|
cecd84817c | ||
|
|
5bc73fafea | ||
|
|
ee52588ae7 | ||
|
|
f3e351cd9b | ||
|
|
626edbbf2a | ||
|
|
a2a690834d | ||
|
|
d15de9f4fc | ||
|
|
dd5dfa6a97 | ||
|
|
2b0a6a6f97 | ||
|
|
c20684025e | ||
|
|
ec48733150 | ||
|
|
45c21d60bf | ||
|
|
3232e97d1a | ||
|
|
3aa4da7ebd | ||
|
|
351c2c84f2 | ||
|
|
91cc4f922e | ||
|
|
2f9f371c88 | ||
|
|
1df0495a2f | ||
|
|
b3c26fac05 | ||
|
|
adada50f1c | ||
|
|
cf131696bd | ||
|
|
cf02b0f36d | ||
|
|
5d4d904ef9 | ||
|
|
a0dc08aaca | ||
|
|
fdfb79477b | ||
|
|
c353163c34 | ||
|
|
c63e853f8b | ||
|
|
6bc01a07a6 | ||
|
|
de50b207e5 | ||
|
|
54cf7812f0 | ||
|
|
862d3153d9 | ||
|
|
2d6e1cdf65 | ||
|
|
9307cd74ef | ||
|
|
88b10f4cf8 | ||
|
|
af36f5fd6d | ||
|
|
ed96b2eec8 | ||
|
|
5fe28254e7 | ||
|
|
0afed49b7c | ||
|
|
0271089211 | ||
|
|
9bd494504e | ||
|
|
871209d880 | ||
|
|
08758ec29c | ||
|
|
ada2ee128b | ||
|
|
45aee7d582 | ||
|
|
f57d6a7ede | ||
|
|
2ad5e37302 | ||
|
|
90e40af8c1 | ||
|
|
20b2be5de8 | ||
|
|
557f2d4447 | ||
|
|
02a53daa58 | ||
|
|
120860665d | ||
|
|
6543c41bde | ||
|
|
1a3824700a | ||
|
|
bc308847f4 | ||
|
|
e1ffc4ed62 | ||
|
|
5f06ce0bff | ||
|
|
8db6ca8b59 | ||
|
|
0469bb5ce5 | ||
|
|
6ea2188bee | ||
|
|
a0c4b0e431 | ||
|
|
8bace60059 | ||
|
|
d759e71edc | ||
|
|
44f7c726b5 | ||
|
|
8d04a6820d | ||
|
|
f9d39ad31a | ||
|
|
589b8d9d37 | ||
|
|
fbf8b2bff1 | ||
|
|
130336bff0 | ||
|
|
9af7a864bd | ||
|
|
31eee11bf5 | ||
|
|
d2956d1f2c | ||
|
|
1feeef7aef | ||
|
|
f5424ea59b | ||
|
|
4076a146b1 | ||
|
|
f4741e0e59 | ||
|
|
3fcaf8f916 | ||
|
|
726ba2af31 | ||
|
|
aa018b314d | ||
|
|
8bb6acfacb | ||
|
|
b189bfdf44 | ||
|
|
afc2e15c51 | ||
|
|
0787cbbb5f | ||
|
|
efce844e4e | ||
|
|
46b88092db | ||
|
|
bdbf168797 | ||
|
|
6200f08cd8 | ||
|
|
533c5a8afb | ||
|
|
c3134bfb2f | ||
|
|
5d1ec319bc | ||
|
|
60c05587a7 | ||
|
|
4c33eed833 | ||
|
|
e5b3488a05 | ||
|
|
53967d4d70 | ||
|
|
1c96da3d67 | ||
|
|
ba6d2fc9e5 | ||
|
|
70132436db | ||
|
|
0c801b5c32 | ||
|
|
299457cea5 | ||
|
|
1a763a5db3 | ||
|
|
d138aa7568 | ||
|
|
c434e18f8f | ||
|
|
d780ee0434 | ||
|
|
dd9927d72d | ||
|
|
a836a64b5b | ||
|
|
06bacab710 | ||
|
|
d2595543f9 | ||
|
|
4c15e0e0fc | ||
|
|
84eb35ec83 | ||
|
|
8282a1e1bb | ||
|
|
e317a0da9e | ||
|
|
c4dc095adb | ||
|
|
fbd0675f75 | ||
|
|
71beeae32a | ||
|
|
2ab3ad0330 | ||
|
|
9bf23bfcc8 | ||
|
|
0da4f763b3 | ||
|
|
66b8a6f939 | ||
|
|
bc6434bb64 | ||
|
|
7f805f1712 | ||
|
|
afc97ebeda | ||
|
|
e7a0d05895 | ||
|
|
498bf079ec | ||
|
|
5c50356fb2 | ||
|
|
8f97625fa1 | ||
|
|
d53ac76461 | ||
|
|
6dff68e7d9 | ||
|
|
e4eadbbb7f | ||
|
|
884482e9b6 | ||
|
|
8f4c21799c | ||
|
|
c0ed5b48f7 | ||
|
|
f0963ef302 | ||
|
|
cdb6e3f85b | ||
|
|
6b2229ffb9 | ||
|
|
24c2be4994 | ||
|
|
b4f01742cc | ||
|
|
e02bb988c6 | ||
|
|
318ff1b5ad | ||
|
|
2aaa861755 | ||
|
|
b3cddb0d82 | ||
|
|
fb53ea735d | ||
|
|
f606589173 | ||
|
|
5b5c5d0365 | ||
|
|
e98c112378 | ||
|
|
9eaf9ddddd | ||
|
|
e139baf858 | ||
|
|
7b686d56a8 | ||
|
|
1cdbb562f8 | ||
|
|
6014f2353a | ||
|
|
e15a4e6bdf | ||
|
|
ad6c9a5029 | ||
|
|
dd7cd827b9 | ||
|
|
9c10a09438 | ||
|
|
90487f4120 | ||
|
|
67e35af718 | ||
|
|
83c169ae01 | ||
|
|
179dfc8d56 | ||
|
|
5fe4b9a36c | ||
|
|
e1ffce2fd8 | ||
|
|
1d051b5c16 | ||
|
|
b0612fa33d | ||
|
|
3e80541c2d | ||
|
|
e5047d752d | ||
|
|
d06df37d02 | ||
|
|
968fa2f9b1 | ||
|
|
f2994652e2 | ||
|
|
9f88d895ad | ||
|
|
f6082225e8 | ||
|
|
695dad201f | ||
|
|
db60fcd64d | ||
|
|
e2daf957fb | ||
|
|
55684e8b98 | ||
|
|
270c7845b8 | ||
|
|
44757f0cb4 | ||
|
|
af20ea5605 | ||
|
|
17978f736f | ||
|
|
f38a6ed7f5 | ||
|
|
a0a0b5942e | ||
|
|
12769dd52b | ||
|
|
212adddd53 | ||
|
|
2bc8a25bc6 | ||
|
|
93c46ec2dc | ||
|
|
35742f00f1 | ||
|
|
fbac1e2e8a | ||
|
|
cdb77defb0 | ||
|
|
4745c51901 | ||
|
|
e433667c04 | ||
|
|
2aad7ddde0 | ||
|
|
ef7ee5fdfe | ||
|
|
da32780a38 | ||
|
|
3229c1e7b7 | ||
|
|
4f701a7063 | ||
|
|
11c86b844b | ||
|
|
471c8728a0 | ||
|
|
5ec2ee0428 | ||
|
|
3c6fc363f3 | ||
|
|
c9488fd72b | ||
|
|
0ccc4df292 | ||
|
|
1641d50661 | ||
|
|
e391434dc9 | ||
|
|
69462eb3f0 | ||
|
|
ed7f00f48a | ||
|
|
2522b16738 | ||
|
|
34782e943c | ||
|
|
7a02230226 | ||
|
|
033e3d136e | ||
|
|
721c2d40d8 | ||
|
|
b0f449371e | ||
|
|
d01294d35c | ||
|
|
da8ebad0c5 | ||
|
|
ef1413beab | ||
|
|
fbdfef625a | ||
|
|
a6d0a17bd9 | ||
|
|
002f322563 | ||
|
|
d9c2e9a6b1 | ||
|
|
f4bf76e3b2 | ||
|
|
74844a6fa9 | ||
|
|
0a84482f91 | ||
|
|
4ea8199f83 | ||
|
|
c110e6f802 | ||
|
|
1cc862d74d | ||
|
|
970e07e146 | ||
|
|
19b4f871c2 | ||
|
|
667d9b63d5 | ||
|
|
3ae016e8ab | ||
|
|
0b6ff5c56d | ||
|
|
84dc5550ab | ||
|
|
5c0c8dcd43 | ||
|
|
91d87e1dba | ||
|
|
16488aeae4 | ||
|
|
a91d39f9f2 | ||
|
|
7a1411c03e | ||
|
|
b5db3ca6af | ||
|
|
ef83af5f15 | ||
|
|
0c1534d7d3 | ||
|
|
e2521dc47f | ||
|
|
57e5a96543 | ||
|
|
b046861530 | ||
|
|
e9a801bcef | ||
|
|
3e53c14d86 | ||
|
|
b0f5c6d96d | ||
|
|
4a28f73d65 | ||
|
|
37c596f409 | ||
|
|
fd25523392 | ||
|
|
4c704b9366 | ||
|
|
d7c12edba4 | ||
|
|
a45c0a7cec | ||
|
|
c1737a9e51 | ||
|
|
46ed5e05bb | ||
|
|
177125a616 | ||
|
|
dbea2e2161 | ||
|
|
db9e672eb2 | ||
|
|
93269692ab | ||
|
|
8b155828b7 | ||
|
|
d41b6f219b | ||
|
|
6119f3a507 | ||
|
|
1d484d34e7 | ||
|
|
81688f3954 | ||
|
|
b1cb50a9cd | ||
|
|
4ed6ed9bcb | ||
|
|
4ddd1f7ca0 | ||
|
|
198d18bac4 | ||
|
|
8bbf5b1f52 | ||
|
|
68a5ab14be | ||
|
|
8c777e79fa | ||
|
|
6310d54b53 | ||
|
|
5b252e0dd8 | ||
|
|
0b68c34297 | ||
|
|
81b88e6cc8 | ||
|
|
0a7690a43b | ||
|
|
39dfdff53a | ||
|
|
95609a90be | ||
|
|
7536bbfeb0 | ||
|
|
d8535c4d03 | ||
|
|
2b12800123 | ||
|
|
65aecbed20 | ||
|
|
235c0222bf | ||
|
|
7d0bb3f1c8 | ||
|
|
2aab745603 | ||
|
|
8bcd3a8990 | ||
|
|
a851b2ee6b | ||
|
|
276245bf3c | ||
|
|
cafec1386c | ||
|
|
f63837fa4b | ||
|
|
0965d90bc0 | ||
|
|
820a707e38 | ||
|
|
9cb64d987d | ||
|
|
8f12bccecf | ||
|
|
d63133c720 | ||
|
|
2286b54011 | ||
|
|
f2bb712860 | ||
|
|
c59866a65c | ||
|
|
a539d6277d | ||
|
|
e6bb34acf2 | ||
|
|
06a5201ae8 | ||
|
|
c04757414f | ||
|
|
9762507db6 | ||
|
|
b6c28bc27d | ||
|
|
7fabe6b914 | ||
|
|
f633fb0af5 | ||
|
|
71e049d92d | ||
|
|
d9c607995b | ||
|
|
4899b2765d | ||
|
|
1c76087930 | ||
|
|
78b4d366cc | ||
|
|
674d1bbcb6 | ||
|
|
8f0fe86366 | ||
|
|
8598eedd6f | ||
|
|
64765cc4d3 | ||
|
|
36193c755f | ||
|
|
a6ec8f4bcc | ||
|
|
653544f072 | ||
|
|
6fa88cdcb0 | ||
|
|
7ce05fde7a | ||
|
|
9d9d5d2e18 | ||
|
|
9ac8debf7a | ||
|
|
fccf6847c1 | ||
|
|
3e15f70efa | ||
|
|
fa0ce204da | ||
|
|
0d1c56fb60 | ||
|
|
cc4efdd428 | ||
|
|
815ee809b0 | ||
|
|
d7e0aea6e7 | ||
|
|
aecd220574 | ||
|
|
0b5ce41b49 | ||
|
|
d9c9e0794d | ||
|
|
e6b2e27d2a | ||
|
|
2e0c5619b1 | ||
|
|
2294c4301d | ||
|
|
2513f06895 | ||
|
|
a7ba018dc3 | ||
|
|
66ad4e1798 | ||
|
|
2b93d39e72 | ||
|
|
a1061059ab | ||
|
|
68d51c1770 | ||
|
|
844894f584 | ||
|
|
4cef55bcc5 | ||
|
|
217a1ee300 | ||
|
|
cbc3721e50 | ||
|
|
9aa87f0f33 | ||
|
|
de773ce406 | ||
|
|
68dd1bb2ae | ||
|
|
73e9ed4919 | ||
|
|
8c93fb5f10 | ||
|
|
cf503c0efc | ||
|
|
f698d4dd37 | ||
|
|
8a9b123b81 | ||
|
|
be525df065 | ||
|
|
34ba2cfd41 | ||
|
|
3b2ac61dd0 | ||
|
|
4b6152ffe9 | ||
|
|
6b04f7eb1c | ||
|
|
15d3ff3b3e | ||
|
|
e61deb05ec | ||
|
|
b0cbe06e08 | ||
|
|
2b1557832d | ||
|
|
3686f1c058 | ||
|
|
b9f2da7286 | ||
|
|
a47e4518fe | ||
|
|
d0e3a691d1 | ||
|
|
c9beb3d158 | ||
|
|
7fa002c626 | ||
|
|
fb3fff40d2 | ||
|
|
ee5fc8a332 | ||
|
|
4a48115c0a | ||
|
|
d54f7acceb | ||
|
|
d2de8e7880 | ||
|
|
424714972c | ||
|
|
700dd38a36 | ||
|
|
a4b1ad3b67 | ||
|
|
3ce71aa891 | ||
|
|
26b66f9bdb | ||
|
|
5548e72750 | ||
|
|
766a95da03 | ||
|
|
c705743696 | ||
|
|
0e24b67d09 | ||
|
|
9d8905a4ae | ||
|
|
2882f7840e | ||
|
|
73dd487af9 | ||
|
|
798b493334 | ||
|
|
8311261e3c | ||
|
|
26c54ae0ed | ||
|
|
6341da8f43 | ||
|
|
f0e272d84c | ||
|
|
9c23134f2a | ||
|
|
d3b7fb0990 | ||
|
|
90ed5f2750 | ||
|
|
e07ab5cef6 | ||
|
|
2e1b4934ad | ||
|
|
91964da088 | ||
|
|
cc66ccb49f | ||
|
|
bff4097c88 | ||
|
|
996cbefb4f | ||
|
|
579d63ac23 | ||
|
|
6a53a0e7be | ||
|
|
4edf4cac25 | ||
|
|
68141798d3 | ||
|
|
e3b815a4c6 | ||
|
|
57d000f767 | ||
|
|
3ac9ae29ee | ||
|
|
3942445d1f | ||
|
|
16223af87d | ||
|
|
109ba84625 | ||
|
|
ec80fe9aad | ||
|
|
680fc34ac3 | ||
|
|
d35acefcd0 | ||
|
|
c52b966dea | ||
|
|
c829f32efa | ||
|
|
beeeee9169 | ||
|
|
207806440b | ||
|
|
d60d3d78ea | ||
|
|
490b281c43 | ||
|
|
53cb0d4c89 | ||
|
|
d787b4353b | ||
|
|
9d21c0173d | ||
|
|
56f29e1cd5 | ||
|
|
e6aa87ed71 | ||
|
|
480b68f8cc | ||
|
|
3650589a59 | ||
|
|
e3d0734790 | ||
|
|
c45f3d2253 | ||
|
|
8e418915d4 | ||
|
|
2715d4954f | ||
|
|
6e33827576 | ||
|
|
63d036d6ed | ||
|
|
5487dad75e | ||
|
|
06edce3535 | ||
|
|
23cf1a7afa | ||
|
|
6566f1c554 | ||
|
|
1d4084c387 | ||
|
|
8efed88669 | ||
|
|
11cd27fe1d | ||
|
|
855789ec17 | ||
|
|
f8dac91cd9 | ||
|
|
161be3e8d3 | ||
|
|
ae6e74c24d | ||
|
|
2f991a85af | ||
|
|
f2c476a716 | ||
|
|
2b05264093 | ||
|
|
7de33b335a | ||
|
|
b47a1b6d0d | ||
|
|
a7e8dd126e | ||
|
|
7999eb4c4d | ||
|
|
45d205f0ef | ||
|
|
585104a7f7 | ||
|
|
a3f7203993 | ||
|
|
fb4787ba52 | ||
|
|
398a6f6a42 | ||
|
|
bdbb2de61a | ||
|
|
c5a53f119b | ||
|
|
e17d89e5a8 | ||
|
|
0119e71677 | ||
|
|
aa026b8b41 | ||
|
|
933e4e84e0 | ||
|
|
73a7772eeb | ||
|
|
275c3ec163 | ||
|
|
f1172d45eb | ||
|
|
87e79913c5 | ||
|
|
1656d788d3 | ||
|
|
19f34c14a0 | ||
|
|
3157ff8cea | ||
|
|
21fe8217d0 | ||
|
|
b7d707e8ba | ||
|
|
db96f2ef39 | ||
|
|
4b38f667e7 | ||
|
|
d5eeadab30 | ||
|
|
bc42b5a91e | ||
|
|
13745bfd99 | ||
|
|
5e18e08bdf | ||
|
|
6970a20f26 | ||
|
|
bd6c6524e6 | ||
|
|
e9bf56e88c | ||
|
|
6bf5e8ae1e | ||
|
|
660c38db43 | ||
|
|
2a76d25dfa | ||
|
|
7b9dfb9721 | ||
|
|
bd0592a54c | ||
|
|
12b6604143 | ||
|
|
e3d3167b13 | ||
|
|
2ed8bdb2bc | ||
|
|
a9a454dd61 | ||
|
|
496d6978d0 | ||
|
|
e4bc6e21a4 | ||
|
|
c406979291 | ||
|
|
b3508aa7c2 | ||
|
|
5207baea96 | ||
|
|
52d7a1e0e4 | ||
|
|
117169c1d3 | ||
|
|
cd461b133c | ||
|
|
59dd3a9e34 | ||
|
|
3d0541084b | ||
|
|
7d35c1ec7b | ||
|
|
07c7fd7dec | ||
|
|
6678729401 | ||
|
|
09d00b30e9 | ||
|
|
f3656d24d4 | ||
|
|
1968da9409 | ||
|
|
0d8c07d007 | ||
|
|
0e83300548 | ||
|
|
ba9e39d7a4 | ||
|
|
d4111b8e76 | ||
|
|
2bae95d2a8 | ||
|
|
69377bab3f | ||
|
|
2fc69c4f64 | ||
|
|
dae23c7fe6 | ||
|
|
7850e61672 | ||
|
|
24c01f97d3 | ||
|
|
a92bce2c14 | ||
|
|
e5ded1f2dd | ||
|
|
dc8783d4a6 | ||
|
|
0ef5255650 | ||
|
|
a922932a56 | ||
|
|
3fd5f52545 | ||
|
|
f976a294ce | ||
|
|
6f725d320b | ||
|
|
51b974f10e | ||
|
|
447e07420e | ||
|
|
dbbcf4b168 | ||
|
|
f3dd031d0e | ||
|
|
4998abfe01 | ||
|
|
636ce4ca94 | ||
|
|
bfdd7ecc3a | ||
|
|
28372b0f47 | ||
|
|
b4e03b46f6 | ||
|
|
16949f1e69 | ||
|
|
b272008a90 | ||
|
|
cc8d2b6a0c | ||
|
|
10fe6b9007 | ||
|
|
ce43af9091 | ||
|
|
788fa66a91 | ||
|
|
fedad1e0d0 | ||
|
|
a14149c952 | ||
|
|
053afcace9 | ||
|
|
e097346a73 | ||
|
|
4076f09573 | ||
|
|
e78fb11c48 | ||
|
|
135874b922 | ||
|
|
09aa68fdb2 | ||
|
|
dd5037d9d2 | ||
|
|
418d533c3c | ||
|
|
37e138858b | ||
|
|
b6a195cc80 | ||
|
|
4b4033e9e7 | ||
|
|
383d8b89e7 | ||
|
|
778d92b816 | ||
|
|
93daa7a5dc | ||
|
|
f88654cdc1 | ||
|
|
3e5898fff1 | ||
|
|
be96ddf463 | ||
|
|
20a3107b3f | ||
|
|
05874ad3e2 | ||
|
|
ea8d796561 | ||
|
|
129c3f446a | ||
|
|
f611a5f038 | ||
|
|
47c7906d55 | ||
|
|
c64b6092d7 | ||
|
|
f17719f08e | ||
|
|
cc41b99c75 | ||
|
|
1d1ec8ee2d | ||
|
|
8c7523b3b3 | ||
|
|
f01df70d3f | ||
|
|
c15b3421b2 | ||
|
|
b4d5d05217 | ||
|
|
9b1a8edafc | ||
|
|
fbcc53e2c0 | ||
|
|
e630bcf41e | ||
|
|
eb44a7ec84 | ||
|
|
023ec9f66b | ||
|
|
1bc3ac8761 | ||
|
|
4b3feb2f0e | ||
|
|
ac5526e785 | ||
|
|
95a7a181e0 | ||
|
|
0a869fd690 | ||
|
|
ec9c19101f | ||
|
|
31b01ac39e | ||
|
|
f74293b878 | ||
|
|
0e31103b21 | ||
|
|
591c31fd29 | ||
|
|
a20ca67527 | ||
|
|
c66abc3f0f | ||
|
|
fea52c9132 | ||
|
|
6163738ad8 | ||
|
|
443d31e4a5 | ||
|
|
2d827f83b4 | ||
|
|
fbc6740668 | ||
|
|
06cd71e13c | ||
|
|
f65edb3468 | ||
|
|
7cce799ec7 | ||
|
|
aefcb7746a | ||
|
|
a2dd2c88a2 | ||
|
|
2008cf6387 | ||
|
|
6ba1cd3ef6 | ||
|
|
c7181999b2 | ||
|
|
974d19fb75 | ||
|
|
f4dcd37be3 | ||
|
|
014750fa97 | ||
|
|
5c178c20a1 | ||
|
|
3762ee6313 | ||
|
|
4289450a4d | ||
|
|
509a6a28b5 | ||
|
|
54d7f3e17c | ||
|
|
7e23272668 | ||
|
|
70516752fc | ||
|
|
6ed336ad95 | ||
|
|
0adfee97cc | ||
|
|
dc921ff4a8 | ||
|
|
c39ad8ce6e | ||
|
|
a582fe0d1c | ||
|
|
6cbdc86169 | ||
|
|
a650018b6e | ||
|
|
743f61a92c | ||
|
|
9eefea3c6f | ||
|
|
b4a32f506e | ||
|
|
26c0c7467b | ||
|
|
d14cdfd59c | ||
|
|
017aa71da8 | ||
|
|
58cd1852f1 | ||
|
|
500f22b1d0 | ||
|
|
ed6619d2df | ||
|
|
be7a360bf5 | ||
|
|
2ff7ccfc19 | ||
|
|
bf1484b17c | ||
|
|
40c5510205 | ||
|
|
71caf31543 | ||
|
|
913722202e | ||
|
|
7bb03e8086 | ||
|
|
4e5475f0ed | ||
|
|
d4e7f4a2ee | ||
|
|
1928c6db83 | ||
|
|
c49075ff0d | ||
|
|
dbfd8a3ec1 | ||
|
|
1d358a3c84 | ||
|
|
0f661444bd | ||
|
|
4721086a8e | ||
|
|
a07db8a08e | ||
|
|
a00b3a4670 | ||
|
|
637bd4fc8f | ||
|
|
2b9ee88cc2 | ||
|
|
0006291631 | ||
|
|
f1175b8735 | ||
|
|
8cb6f080f1 | ||
|
|
7389a5de7f | ||
|
|
5459322080 | ||
|
|
4b0824a20c | ||
|
|
0ec59691bf | ||
|
|
f00209ece7 | ||
|
|
f05d1ebc78 | ||
|
|
2dbbd62163 | ||
|
|
49168bb8f9 | ||
|
|
10c656bd16 | ||
|
|
a8de7c17bd | ||
|
|
ea8b2dea50 | ||
|
|
87348feab7 | ||
|
|
8da8783331 | ||
|
|
603efd7653 | ||
|
|
a43d39597a | ||
|
|
376e5c0b29 | ||
|
|
f2cd506eb4 | ||
|
|
af76e889cf | ||
|
|
ef0efc84cb | ||
|
|
e02de8eab5 | ||
|
|
4d301ebdbf | ||
|
|
84817c0c24 | ||
|
|
e9dfd29dcd | ||
|
|
d7a87f36b7 | ||
|
|
379875f591 | ||
|
|
38b2540677 | ||
|
|
9ff10e9d16 | ||
|
|
ebe965ef40 | ||
|
|
32c146cdf1 | ||
|
|
97a603204b | ||
|
|
70bb7aff54 | ||
|
|
fc673de556 | ||
|
|
925d19d867 | ||
|
|
cda82e572f | ||
|
|
21f4efaddc | ||
|
|
93788addf6 | ||
|
|
5515cd3187 | ||
|
|
038994a95f | ||
|
|
d09f4c0db5 | ||
|
|
37daf0a871 | ||
|
|
e2f4dd1f4b | ||
|
|
88c201559f | ||
|
|
2dd59aaaff | ||
|
|
1266eb00ea | ||
|
|
174f0f2ffe | ||
|
|
798e442b2f | ||
|
|
dde7b77de6 | ||
|
|
afee374a66 | ||
|
|
4dd414c22f | ||
|
|
38b9027000 | ||
|
|
4e0e48ea32 | ||
|
|
c84ec75c53 | ||
|
|
bf51a01677 | ||
|
|
94caca680a | ||
|
|
2f675a3b75 | ||
|
|
9d986e1e8d | ||
|
|
8e1e003ff2 | ||
|
|
1a0edf80f1 | ||
|
|
b97e6ef84c | ||
|
|
b6f5d424da | ||
|
|
2e96f598fb | ||
|
|
e3ccd5cc2c | ||
|
|
7911a22cc9 | ||
|
|
19f58f3dca | ||
|
|
c4cd9e8f56 | ||
|
|
8db8d79eff | ||
|
|
257d341703 | ||
|
|
fc0f48e13d | ||
|
|
ab95b88c05 | ||
|
|
ca51ad601e | ||
|
|
c2d7e2eb72 | ||
|
|
4f34a9235c | ||
|
|
b21c0f4553 | ||
|
|
80ad379c18 | ||
|
|
6a8e0eb6b2 | ||
|
|
f5a32fdb6b | ||
|
|
5c45df1a69 | ||
|
|
e9fe52d578 | ||
|
|
19cd6fd07c | ||
|
|
9869922710 | ||
|
|
ad4ce35a42 | ||
|
|
18cfffd105 | ||
|
|
c774968c2d | ||
|
|
3813d66f30 | ||
|
|
871548c095 | ||
|
|
c4b1df9526 | ||
|
|
bf320a98b8 | ||
|
|
a78e7ca8c9 | ||
|
|
520d122d82 | ||
|
|
7ab9c6fd9c | ||
|
|
4d200276d2 | ||
|
|
c335722de5 | ||
|
|
25b26be87b | ||
|
|
e714285671 | ||
|
|
dd3ce95264 | ||
|
|
564e81e734 | ||
|
|
dc63112915 | ||
|
|
bc94e24874 | ||
|
|
94fe92d67d | ||
|
|
047d39d129 | ||
|
|
b6d27c16be | ||
|
|
7c52444e3c | ||
|
|
1f85d0d24f | ||
|
|
4a53a80b21 | ||
|
|
cee09dd167 | ||
|
|
39227774e1 | ||
|
|
6cd778783e | ||
|
|
5db4c67477 | ||
|
|
0f87942b16 | ||
|
|
3dd7412ed8 | ||
|
|
43d164d54b | ||
|
|
d09695a946 | ||
|
|
5976ed6983 | ||
|
|
d739269f59 | ||
|
|
72c28f7098 | ||
|
|
f2d83f3599 | ||
|
|
b611e0f9f4 | ||
|
|
f59c439f2f | ||
|
|
e6daf63a5a | ||
|
|
00ae28847e | ||
|
|
445e147c16 | ||
|
|
410f4f69a1 | ||
|
|
9e2251028b | ||
|
|
7f6907e14f | ||
|
|
c6829c23d4 | ||
|
|
70293a4864 | ||
|
|
29855243cb | ||
|
|
16358dbd6a | ||
|
|
83d28461f0 | ||
|
|
874cba7ad3 | ||
|
|
45baeb4933 | ||
|
|
8b35b44489 | ||
|
|
1289e20990 | ||
|
|
3593803ad9 | ||
|
|
0d89654103 | ||
|
|
aa7ba6548c | ||
|
|
9b02d26856 | ||
|
|
30c773b304 | ||
|
|
738b96b94b | ||
|
|
151743021b | ||
|
|
dbbb27ec0f | ||
|
|
89e942ee35 | ||
|
|
5ec0e9dc9f | ||
|
|
b40615d9e6 | ||
|
|
307943c098 | ||
|
|
ebb40145ac | ||
|
|
ae272f079b | ||
|
|
587c8c280c | ||
|
|
7bcfaf54ef | ||
|
|
bcee2e7083 | ||
|
|
ccf85b81c8 | ||
|
|
126cca9e86 | ||
|
|
688b5b9eea | ||
|
|
0496d2108c | ||
|
|
06e63dad45 | ||
|
|
3b8f789955 | ||
|
|
be751f5b28 | ||
|
|
9a7f8bb573 | ||
|
|
d34631458e | ||
|
|
74f1688dd2 | ||
|
|
9745c2b7fd | ||
|
|
bedd8f612a | ||
|
|
38de095a2e | ||
|
|
8c56568f23 | ||
|
|
d14c42d8ba | ||
|
|
bed0bd135e | ||
|
|
b3e111ebbb | ||
|
|
2c77477987 | ||
|
|
397fd087f2 | ||
|
|
0919063ca3 | ||
|
|
51daa82a1b | ||
|
|
e60fff43bd | ||
|
|
a5eda4fb2e | ||
|
|
c7ad9d0250 | ||
|
|
c5cf6f0af6 | ||
|
|
a3dbbe63c4 | ||
|
|
31bed37976 | ||
|
|
4f845202f8 | ||
|
|
cac29c4ecc | ||
|
|
0acb112f29 | ||
|
|
778e7d5f3f | ||
|
|
1b254745e9 | ||
|
|
1373381554 | ||
|
|
584b22300d | ||
|
|
6eb049c419 | ||
|
|
2289f29bd5 | ||
|
|
552d6a2e9f | ||
|
|
9aa45b2a7c | ||
|
|
ccd2727ab5 | ||
|
|
820fd0d7fc | ||
|
|
a4972886a3 | ||
|
|
552353972e | ||
|
|
db0691f32f | ||
|
|
a36e31c4b4 | ||
|
|
23f1d24c45 | ||
|
|
2b5ff56460 | ||
|
|
dbafdfb312 | ||
|
|
bb06c3f1e9 | ||
|
|
72c67f6c9b | ||
|
|
ea27fa53bf | ||
|
|
8bbd58053a | ||
|
|
f1b52164c9 | ||
|
|
6cfcffd04e | ||
|
|
ddd77b2081 | ||
|
|
f581aa3332 | ||
|
|
8126e970f3 | ||
|
|
52ec9f4296 | ||
|
|
cc17962d93 | ||
|
|
6c7d506e42 | ||
|
|
c1d3cdc5cb | ||
|
|
d85995f6fd | ||
|
|
bc622bd7ba | ||
|
|
027b996ad6 | ||
|
|
0bed338141 | ||
|
|
43922edac8 | ||
|
|
c4e1719c0c | ||
|
|
4deddc6def | ||
|
|
6f88684040 | ||
|
|
1a83d35923 | ||
|
|
5e8f5f1d62 | ||
|
|
d610cd6105 | ||
|
|
681bd19866 | ||
|
|
8eed0f8711 | ||
|
|
61a83d0f6e | ||
|
|
fc23ad9910 | ||
|
|
eba58c73e6 | ||
|
|
ba0335e5ef | ||
|
|
7de6bd23ea | ||
|
|
102d234129 | ||
|
|
583a1c69b6 | ||
|
|
1314dfe53e | ||
|
|
abc80b9aab | ||
|
|
2ab9783639 | ||
|
|
05f158fd51 | ||
|
|
13297023fe | ||
|
|
9cc392a9ed | ||
|
|
eb1d0b8362 | ||
|
|
7a01be6dba | ||
|
|
6a3b243937 | ||
|
|
68016cc2b5 | ||
|
|
b2f5312bf5 | ||
|
|
6a3638c3c2 | ||
|
|
3ca3eb5951 | ||
|
|
d043c75022 | ||
|
|
2db90408fe | ||
|
|
72577f20ba | ||
|
|
f62096dbd1 | ||
|
|
dbfbb08aaa | ||
|
|
4151d47837 | ||
|
|
c54a76fc8a | ||
|
|
95483286bf | ||
|
|
3d013fc09c | ||
|
|
b83f5c66ca | ||
|
|
288080eeac | ||
|
|
f0342b2396 | ||
|
|
e47806b9b8 | ||
|
|
4ae8a51676 | ||
|
|
e8fbfe536e | ||
|
|
b86ca1d12f | ||
|
|
1629afe491 | ||
|
|
3b1e5eadd9 | ||
|
|
df87b03e57 | ||
|
|
a8b18bea2f | ||
|
|
cdf14bb381 | ||
|
|
bce9ecc520 | ||
|
|
b692c071ba | ||
|
|
db90142a2d | ||
|
|
34b22f292c | ||
|
|
11ad5a0373 | ||
|
|
f4fabecce7 | ||
|
|
60fc2fb5cd | ||
|
|
04eba618d2 | ||
|
|
ac7b694e91 | ||
|
|
4fcb338d94 | ||
|
|
6dc3b7e729 | ||
|
|
cdb9fa0d7d | ||
|
|
2b11e1fb1e | ||
|
|
697c6a927a | ||
|
|
72b456fca2 | ||
|
|
f67e2c71e7 | ||
|
|
bee977cadc | ||
|
|
183ebb33b7 | ||
|
|
f6665de2e6 | ||
|
|
97390d25c0 | ||
|
|
3f1d957e28 | ||
|
|
e62a5888ef | ||
|
|
6d71bcd2eb | ||
|
|
2075a226e1 | ||
|
|
f55363a932 | ||
|
|
76f151789a | ||
|
|
1413b479ef | ||
|
|
b322b1165f | ||
|
|
fa02d8d280 | ||
|
|
251e10b000 | ||
|
|
6630f88613 | ||
|
|
c5c65d4475 | ||
|
|
c267743874 | ||
|
|
45ce8c8dec | ||
|
|
25c65e80cd | ||
|
|
e51ab514a8 | ||
|
|
21d64157a0 | ||
|
|
fff8f567d0 | ||
|
|
1e2e0a48a1 | ||
|
|
affa30730a | ||
|
|
b326bdf0e8 | ||
|
|
cc3694ce4a | ||
|
|
3048e38bff | ||
|
|
b88a215dc5 | ||
|
|
36e5522694 | ||
|
|
226e8b8a20 | ||
|
|
43424547f2 | ||
|
|
d2f2189441 | ||
|
|
e81cd5b68e | ||
|
|
c30cbc0f20 | ||
|
|
e79a97ed92 | ||
|
|
ac19c3f160 | ||
|
|
375837eef5 | ||
|
|
c59d3d5279 | ||
|
|
d1c506330b | ||
|
|
b81e942479 | ||
|
|
e36a70749c | ||
|
|
4db085bd07 | ||
|
|
cd7088d241 | ||
|
|
821569aafb | ||
|
|
83a059b2da | ||
|
|
0de2c95f6e | ||
|
|
fcb44e4952 | ||
|
|
af26e60a4f | ||
|
|
6b936aa7f6 | ||
|
|
f6a8c7509d | ||
|
|
deb814ce58 | ||
|
|
da4371baf8 | ||
|
|
47a2afd294 | ||
|
|
0122b735a0 | ||
|
|
9c3ddc398c | ||
|
|
0ccbe68a65 | ||
|
|
30cd6a7de6 | ||
|
|
23a2596e29 | ||
|
|
b88422b17e | ||
|
|
09a9b68331 | ||
|
|
08f63122ba | ||
|
|
355f33b0a4 | ||
|
|
90f7bbae65 | ||
|
|
4be7cf5c0e | ||
|
|
58eef49284 | ||
|
|
b030a51485 | ||
|
|
aec3e178f5 | ||
|
|
ee47d8a20a | ||
|
|
5c05c9f1d1 | ||
|
|
172f47cad6 | ||
|
|
a8b3350d61 | ||
|
|
b324194295 | ||
|
|
663fa2bd3f | ||
|
|
4ddb78e8d5 | ||
|
|
f23d203095 | ||
|
|
dfce361afc | ||
|
|
2553891c25 | ||
|
|
e4bef567b5 | ||
|
|
0daafc5ff3 | ||
|
|
d07706e039 | ||
|
|
ca2b51d4fe | ||
|
|
bae3884d96 | ||
|
|
515a6f9c8d | ||
|
|
d937af7497 | ||
|
|
a216c9c56e | ||
|
|
0e9f250e93 | ||
|
|
10e0be9d68 | ||
|
|
29d4246019 | ||
|
|
65c5d206a8 | ||
|
|
3a73a97746 | ||
|
|
a3f8ca9ca5 | ||
|
|
a046f0f11b | ||
|
|
2cc486febc | ||
|
|
3c9b3680bc | ||
|
|
0a1957eb13 | ||
|
|
75e1e6f166 | ||
|
|
327a8fc61b | ||
|
|
a857eaed74 | ||
|
|
028c189dc8 | ||
|
|
11f8e06708 | ||
|
|
0760923943 | ||
|
|
219084fe3c | ||
|
|
4f314afe21 | ||
|
|
6750cfead8 | ||
|
|
b569646310 | ||
|
|
6be497878c | ||
|
|
8e9b409b63 | ||
|
|
cc207d3d7c | ||
|
|
b496e8457c | ||
|
|
41b87b9345 | ||
|
|
84e52bdee3 | ||
|
|
e234ac43a6 | ||
|
|
2388091ed6 | ||
|
|
a38351d41f | ||
|
|
4d8de72a8e | ||
|
|
ab2138d8e7 | ||
|
|
46c75af9e4 | ||
|
|
8eb3c16c50 | ||
|
|
39e88ae614 | ||
|
|
4410f31888 | ||
|
|
df11dd7a74 | ||
|
|
804dd61cd9 | ||
|
|
b00c5b4cab | ||
|
|
e0d6cebb2e | ||
|
|
ab772dccd4 | ||
|
|
b244032328 | ||
|
|
421c5e2879 | ||
|
|
1a8c4d8d8a | ||
|
|
9efb1824af | ||
|
|
74de125700 | ||
|
|
64cea34a98 | ||
|
|
9c4bdc213d | ||
|
|
92c0552fd5 | ||
|
|
ff39e5f90d | ||
|
|
83c55fdbb4 | ||
|
|
7d300a273b | ||
|
|
29f36c1927 | ||
|
|
b65c3cd931 | ||
|
|
7401e7fe31 | ||
|
|
150215712b | ||
|
|
f7ccf3c04a | ||
|
|
ebb798cac3 | ||
|
|
348819d1ac | ||
|
|
a8a3453632 | ||
|
|
9b02a274f1 | ||
|
|
f093360565 | ||
|
|
d457901d2e | ||
|
|
460dbff7d1 | ||
|
|
e564602fd1 | ||
|
|
e029321e5b | ||
|
|
87d7089df3 | ||
|
|
e4f929a851 | ||
|
|
8726cde05d | ||
|
|
a189ac8613 | ||
|
|
652aa4c456 | ||
|
|
cc3ae2c66c | ||
|
|
359e59bbad | ||
|
|
40ec7fd6fc | ||
|
|
d17f0ebc51 | ||
|
|
5027b70f5a | ||
|
|
0b7c790777 | ||
|
|
5ac9e9f63c | ||
|
|
b08136e3ea | ||
|
|
ec8262418f | ||
|
|
946e36c66e | ||
|
|
00f3518349 | ||
|
|
29bf99fe1a | ||
|
|
e104591dec | ||
|
|
0fd26e68d4 | ||
|
|
53f410fee0 | ||
|
|
53206e4b31 | ||
|
|
3818bfffb4 | ||
|
|
e6afc6ef0b | ||
|
|
5eb1c1dffc | ||
|
|
66406806b7 | ||
|
|
3a6debfae6 | ||
|
|
a093fa5718 | ||
|
|
9c1f17fbdd | ||
|
|
ce3643f0b3 | ||
|
|
f1fb7d8098 | ||
|
|
3d01eeaf1c | ||
|
|
be39c31865 | ||
|
|
0d2dfadba7 | ||
|
|
2dcab97b6d | ||
|
|
31cb169002 | ||
|
|
c381499c58 | ||
|
|
8577a8cca4 | ||
|
|
7a18c4a580 | ||
|
|
40589eb9ff | ||
|
|
722370b57c | ||
|
|
573672622a | ||
|
|
12f747ae1d | ||
|
|
395dc99595 | ||
|
|
c945243795 | ||
|
|
c2262cc9cf | ||
|
|
411399e96f | ||
|
|
f833b9e0ce | ||
|
|
9955423e9a | ||
|
|
58b4265b31 | ||
|
|
671a62aed7 | ||
|
|
c94fe9c312 | ||
|
|
f46a9730a3 | ||
|
|
d45cd7c15e | ||
|
|
a84d52f5fe | ||
|
|
330d37b7a5 | ||
|
|
d2792a4e9d | ||
|
|
c50a69d42a | ||
|
|
ee689d1597 | ||
|
|
6ef8d64d46 | ||
|
|
0095e89673 | ||
|
|
55d97ea202 | ||
|
|
85b8868d2b | ||
|
|
65e92ab6fc | ||
|
|
478baf2532 | ||
|
|
0750348cb1 | ||
|
|
db6cbc5cc3 | ||
|
|
b4359c0489 | ||
|
|
977192bc54 | ||
|
|
d54b557a9f | ||
|
|
f6c97f4ff6 | ||
|
|
66f4118896 | ||
|
|
4a8f8c4ecf | ||
|
|
6d7c207b95 | ||
|
|
597bd31a0c | ||
|
|
98157f2852 | ||
|
|
5e324e71d4 | ||
|
|
3159ce6707 | ||
|
|
9b033532c8 | ||
|
|
0678592d59 | ||
|
|
00d6b0d483 | ||
|
|
598049265a | ||
|
|
c3209f2cdd | ||
|
|
b2b4602c91 | ||
|
|
b1e1fe4922 | ||
|
|
edcf3c4223 | ||
|
|
58315acfa3 | ||
|
|
ec9eadd660 | ||
|
|
7277892e33 | ||
|
|
54962a158d | ||
|
|
30dcbe1af3 | ||
|
|
e92d5d2d2d | ||
|
|
411367f294 | ||
|
|
f49e05a915 | ||
|
|
53e8eaae75 | ||
|
|
85077fbb9c | ||
|
|
f070d8c965 | ||
|
|
0dc2dc9b08 | ||
|
|
80afe5ad86 | ||
|
|
3287479ee3 | ||
|
|
b308b3eaa4 | ||
|
|
b734fb948d | ||
|
|
117399f10a | ||
|
|
9c63165ef5 | ||
|
|
5e084be6f5 | ||
|
|
5a2c987ea6 | ||
|
|
6eeb49bb37 | ||
|
|
b2bb6136de | ||
|
|
87949679f1 | ||
|
|
a9175d3ffe | ||
|
|
79ea2480cb | ||
|
|
7455fb21a4 | ||
|
|
2c3210afce | ||
|
|
ea9ba60d66 | ||
|
|
130ad59fc4 | ||
|
|
1417e94bcd | ||
|
|
3ec2ae797e | ||
|
|
222499d4c6 | ||
|
|
2a6fcb7983 | ||
|
|
05221a8043 | ||
|
|
50b4915ff9 | ||
|
|
2ef708a586 | ||
|
|
8212c54446 | ||
|
|
503254bc1a | ||
|
|
c1b0b22e4c | ||
|
|
96f5c0a03a | ||
|
|
cba1e81f3d | ||
|
|
dcc6e9827d | ||
|
|
e27f7c8332 | ||
|
|
40aebf0e77 | ||
|
|
dcf9aa9793 | ||
|
|
45591fab83 | ||
|
|
658ebf4bc5 | ||
|
|
59c2a11824 | ||
|
|
33a57b11f6 | ||
|
|
d082963167 | ||
|
|
e2fa834079 | ||
|
|
e6bfc1cee8 | ||
|
|
5b35319559 | ||
|
|
36513c709d | ||
|
|
13bca1b7bd | ||
|
|
b9c85fcaf2 | ||
|
|
50cc281e24 | ||
|
|
0211732520 | ||
|
|
33f6004c81 | ||
|
|
23d3c2dfe7 | ||
|
|
7cce9fad55 | ||
|
|
2c2d561ea6 | ||
|
|
62e33effd1 | ||
|
|
85229f15c4 | ||
|
|
2f0de58d00 | ||
|
|
6ef21f65b2 | ||
|
|
be8fec55e1 | ||
|
|
76430c1e68 | ||
|
|
a4b1d2ca51 | ||
|
|
51b93205ff | ||
|
|
832b5e62bf | ||
|
|
c78adb12aa | ||
|
|
019ffe4c5c | ||
|
|
b3d014cd9f | ||
|
|
bebc8f0342 | ||
|
|
56ed932716 | ||
|
|
4c09f6dd40 | ||
|
|
700e4564a8 | ||
|
|
f1e1eb1015 | ||
|
|
963b96a1fb | ||
|
|
87786441ff | ||
|
|
05dec4df6a | ||
|
|
a3270debac | ||
|
|
cf392d13ed | ||
|
|
574a10e5f8 | ||
|
|
eb410af371 | ||
|
|
542bf2b413 | ||
|
|
723b10af57 | ||
|
|
1394c49e48 | ||
|
|
d8ecdff698 | ||
|
|
2a71f4620e | ||
|
|
fe99c7da62 | ||
|
|
0b00747f29 | ||
|
|
ae4a41cd0b | ||
|
|
93f630bb69 | ||
|
|
d7d5ba7510 | ||
|
|
e846084942 | ||
|
|
a15b887e5c | ||
|
|
4e51586b3b | ||
|
|
d3a90d68d1 | ||
|
|
78973d3f12 | ||
|
|
c37ad9210a | ||
|
|
246591eab4 | ||
|
|
eb0481a1da | ||
|
|
ba72e9c50d | ||
|
|
54a9955e30 | ||
|
|
49bcbafdaa | ||
|
|
b4137dca6e | ||
|
|
98f869ecea | ||
|
|
0c9f2b2687 | ||
|
|
4ec4e83823 | ||
|
|
96477f7ff5 | ||
|
|
1236e8d342 | ||
|
|
47353cc808 | ||
|
|
6eadac38b7 | ||
|
|
0d26b9e4f8 | ||
|
|
cb5351419b | ||
|
|
eb9b0f69bb | ||
|
|
2c103c157a | ||
|
|
a3a071e520 | ||
|
|
5af8236643 | ||
|
|
bf07deafc6 | ||
|
|
2809a083a0 | ||
|
|
b18fd82a21 | ||
|
|
9dcb8b7bd5 | ||
|
|
9af9e1459d | ||
|
|
4d77a6d475 | ||
|
|
64a9377006 | ||
|
|
c20d7f2b4f | ||
|
|
b57cde7148 | ||
|
|
a5fd29e56d | ||
|
|
c0b819ec9b | ||
|
|
30e36d5640 | ||
|
|
0582ba1c47 | ||
|
|
141902d012 | ||
|
|
fd5b8a32a1 | ||
|
|
fc91cf6d44 | ||
|
|
a5de521e6e | ||
|
|
243c50be02 | ||
|
|
c601114a43 | ||
|
|
0fcab7db62 | ||
|
|
b89a5ff3b5 | ||
|
|
1180764dab | ||
|
|
7f292b14a7 | ||
|
|
f7f3d5bde3 | ||
|
|
f400ccc66a | ||
|
|
3a4a37cf0c | ||
|
|
42af4e6b7e | ||
|
|
f4e90bfb6b | ||
|
|
4f912f25ee | ||
|
|
3ca68e426c | ||
|
|
20f8fd79ff | ||
|
|
a101f21de0 | ||
|
|
509760eeb1 | ||
|
|
d4a7b49233 | ||
|
|
0db2e40e27 | ||
|
|
6a8fe28e70 | ||
|
|
23067674c9 | ||
|
|
7b3f5d3848 | ||
|
|
b422e041f4 | ||
|
|
80046ba505 | ||
|
|
7e0a6798be | ||
|
|
afcb187c53 | ||
|
|
883ecb97d0 | ||
|
|
4c51b97667 | ||
|
|
7d695784d1 | ||
|
|
59ca257cca | ||
|
|
4a78478ab2 | ||
|
|
557647e0bd | ||
|
|
a79557b917 | ||
|
|
ae0e78e012 | ||
|
|
899e32eeed | ||
|
|
c3732e51f7 | ||
|
|
30eda697fa | ||
|
|
bf9d61ce3a | ||
|
|
fd911539ee | ||
|
|
93fcd3ad21 | ||
|
|
4525ad2cb1 | ||
|
|
49501b997f |
30
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,30 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help fix an issue.
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Platform**: *The type of device you were playing on - Android/iOS/Mac/Windows/Linux* ("All" is NOT a platform!)
|
||||
|
||||
**Build**: *The build number under the title in the main menu. Required. "LATEST" IS NOT A VERSION, I NEED THE EXACT BUILD NUMBER OF YOUR GAME.*
|
||||
|
||||
**Issue**: *Explain your issue in detail.*
|
||||
|
||||
**Steps to reproduce**: *How you happened across the issue, and what exactly you did to make the bug happen.*
|
||||
|
||||
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
|
||||
|
||||
**Save file**: *The (zipped) save file you were playing on when the bug happened. THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME OR IN MULTIPLAYER, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT DELETE OR OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME. IF YOU DO NOT HAVE A SAVE, DON'T WASTE TIME OPENING THIS ISSUE.*
|
||||
|
||||
If you remove the line above without reading it properly and understanding what it means, I will reap your soul. Even if you're playing on someone's server, you can still save the game to a slot.
|
||||
|
||||
**(Crash) logs**: *Either crash reports from the crash folder, or the file you get when you go into Settings -> Game Data -> Export Crash logs. REQUIRED if you are reporting a crash.*
|
||||
|
||||
---
|
||||
|
||||
*Place an X (no spaces) between the brackets to confirm that you have read the line below.*
|
||||
- [ ] **I have updated to the latest release (https://github.com/Anuken/Mindustry/releases) to make sure my issue has not been fixed.**
|
||||
- [ ] **I have searched the closed and open issues to make sure that this problem has not already been reported.**
|
||||
74
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
name: Bug report
|
||||
description: The type of device you were playing on
|
||||
labels: ["bug"]
|
||||
|
||||
body:
|
||||
- type: dropdown
|
||||
id: platform
|
||||
attributes:
|
||||
label: Platforms
|
||||
description: On what platforms do you know the bug happens?
|
||||
multiple: false
|
||||
options:
|
||||
- Android
|
||||
- iOS
|
||||
- Mac
|
||||
- Windows
|
||||
- Linux
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: build
|
||||
attributes:
|
||||
label: Build
|
||||
description: The build number under the title in the main menu.
|
||||
placeholder: LATEST IS NOT A VERSION, I NEED THE EXACT BUILD NUMBER OF YOUR GAME.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: issue
|
||||
attributes:
|
||||
label: Issue
|
||||
description: Explain your issue in detail.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: How you happened across the issue, and what exactly you did to make the bug happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: mods
|
||||
attributes:
|
||||
label: Mods used
|
||||
description: The mod repositories or zip files that are related to the issue, if applicable.
|
||||
validations:
|
||||
required: false
|
||||
- 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.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: (Crash) logs
|
||||
description: Either crash reports from the crash folder, or the file you get when you go into Settings -> Game Data -> Export Crash logs.
|
||||
placeholder: REQUIRED if you are reporting a crash.
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
id: agreement
|
||||
attributes:
|
||||
label: Submission
|
||||
description: Check the boxes to confirm that you have read the lines below.
|
||||
options:
|
||||
- label: I have updated to the latest release (https://github.com/Anuken/Mindustry/releases) to make sure my issue has not been fixed.
|
||||
required: true
|
||||
- label: I have searched the closed and open issues to make sure that this problem has not already been reported.
|
||||
required: true
|
||||
4
.github/workflows/deployment.yml
vendored
@@ -23,6 +23,8 @@ jobs:
|
||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
- name: Add Arc release
|
||||
run: |
|
||||
git config --global user.email "actions@github.com"
|
||||
git config --global user.name "Github Actions"
|
||||
git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
||||
cd ../Arc
|
||||
git tag ${RELEASE_VERSION}
|
||||
@@ -42,7 +44,7 @@ jobs:
|
||||
rm -rf .github
|
||||
rm README.md
|
||||
git add .
|
||||
git commit --allow-empty -m "${GITHUB_SHA}"
|
||||
git commit --allow-empty -m "Updating"
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryJitpack
|
||||
git tag ${RELEASE_VERSION}
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryJitpack
|
||||
|
||||
4
.github/workflows/pr.yml
vendored
@@ -17,8 +17,10 @@ jobs:
|
||||
java-version: 17
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
- name: Run unit tests
|
||||
run: ./gradlew clean cleanTest test --stacktrace
|
||||
- name: Run unit tests and build JAR
|
||||
run: ./gradlew test desktop:dist
|
||||
run: ./gradlew desktop:dist
|
||||
- name: Upload desktop JAR for testing
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
||||
5
.github/workflows/push.yml
vendored
@@ -33,6 +33,7 @@ jobs:
|
||||
./gradlew updateBundles
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git config --global user.name "Github Actions"
|
||||
git add core/assets/bundles/*
|
||||
git commit -m "Automatic bundle update"
|
||||
git push
|
||||
@@ -40,6 +41,8 @@ jobs:
|
||||
- name: Update JITpack repo
|
||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||
run: |
|
||||
git config --global user.name "Github Actions"
|
||||
git config --global user.email "cli@github.com"
|
||||
cd ../
|
||||
cp -r ./Mindustry ./MindustryJitpack
|
||||
cd MindustryJitpack
|
||||
@@ -50,7 +53,7 @@ jobs:
|
||||
rm -rf .github
|
||||
rm README.md
|
||||
git add .
|
||||
git commit --allow-empty -m "${GITHUB_SHA}"
|
||||
git commit --allow-empty -m "Updating"
|
||||
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryJitpack
|
||||
cd ../Mindustry
|
||||
- name: Run unit tests
|
||||
|
||||
2
.gitignore
vendored
@@ -6,6 +6,7 @@ logs/
|
||||
/core/assets/.gifimages/
|
||||
/deploy/
|
||||
/out/
|
||||
ios/libs/
|
||||
/desktop/packr-out/
|
||||
/desktop/packr-export/
|
||||
/desktop/mindustry-saves/
|
||||
@@ -43,6 +44,7 @@ steam_appid.txt
|
||||
ios/robovm.properties
|
||||
packr-out/
|
||||
config/
|
||||
buildSrc/
|
||||
*.gif
|
||||
/tests/out
|
||||
|
||||
|
||||
55
LICENSE
@@ -617,58 +617,3 @@ reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
@@ -39,10 +39,13 @@ Server builds are bundled with each released build (in Releases). If you'd rathe
|
||||
### Android
|
||||
|
||||
1. Install the Android SDK [here.](https://developer.android.com/studio#command-tools) Make sure you're downloading the "Command line tools only", as Android Studio is not required.
|
||||
2. Set the `ANDROID_HOME` environment variable to point to your unzipped Android SDK directory.
|
||||
3. Run `gradlew android:assembleDebug` (or `./gradlew` if on linux/mac). This will create an unsigned APK in `android/build/outputs/apk`.
|
||||
2. In the unzipped Android SDK folder, find the cmdline-tools directory. Then create a folder inside of it called `latest` and put all of its contents into the newly created folder.
|
||||
3. In the same directory run the command `sdkmanager --licenses` (or `./sdkmanager --licenses` if on linux/mac)
|
||||
4. Set the `ANDROID_HOME` environment variable to point to your unzipped Android SDK directory.
|
||||
5. Enable developer mode on your device/emulator. If you are on testing on a phone you can follow [these instructions](https://developer.android.com/studio/command-line/adb#Enabling), otherwise you need to google how to enable your emulator's developer mode specifically.
|
||||
6. Run `gradlew android:assembleDebug` (or `./gradlew` if on linux/mac). This will create an unsigned APK in `android/build/outputs/apk`.
|
||||
|
||||
To debug the application on a connected phone, run `gradlew android:installDebug android:run`.
|
||||
To debug the application on a connected device/emulator, run `gradlew android:installDebug android:run`.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
### Adding a server to the list
|
||||
|
||||
Mindustry now has a public list of servers that everyone can see and connect to.
|
||||
This is done by letting clients `GET` a [JSON list of servers](https://github.com/Anuken/Mindustry/blob/master/servers_v6.json) in this repository.
|
||||
This is done by letting clients `GET` a [JSON list of servers](https://github.com/Anuken/Mindustry/blob/master/servers_v7.json) in this repository.
|
||||
|
||||
You may want to add your server to this list. The steps for getting this done are as follows:
|
||||
|
||||
@@ -9,7 +9,7 @@ You may want to add your server to this list. The steps for getting this done ar
|
||||
1. **Ensure your server is properly moderated.** For the most part, this applies to survival servers, but PvP servers can be affected as well.
|
||||
You'll need to either hire some moderators, or make use of (currently non-existent) anti-grief and anti-curse plugins.
|
||||
*Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example.
|
||||
2. Make sure that your server is able to handle inappropriate content - this includes NSFW display/sorter art and abusive messages. **Servers that allow such content will be removed immediately.** Consider banning display blocks if it is a problem for your server: `rules add bannedBlocks ["logic-display", "large-logic-display"]`.
|
||||
2. Make sure that your server is able to handle inappropriate content - this includes NSFW display/sorter art and abusive messages. **Servers that allow such content will be removed immediately.** Consider banning display blocks if it is a problem for your server: `rules add bannedBlocks ["canvas", "logic-display", "large-logic-display"]`.
|
||||
3. **Set an appropriate MOTD, name and description.** This is set with `config <name/desc/motd> <value>`. "Appropriate" means that:
|
||||
- Your name or description must reflect the type of server you're hosting.
|
||||
Since new players may be exposed to the server list early on, put in a phrase like "Co-op survival" or "PvP" so players know what they're getting into. Yes, this is also displayed in the server mode info text, but having extra info in the name doesn't hurt.
|
||||
@@ -18,11 +18,13 @@ You'll need to either hire some moderators, or make use of (currently non-existe
|
||||
4. **Get some good maps.** *(optional, but highly recommended)*. Add some maps to your server and set the map rotation to custom-only. You can get maps from the Steam workshop by subscribing and exporting them; using the `#maps` channel on Discord is also an option.
|
||||
5. **Check your server configuration.** *(optional)* I would recommend adding a message rate limit of 1 second (`config messageRateLimit 1`), and disabling connect/disconnect messages to reduce spam (`config showConnectMessages false`).
|
||||
6. Finally, **submit a pull request** to add your server's IP to the list.
|
||||
This should be fairly straightforward: Press the edit button on the [server file](https://github.com/Anuken/Mindustry/blob/master/servers_v6.json), then add a JSON object with a single key, indicating your server address.
|
||||
For example, if your server address is `google.com`, you would add a comma after the last entry and insert:
|
||||
```json
|
||||
This should be fairly straightforward: Press the edit button on the [server file](https://github.com/Anuken/Mindustry/blob/master/servers_v7.json), then add a JSON object with a single key, indicating your server address.
|
||||
For example, if your server address is `example.com:6000`, you would add a comma after the last entry and insert:
|
||||
```json
|
||||
{
|
||||
"address": "google.com"
|
||||
"address": "example.com:6000"
|
||||
}
|
||||
```
|
||||
Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments.
|
||||
```
|
||||
> Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifying the weight or priority of the record. Although SRV records are very convenient, keep in mind they are slower than regular addresses. Avoid using them in the server list, but rather as an easy way to share your server address.
|
||||
|
||||
Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments.
|
||||
|
||||
@@ -29,8 +29,8 @@ task deploy(type: Copy){
|
||||
}
|
||||
|
||||
android{
|
||||
buildToolsVersion '31.0.0'
|
||||
compileSdkVersion 31
|
||||
buildToolsVersion '33.0.2'
|
||||
compileSdkVersion 33
|
||||
sourceSets{
|
||||
main{
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
@@ -56,7 +56,7 @@ android{
|
||||
|
||||
applicationId "io.anuke.mindustry"
|
||||
minSdkVersion 14
|
||||
targetSdkVersion 31
|
||||
targetSdkVersion 33
|
||||
|
||||
versionName versionNameResult
|
||||
versionCode = vcode
|
||||
@@ -119,11 +119,17 @@ dependencies{
|
||||
implementation arcModule("backends:backend-android")
|
||||
implementation 'com.jakewharton.android.repackaged:dalvik-dx:9.0.0_r3'
|
||||
|
||||
natives "com.github.Anuken.Arc:natives-android:${getArcHash()}"
|
||||
natives "com.github.Anuken.Arc:natives-freetype-android:${getArcHash()}"
|
||||
natives "com.github.Anuken.Arc:natives-android:$arcHash"
|
||||
natives "com.github.Anuken.Arc:natives-freetype-android:$arcHash"
|
||||
|
||||
//TODO dynamically find best android platform jar instead of hard-coding to 30
|
||||
def sdkFile = new File((String)findSdkDir(), "/platforms/android-30/android.jar")
|
||||
def version;
|
||||
def highestVersion;
|
||||
new File((String)findSdkDir(), "/platforms").eachFileMatch ~/android-\d+/, {
|
||||
version = it.name.find(/\d+/).toInteger();
|
||||
highestVersion = version > highestVersion ? version : highestVersion;
|
||||
}
|
||||
|
||||
def sdkFile = new File((String)findSdkDir(), "/platforms/android-${highestVersion}/android.jar")
|
||||
if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath)
|
||||
}
|
||||
|
||||
|
||||
@@ -8,14 +8,12 @@ public class Annotations{
|
||||
/** Indicates that a method overrides other methods. */
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Replace{
|
||||
}
|
||||
public @interface Replace{}
|
||||
|
||||
/** Indicates that a method should be final in all implementing classes. */
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Final{
|
||||
}
|
||||
public @interface Final{}
|
||||
|
||||
/** Indicates that a field will be interpolated when synced. */
|
||||
@Target({ElementType.FIELD})
|
||||
@@ -30,15 +28,18 @@ public class Annotations{
|
||||
/** Indicates that a field will not be read from the server when syncing the local player state. */
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface SyncLocal{
|
||||
public @interface SyncLocal{}
|
||||
|
||||
/** Indicates that a field should not be synced to clients (but may still be non-transient) */
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface NoSync{}
|
||||
|
||||
}
|
||||
|
||||
/** Indicates that a component field is imported from other components. This means it doesn't actually exist. */
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Import{
|
||||
}
|
||||
public @interface Import{}
|
||||
|
||||
/** Indicates that a component field is read-only. */
|
||||
@Target({ElementType.FIELD, ElementType.METHOD})
|
||||
@@ -105,8 +106,7 @@ public class Annotations{
|
||||
/** Indicates an internal interface for entity components. */
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface EntityInterface{
|
||||
}
|
||||
public @interface EntityInterface{}
|
||||
|
||||
//endregion
|
||||
//region misc. utility
|
||||
@@ -145,15 +145,12 @@ public class Annotations{
|
||||
/** Indicates that a method should always call its super version. */
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface CallSuper{
|
||||
|
||||
}
|
||||
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{
|
||||
}
|
||||
public @interface OverrideCallSuper{}
|
||||
|
||||
//endregion
|
||||
//region struct
|
||||
@@ -161,9 +158,7 @@ public class Annotations{
|
||||
/** Marks a class as a special value type struct. Class name must end in 'Struct'. */
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Struct{
|
||||
|
||||
}
|
||||
public @interface Struct{}
|
||||
|
||||
/** Marks a field of a struct. Optional. */
|
||||
@Target(ElementType.FIELD)
|
||||
@@ -251,8 +246,7 @@ public class Annotations{
|
||||
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TypeIOHandler{
|
||||
}
|
||||
public @interface TypeIOHandler{ }
|
||||
|
||||
//endregion
|
||||
}
|
||||
|
||||
@@ -118,13 +118,16 @@ public class EntityIO{
|
||||
}
|
||||
}
|
||||
|
||||
void writeSync(MethodSpec.Builder method, boolean write, Seq<Svar> syncFields, Seq<Svar> allFields) throws Exception{
|
||||
void writeSync(MethodSpec.Builder method, boolean write, Seq<Svar> allFields) throws Exception{
|
||||
this.method = method;
|
||||
this.write = write;
|
||||
|
||||
if(write){
|
||||
//write uses most recent revision
|
||||
for(RevisionField field : revisions.peek().fields){
|
||||
Svar var = allFields.find(s -> s.name().equals(field.name));
|
||||
if(var == null || var.has(NoSync.class)) continue;
|
||||
|
||||
io(field.type, "this." + field.name, true);
|
||||
}
|
||||
}else{
|
||||
@@ -138,6 +141,7 @@ public class EntityIO{
|
||||
//add code for reading revision
|
||||
for(RevisionField field : rev.fields){
|
||||
Svar var = allFields.find(s -> s.name().equals(field.name));
|
||||
if(var == null || var.has(NoSync.class)) continue;
|
||||
boolean sf = var.has(SyncField.class), sl = var.has(SyncLocal.class);
|
||||
|
||||
if(sl) cont("if(!islocal)");
|
||||
@@ -223,7 +227,7 @@ public class EntityIO{
|
||||
|
||||
if(BaseProcessor.isPrimitive(type)){
|
||||
s(type.equals("boolean") ? "bool" : type.charAt(0) + "", field);
|
||||
}else if(instanceOf(type, "mindustry.ctype.Content")){
|
||||
}else if(instanceOf(type, "mindustry.ctype.Content") && !type.equals("mindustry.ai.UnitStance") && !type.equals("mindustry.ai.UnitCommand")){
|
||||
if(write){
|
||||
s("s", field + ".id");
|
||||
}else{
|
||||
|
||||
@@ -42,6 +42,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
Seq<Selement> allDefs = new Seq<>();
|
||||
Seq<Stype> allInterfaces = new Seq<>();
|
||||
Seq<TypeSpec.Builder> baseClasses = new Seq<>();
|
||||
ObjectSet<TypeSpec.Builder> baseClassIndexers = new ObjectSet<>();
|
||||
ClassSerializer serializer;
|
||||
|
||||
{
|
||||
@@ -232,9 +233,15 @@ public class EntityProcess extends BaseProcessor{
|
||||
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();
|
||||
|
||||
boolean collides = an.collide();
|
||||
groupDefs.add(new GroupDefinition(group.name().startsWith("g") ? group.name().substring(1) : group.name(),
|
||||
groupDefs.add(new GroupDefinition(name,
|
||||
ClassName.bestGuess(packageName + "." + groupType), types, an.spatial(), an.mapping(), collides));
|
||||
|
||||
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());
|
||||
write(accessor);
|
||||
}
|
||||
|
||||
ObjectMap<String, Selement> usedNames = new ObjectMap<>();
|
||||
@@ -260,6 +267,8 @@ public class EntityProcess extends BaseProcessor{
|
||||
//get base class type name for extension
|
||||
Stype baseClassType = baseClasses.any() ? baseClasses.first() : null;
|
||||
@Nullable TypeName baseClass = baseClasses.any() ? tname(packageName + "." + baseName(baseClassType)) : null;
|
||||
@Nullable TypeSpec.Builder baseClassBuilder = baseClassType == null ? null : this.baseClasses.find(b -> Reflect.<String>get(b, "name").equals(baseName(baseClassType)));
|
||||
boolean addIndexToBase = baseClassBuilder != null && baseClassIndexers.add(baseClassBuilder);
|
||||
//whether the main class is the base itself
|
||||
boolean typeIsBase = baseClassType != null && type.has(Component.class) && type.annotation(Component.class).base();
|
||||
|
||||
@@ -394,6 +403,17 @@ public class EntityProcess extends BaseProcessor{
|
||||
//entities with no sync comp and no serialization gen no code
|
||||
boolean hasIO = ann.genio() && (components.contains(s -> s.name().contains("Sync")) || ann.serialize());
|
||||
|
||||
TypeSpec.Builder indexBuilder = baseClassBuilder == null ? builder : baseClassBuilder;
|
||||
|
||||
if(baseClassBuilder == null || addIndexToBase){
|
||||
//implement indexable interfaces.
|
||||
for(GroupDefinition def : groups){
|
||||
indexBuilder.addSuperinterface(tname(packageName + ".IndexableEntity__" + def.name));
|
||||
indexBuilder.addMethod(MethodSpec.methodBuilder("setIndex__" + def.name).addParameter(int.class, "index").addModifiers(Modifier.PUBLIC).addAnnotation(Override.class)
|
||||
.addCode("index__$L = index;", def.name).build());
|
||||
}
|
||||
}
|
||||
|
||||
//add all methods from components
|
||||
for(ObjectMap.Entry<String, Seq<Smethod>> entry : methods){
|
||||
if(entry.value.contains(m -> m.has(Replace.class))){
|
||||
@@ -446,8 +466,15 @@ public class EntityProcess extends BaseProcessor{
|
||||
mbuilder.addStatement("if(added == $L) return", first.name().equals("add"));
|
||||
|
||||
for(GroupDefinition def : groups){
|
||||
if(first.name().equals("add")){
|
||||
//remove/add from each group, assume imported
|
||||
mbuilder.addStatement("Groups.$L.$L(this)", def.name, first.name());
|
||||
mbuilder.addStatement("index__$L = Groups.$L.addIndex(this)", def.name, def.name);
|
||||
}else{
|
||||
//remove/add from each group, assume imported
|
||||
mbuilder.addStatement("Groups.$L.removeIndex(this, index__$L);", def.name, def.name);
|
||||
|
||||
mbuilder.addStatement("index__$L = -1", def.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,7 +490,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
//SPECIAL CASE: sync I/O code
|
||||
if((first.name().equals("readSync") || first.name().equals("writeSync"))){
|
||||
io.writeSync(mbuilder, first.name().equals("writeSync"), syncedFields, allFields);
|
||||
io.writeSync(mbuilder, first.name().equals("writeSync"), allFields);
|
||||
}
|
||||
|
||||
//SPECIAL CASE: sync I/O code for writing to/from a manual buffer
|
||||
@@ -577,6 +604,16 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
skipDeprecated(builder);
|
||||
|
||||
if(!legacy){
|
||||
TypeSpec.Builder fieldBuilder = baseClassBuilder != null ? baseClassBuilder : builder;
|
||||
if(addIndexToBase || baseClassBuilder == null){
|
||||
//add group index int variables
|
||||
for(GroupDefinition def : groups){
|
||||
fieldBuilder.addField(FieldSpec.builder(int.class, "index__" + def.name, Modifier.PROTECTED, Modifier.TRANSIENT).initializer("-1").build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
definitions.add(new EntityDefinition(packageName + "." + name, builder, type, typeIsBase ? null : baseClass, components, groups, allFieldSpecs, legacy));
|
||||
}
|
||||
|
||||
@@ -592,7 +629,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
groupsBuilder.addField(ParameterizedTypeName.get(
|
||||
ClassName.bestGuess("mindustry.entities.EntityGroup"), itype), group.name, Modifier.PUBLIC, Modifier.STATIC);
|
||||
|
||||
groupInit.addStatement("$L = new $T<>($L.class, $L, $L)", group.name, groupc, itype, group.spatial, group.mapping);
|
||||
groupInit.addStatement("$L = new $T<>($L.class, $L, $L, (e, pos) -> { if(e instanceof $L.IndexableEntity__$L ix) ix.setIndex__$L(pos); })", group.name, groupc, itype, group.spatial, group.mapping, packageName, group.name, group.name);
|
||||
}
|
||||
|
||||
//write the groups
|
||||
@@ -855,7 +892,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
for(Smethod method : methods){
|
||||
String signature = method.toString();
|
||||
if(signatures.contains(signature)) continue;
|
||||
if(!signatures.add(signature)) continue;
|
||||
|
||||
Stype compType = interfaceToComp(method.type());
|
||||
MethodSpec.Builder builder = MethodSpec.overriding(method.e).addModifiers(Modifier.PUBLIC, Modifier.FINAL);
|
||||
@@ -866,12 +903,19 @@ public class EntityProcess extends BaseProcessor{
|
||||
builder.addAnnotation(OverrideCallSuper.class); //just in case
|
||||
|
||||
if(!method.isVoid()){
|
||||
if(method.name().equals("isNull")){
|
||||
String methodName = method.name();
|
||||
switch(methodName){
|
||||
case "isNull":
|
||||
builder.addStatement("return true");
|
||||
}else if(method.name().equals("id")){
|
||||
break;
|
||||
case "id":
|
||||
builder.addStatement("return -1");
|
||||
}else{
|
||||
Svar variable = compType == null || method.params().size > 0 ? null : compType.fields().find(v -> v.name().equals(method.name()));
|
||||
break;
|
||||
case "toString":
|
||||
builder.addStatement("return $S", className);
|
||||
break;
|
||||
default:
|
||||
Svar variable = compType == null || method.params().size > 0 ? null : compType.fields().find(v -> v.name().equals(methodName));
|
||||
String desc = variable == null ? null : variable.descString();
|
||||
if(variable == null || !varInitializers.containsKey(desc)){
|
||||
builder.addStatement("return " + getDefault(method.ret().toString()));
|
||||
@@ -881,10 +925,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nullBuilder.addMethod(builder.build());
|
||||
|
||||
signatures.add(signature);
|
||||
}
|
||||
|
||||
nullsBuilder.addField(FieldSpec.builder(type, Strings.camelize(baseName)).initializer("new " + className + "()").addModifiers(Modifier.FINAL, Modifier.STATIC, Modifier.PUBLIC).build());
|
||||
|
||||
@@ -97,14 +97,14 @@ public class StructProcess extends BaseProcessor{
|
||||
}
|
||||
|
||||
//[setter] + [constructor building]
|
||||
if(varType == TypeName.BOOLEAN){
|
||||
if(isBool){
|
||||
cons.append(" | (").append(varName).append(" ? ").append("1L << ").append(offset).append("L : 0)");
|
||||
|
||||
//bools: single bit, needs special case to clear things
|
||||
setter.beginControlFlow("if(value)");
|
||||
setter.addStatement("return ($T)(($L & ~(1L << $LL)))", structType, structParam, offset);
|
||||
setter.nextControlFlow("else");
|
||||
setter.addStatement("return ($T)(($L & ~(1L << $LL)) | (1L << $LL))", structType, structParam, offset, offset);
|
||||
setter.nextControlFlow("else");
|
||||
setter.addStatement("return ($T)(($L & ~(1L << $LL)))", structType, structParam, offset);
|
||||
setter.endControlFlow();
|
||||
}else if(varType == TypeName.FLOAT){
|
||||
cons.append(" | (").append("(").append(structType).append(")").append("Float.floatToIntBits(").append(varName).append(") << ").append(offset).append("L)");
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{version:1,fields:[{name:admin,type:boolean},{name:boosting,type:boolean},{name:color,type:arc.graphics.Color},{name:lastCommand,type:mindustry.ai.UnitCommand},{name:mouseX,type:float},{name:mouseY,type:float},{name:name,type:java.lang.String},{name:shooting,type:boolean},{name:team,type:mindustry.game.Team},{name:typing,type:boolean},{name:unit,type:Unit},{name:x,type:float},{name:y,type:float}]}
|
||||
57
build.gradle
@@ -1,10 +1,14 @@
|
||||
buildscript{
|
||||
ext{
|
||||
getArcHash = {
|
||||
return new Properties().with{ p -> p.load(file('gradle.properties').newReader()); return p }["archash"]
|
||||
}
|
||||
arcHash = property("archash")
|
||||
|
||||
arcHash = getArcHash()
|
||||
localArc = !project.hasProperty("release") && new File(rootDir.parent, 'Arc').exists() && !project.hasProperty("noLocalArc")
|
||||
|
||||
arcModule = { String name ->
|
||||
//skip to last submodule
|
||||
name = name.substring(name.lastIndexOf(':') + 1)
|
||||
return "com.github.Anuken${localArc ? "" : ".Arc"}:$name:$arcHash"
|
||||
}
|
||||
}
|
||||
|
||||
repositories{
|
||||
@@ -16,8 +20,8 @@ buildscript{
|
||||
}
|
||||
|
||||
dependencies{
|
||||
classpath "com.github.Anuken.Arc:packer:$arcHash"
|
||||
classpath "com.github.Anuken.Arc:arc-core:$arcHash"
|
||||
classpath arcModule(":extensions:packer")
|
||||
classpath arcModule(":arc-core")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,20 +52,6 @@ allprojects{
|
||||
return new File(projectDir.parent, '../Mindustry-Debug').exists() && !project.hasProperty("release") && project.hasProperty("args")
|
||||
}
|
||||
|
||||
localArc = {
|
||||
return !project.hasProperty("release") && new File(projectDir.parent, '../Arc').exists()
|
||||
}
|
||||
|
||||
arcModule = { String name ->
|
||||
if(localArc()){
|
||||
return project(":Arc:$name")
|
||||
}else{
|
||||
//skip to last submodule
|
||||
if(name.contains(':')) name = name.split(':').last()
|
||||
return "com.github.Anuken.Arc:$name:${getArcHash()}"
|
||||
}
|
||||
}
|
||||
|
||||
generateDeployName = { String platform ->
|
||||
if(platform == "windows"){
|
||||
platform += "64"
|
||||
@@ -116,12 +106,12 @@ allprojects{
|
||||
generateLocales = {
|
||||
def output = 'en\n'
|
||||
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
|
||||
bundles.listFiles().each{ other ->
|
||||
if(other.name == "bundle.properties") return
|
||||
output += other.name.substring("bundle".length() + 1, other.name.lastIndexOf('.')) + "\n"
|
||||
bundles.list().sort().each{ name ->
|
||||
if(name == "bundle.properties") return
|
||||
output += name.substring("bundle".length() + 1, name.lastIndexOf('.')) + "\n"
|
||||
}
|
||||
new File(project(':core').projectDir, 'assets/locales').text = output
|
||||
new File(project(':core').projectDir, 'assets/basepartnames').text = new File(project(':core').projectDir, 'assets/baseparts/').list().join("\n")
|
||||
new File(project(':core').projectDir, 'assets/basepartnames').text = new File(project(':core').projectDir, 'assets/baseparts/').list().sort().join("\n")
|
||||
}
|
||||
|
||||
writeVersion = {
|
||||
@@ -195,7 +185,7 @@ allprojects{
|
||||
|
||||
tasks.withType(JavaCompile){
|
||||
targetCompatibility = 8
|
||||
sourceCompatibility = JavaVersion.VERSION_16
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
options.encoding = "UTF-8"
|
||||
options.compilerArgs += ["-Xlint:deprecation"]
|
||||
dependsOn clearCache
|
||||
@@ -320,11 +310,6 @@ project(":core"){
|
||||
}
|
||||
}
|
||||
|
||||
artifacts{
|
||||
archives sourcesJar
|
||||
archives assetsJar
|
||||
}
|
||||
|
||||
dependencies{
|
||||
compileJava.dependsOn(preGen)
|
||||
|
||||
@@ -336,12 +321,12 @@ project(":core"){
|
||||
api arcModule("extensions:fx")
|
||||
api arcModule("extensions:arcnet")
|
||||
api "com.github.Anuken:rhino:$rhinoVersion"
|
||||
if(localArc() && debugged()) api arcModule("extensions:recorder")
|
||||
if(localArc()) api arcModule(":extensions:packer")
|
||||
if(localArc && debugged()) api arcModule("extensions:recorder")
|
||||
if(localArc) api arcModule(":extensions:packer")
|
||||
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
compileOnly project(":annotations")
|
||||
kapt project(":annotations")
|
||||
if(!project.hasProperty("noKapt")) kapt project(":annotations")
|
||||
}
|
||||
|
||||
afterEvaluate{
|
||||
@@ -396,6 +381,7 @@ project(":tests"){
|
||||
testImplementation "org.junit.jupiter:junit-jupiter-params:5.7.1"
|
||||
testImplementation "org.junit.jupiter:junit-jupiter-api:5.7.1"
|
||||
testImplementation arcModule("backends:backend-headless")
|
||||
testImplementation "org.json:json:20230618"
|
||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.7.1"
|
||||
}
|
||||
|
||||
@@ -428,7 +414,7 @@ project(":annotations"){
|
||||
|
||||
dependencies{
|
||||
implementation 'com.squareup:javapoet:1.12.1'
|
||||
implementation "com.github.Anuken.Arc:arc-core:$arcHash"
|
||||
implementation arcModule("arc-core")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -442,6 +428,9 @@ configure([":core", ":server"].collect{project(it)}){
|
||||
publications{
|
||||
maven(MavenPublication){
|
||||
from components.java
|
||||
if(project.name == "core"){
|
||||
artifact(tasks.named("assetsJar"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -3,7 +3,6 @@
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
core/assets-raw/sprites/blocks/logic/world-switch-on.png
Normal file
|
After Width: | Height: | Size: 164 B |
BIN
core/assets-raw/sprites/blocks/logic/world-switch.png
Normal file
|
After Width: | Height: | Size: 389 B |
|
Before Width: | Height: | Size: 570 B After Width: | Height: | Size: 611 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 572 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1013 B After Width: | Height: | Size: 1012 B |
|
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 416 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 463 B |
|
After Width: | Height: | Size: 784 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 464 B |
|
After Width: | Height: | Size: 230 B |
|
After Width: | Height: | Size: 221 B |
|
After Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-l.png
Normal file
|
After Width: | Height: | Size: 203 B |
BIN
core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-r.png
Normal file
|
After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 373 B |
BIN
core/assets-raw/sprites/blocks/turrets/duo/duo.png
Normal file
|
After Width: | Height: | Size: 367 B |
|
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 279 B |
|
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 383 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 517 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 552 B |
BIN
core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel.png
Normal file
|
After Width: | Height: | Size: 752 B |
BIN
core/assets-raw/sprites/blocks/turrets/salvo/salvo-preview.png
Normal file
|
After Width: | Height: | Size: 1019 B |
BIN
core/assets-raw/sprites/blocks/turrets/salvo/salvo-side-l.png
Normal file
|
After Width: | Height: | Size: 429 B |
BIN
core/assets-raw/sprites/blocks/turrets/salvo/salvo-side-r.png
Normal file
|
After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 853 B |
BIN
core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png
Normal file
|
After Width: | Height: | Size: 510 B |
|
After Width: | Height: | Size: 817 B |
BIN
core/assets-raw/sprites/blocks/turrets/scatter/scatter.png
Normal file
|
After Width: | Height: | Size: 603 B |
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 521 B |
|
Before Width: | Height: | Size: 893 B After Width: | Height: | Size: 873 B |
|
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 431 B |
BIN
core/assets-raw/sprites/statuses/status-fast.png
Normal file
|
After Width: | Height: | Size: 218 B |
BIN
core/assets-raw/sprites/ui/cat.png
Executable file
|
After Width: | Height: | Size: 20 KiB |
BIN
core/assets-raw/sprites/ui/ranai.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 523 B |
@@ -1 +0,0 @@
|
||||
mschxœ%ŠQƒ0C]RÐÄ>v>9Ê"µˆ¶S(HÜ~)X±_dƒƒÏKŒa•YëDݹ(¼¸äS®¢øü²i©‘§¯ÆmÃ;VIÓ^e0â–s-@
|
||||
@@ -1,2 +0,0 @@
|
||||
mschxœ5<C593>Ë
|
||||
!E¯Ïy-J·ý‡ù(q¤£Gú÷<C3BA>„ââä&'›„Î.<Zl.Çž®Vª{lG¸|<7C>ŸK4ÌíúÙðü{»/ùßR±ÅÒ~•^=ÝùäГkÑïG<C3AF>ç àzRPm!&ÆÌX+ ÉÓ†4©¨²¼H}E“y$9’À˜’¢XQÜÔü‰æd8ZQŠ¡†acf,Œê˜ã"
|
||||
@@ -1,2 +0,0 @@
|
||||
mschxœ5<C593>A E¿JkêÊStã<74><08>˜I
|
||||
4”šx{¡ðòÿ¼¸vÐѽpq‘<71>°—”Ý›^˜Ú}æpŠ€ÆÄ…¼§#{Âã¯Ï>Å}SÆm‹tWØÏKæuÅXGÅq¤àY¬z\P?E½:<18>ÅYŽ
|
||||
@@ -1,3 +0,0 @@
|
||||
mschxœ%Žknà „ÇØIü¨äV9×È
|
||||
ú;¢xS!a@€“úîMÝ%F¬¾Ñ>fz<>Æ©™p¾~:“¯¥}ŽëõbU$%MÈÆ;à
|
||||
ãCeŠ’~rT:ûˆ^/6›»*ú#y’A9²’Õ7ϧà#É)%ŒÚ++5¹Ímáꘌ5Ú;™f²ì‹18Zf•<66>–S4Öb0™f™ü5áô¥2wèƒðÎO„÷ VëÕ$ÙçN+Ÿ1(åíuÞ
|
||||
4
core/assets/baseparts/actuallyokrtg.msch
Normal file
@@ -0,0 +1,4 @@
|
||||
mschxœM<C593>anÂ0…MK[HÚ"Ä9rŠcÚ<63><Ô-4(MaÜ~ÏñŸ)RŸíú{vB':Ô´<C394>ý<EFBFBD>iðç¼ú^ñ'å+Ù/ç4Ýóg"jƒÿä°PõþaÉ~¿dwIStxúÌÉñoNpˆ‰ŽK>¹»Ÿ98DW&û¯DÇ<e?OëÍ<C3AB>ãüà<17>Ý•gN^Æu¾pú
|
||||
ñé®0§S|p´»{Šß\ÆØe…µËñɉš‡_C&;e¾¹%®éÌXú<58>h#gƒxKT!îˆj[ªEª!Ûˆ4*Jé¬iG¨‡-<2D>’<EFBFBD>ið.<2E>ŽÉvT‰ã@åO¥Ò Ð
|
||||
Þâ`É
|
||||
Þ*Þ¢¥<14>‹Uá:á*”ÁwŠ£<C5A0>jÉ€w,/ÅN‹ø+³~¯6{o”7:Þèx£ã<C2A3>no”7…¯Èê-¬ÚXµéÕ¦×5zµéÕ¦×5z½Å Ü ·õ#誅”-FÅGÅG}„QñƒâÁ÷tDçF-b@tõ½ÔO¼
|
||||
BIN
core/assets/baseparts/atrax-surprise.msch
Normal file
1
core/assets/baseparts/flar.msch
Normal file
@@ -0,0 +1 @@
|
||||
mschxœMŽÍNÃ0„'‰›æ¯^<5E>»Ÿq0‰‹,9vd»”¼{ ¬»*KÞ<4B>ogV‹'´„S³†¸XÐO:ŽÁ,Éx ¶êCÛˆòí}@oUÔANÁX‹—d’ræ:ËÑ»/½ú€“7VêïÔ˜Hžo*‘ýDc
|
||||
BIN
core/assets/baseparts/fortress.msch
Normal file
BIN
core/assets/baseparts/impending-doom.msch
Normal file
2
core/assets/baseparts/rtgbrick1.msch
Normal file
@@ -0,0 +1,2 @@
|
||||
mschxœŒKà CͯE=
|
||||
‹ž§Ê‚<EFBFBD>B%
|
||||
5
core/assets/baseparts/rtgbrick2.msch
Normal file
@@ -0,0 +1,5 @@
|
||||
mschxś
|
||||
ŚK
|
||||
Ă0CĺOŇ–ĐEâMŻşpśÁ<C59B>Ně0včő;ń$!„ ł<>Żń <däMJúľ±ěÔ“”s”VĚ7â»~&<u2U’8š`é—d
|
||||
ŁýHCt„Ţ.I„Wo%ś±u™°pě$a—¬ż“
|
||||
Î(üÖÂŔhyłN˝ó
|
||||
BIN
core/assets/baseparts/rtgsalvo.msch
Normal file
1
core/assets/baseparts/scorch.msch
Normal file
@@ -0,0 +1 @@
|
||||
mschxś5PŃŽ„ @ôáľÄ/şÜ<C59F>Ë’,‰ŠAÝËýýµt5!C§Ó™"FŚÝ6Ż î<>ĄĆĆg:bÍű™ËŔ-ó#-ô÷ŹĂ׾ĄkťĎ§gÍËËöNĄbŚeßSť~g˘o/WËu&jć3ÓQ®yNt`Đ> `ů®™TźŞőŚTťôş»j=Ëë>rĹw“A`€Öč%˛IĎQV*Ĺ˝6ĐË€—Ď<1D>fĄ'Ć0Đ6LZ^Âs0™3ée®™y1b$=Hz<48>Ř Ę ĘAž2đo°–6´†‰ <©ţ/_&‘
|
||||
2
core/assets/baseparts/simplemeltdown.msch
Normal file
@@ -0,0 +1,2 @@
|
||||
mschxœ=‘벓0… å(=¾à³8þà@t¢jöôÉ<C3B4>qjqmÂq(|Ù—µ’<C2B5>â|˜ºQ㼘ñjõ¨æÛ5è¥wæêÍ<8ÙîUÛñç/5òÿ]õkç½v÷Öv²Ý¢];8c-š[ÇR«ß¼ëz?;(ãõØ.óêz<C3AA>¬Ÿ§a5jY)mý|Ó/Þøn2ëØ²üKß©º\¥ÒNó <C3B3>]šÞÝç¯v5C;š7ª”5?%¢ôš#ø¾Ný~øË‘ £ïÌÄ~à¡A!á"މüð6À_•ræ$åªF”2U#>çœyò’‹ÃIÄR. `2'ʼD´=¶çö)¿ÏíùجeÛ“ï×Åö›[¤â]Ðâ„D<E2809E>#C&ÓÝ4”HJVx˜ˆÒHj²ÓŽLZr>;XUD"%(BgÁ$QJ”'™X\åÈïµZæS2ÇÎx¯ª` B“zo:M—½©
|
||||
¾Uðp$wI%àÌ“G2ïñ¨Þ¹ A#× Èò€" PHþŸLo´
|
||||
BIN
core/assets/baseparts/solarbrick1.msch
Normal file
BIN
core/assets/baseparts/solarbrick2.msch
Normal file
BIN
core/assets/baseparts/solarbrick4.msch
Normal file
2
core/assets/baseparts/steamgobrr.msch
Normal file
@@ -0,0 +1,2 @@
|
||||
mschxœ%ÐÝrƒ àãJÔ˜fúÜõm:½@³uÌ d“æí»¸^øÁ¸ËYÄÊÕ.„f‹d—É! ½Ñ6†ùg¿¨œÈmÈ¿\^6R0ôƒ£çâm™è_p9N1ìñupv‹æfçÐïë<C3AF>¯ó/3ñ)¸Æ9ÚuÞ3úõIo®ÿôO
|
||||
\ý$óþNGD=ØÈ¡o\7ïl0»’3¼šíi1›ßÃH<뎧H¯\(…Fè„E†•5›s„\(…Fèîä†YÉdÈÃ
|
||||
BIN
core/assets/baseparts/strong_duos.msch
Normal file
@@ -57,6 +57,7 @@ mods.browser.sortstars = Sort by stars
|
||||
schematic = Schematic
|
||||
schematic.add = Save Schematic...
|
||||
schematics = Schematics
|
||||
schematic.search = Search schematics...
|
||||
schematic.replace = A schematic by that name already exists. Replace it?
|
||||
schematic.exists = A schematic by that name already exists.
|
||||
schematic.import = Import Schematic...
|
||||
@@ -69,7 +70,7 @@ schematic.shareworkshop = Share on Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||
schematic.saved = Schematic saved.
|
||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||
schematic.rename = Rename Schematic
|
||||
schematic.edit = Edit Schematic
|
||||
schematic.info = {0}x{1}, {2} blocks
|
||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
||||
schematic.tags = Tags:
|
||||
@@ -78,6 +79,7 @@ schematic.addtag = Add Tag
|
||||
schematic.texttag = Text Tag
|
||||
schematic.icontag = Icon Tag
|
||||
schematic.renametag = Rename Tag
|
||||
schematic.tagged = {0} tagged
|
||||
schematic.tagdelconfirm = Delete this tag completely?
|
||||
schematic.tagexists = That tag already exists.
|
||||
|
||||
@@ -150,12 +152,18 @@ mod.incompatiblemod = [red]Incompatible
|
||||
mod.blacklisted = [red]Unsupported
|
||||
mod.unmetdependencies = [red]Unmet Dependencies
|
||||
mod.erroredcontent = [red]Content Errors
|
||||
mod.circulardependencies = [red]Circular Dependencies
|
||||
mod.incompletedependencies = [red]Incomplete Dependencies
|
||||
|
||||
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
|
||||
mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
|
||||
mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
|
||||
mod.missingdependencies.details = This mod is missing dependencies: {0}
|
||||
mod.erroredcontent.details = This mod caused errors when loading. Ask the mod author to fix them.
|
||||
mod.circulardependencies.details = This mod has dependencies that depends on each other.
|
||||
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
|
||||
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.noerrorplay = [red]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
@@ -251,11 +259,21 @@ trace = Trace Player
|
||||
trace.playername = Player name: [accent]{0}
|
||||
trace.ip = IP: [accent]{0}
|
||||
trace.id = ID: [accent]{0}
|
||||
trace.language = Language: [accent]{0}
|
||||
trace.mobile = Mobile Client: [accent]{0}
|
||||
trace.modclient = Custom Client: [accent]{0}
|
||||
trace.times.joined = Times Joined: [accent]{0}
|
||||
trace.times.kicked = Times Kicked: [accent]{0}
|
||||
trace.ips = IPs:
|
||||
trace.names = Names:
|
||||
invalidid = Invalid client ID! Submit a bug report.
|
||||
|
||||
player.ban = Ban
|
||||
player.kick = Kick
|
||||
player.trace = Trace
|
||||
player.admin = Toggle Admin
|
||||
player.team = Change Team
|
||||
|
||||
server.bans = Bans
|
||||
server.bans.none = No banned players found!
|
||||
server.admins = Admins
|
||||
@@ -269,10 +287,11 @@ server.version = [gray]v{0} {1}
|
||||
server.custombuild = [accent]Custom Build
|
||||
confirmban = Are you sure you want to ban "{0}[white]"?
|
||||
confirmkick = Are you sure you want to kick "{0}[white]"?
|
||||
confirmvotekick = Are you sure you want to vote-kick "{0}[white]"?
|
||||
confirmunban = Are you sure you want to unban this player?
|
||||
confirmadmin = Are you sure you want to make "{0}[white]" an admin?
|
||||
confirmunadmin = Are you sure you want to remove admin status from "{0}[white]"?
|
||||
votekick.reason = Vote-Kick Reason
|
||||
votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
|
||||
joingame.title = Join Game
|
||||
joingame.ip = Address:
|
||||
disconnect = Disconnected.
|
||||
@@ -290,6 +309,7 @@ server.invalidport = Invalid port number!
|
||||
server.error = [scarlet]Error hosting server.
|
||||
save.new = New Save
|
||||
save.overwrite = Are you sure you want to overwrite\nthis save slot?
|
||||
save.nocampaign = Individual save files from the campaign cannot be imported.
|
||||
overwrite = Overwrite
|
||||
save.none = No saves found!
|
||||
savefail = Failed to save game!
|
||||
@@ -327,11 +347,23 @@ open = Open
|
||||
customize = Customize Rules
|
||||
cancel = Cancel
|
||||
command = Command
|
||||
command.queue = Queue
|
||||
command.mine = Mine
|
||||
command.repair = Repair
|
||||
command.rebuild = Rebuild
|
||||
command.assist = Assist Player
|
||||
command.move = Move
|
||||
command.boost = Boost
|
||||
command.enterPayload = Enter Payload Block
|
||||
command.loadUnits = Load Units
|
||||
command.loadBlocks = Load Blocks
|
||||
command.unloadPayload = Unload Payload
|
||||
stance.stop = Cancel Orders
|
||||
stance.shoot = Stance: Shoot
|
||||
stance.holdfire = Stance: Hold Fire
|
||||
stance.pursuetarget = Stance: Pursue Target
|
||||
stance.patrol = Stance: Patrol Path
|
||||
stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
|
||||
openlink = Open Link
|
||||
copylink = Copy Link
|
||||
back = Back
|
||||
@@ -357,6 +389,8 @@ pausebuilding = [accent][[{0}][] to pause building
|
||||
resumebuilding = [scarlet][[{0}][] to resume building
|
||||
enablebuilding = [scarlet][[{0}][] to enable building
|
||||
showui = UI hidden.\nPress [accent][[{0}][] to show UI.
|
||||
commandmode.name = [accent]Command Mode
|
||||
commandmode.nounits = [no units]
|
||||
wave = [accent]Wave {0}
|
||||
wave.cap = [accent]Wave {0}/{1}
|
||||
wave.waiting = [lightgray]Wave in {0}
|
||||
@@ -376,9 +410,9 @@ custom = Custom
|
||||
builtin = Built-In
|
||||
map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
|
||||
map.random = [accent]Random Map
|
||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a [#{0}]{1}[] core to this map in the editor.
|
||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a {0} core to this map in the editor.
|
||||
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor.
|
||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add [#{0}]{1}[] cores to this map in the editor.
|
||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add {0} cores to this map in the editor.
|
||||
map.invalid = Error loading map: corrupted or invalid map file.
|
||||
workshop.update = Update Item
|
||||
workshop.error = Error fetching workshop details: {0}
|
||||
@@ -410,6 +444,7 @@ editor.waves = Waves
|
||||
editor.rules = Rules
|
||||
editor.generation = Generation
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.ingame = Edit In-Game
|
||||
editor.playtest = Playtest
|
||||
editor.publish.workshop = Publish On Workshop
|
||||
@@ -441,6 +476,7 @@ waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Preview
|
||||
waves.edit = Edit...
|
||||
waves.random = Random
|
||||
waves.copy = Copy to Clipboard
|
||||
waves.load = Load from Clipboard
|
||||
waves.invalid = Invalid waves in clipboard.
|
||||
@@ -451,6 +487,8 @@ waves.sort.reverse = Reverse Sort
|
||||
waves.sort.begin = Begin
|
||||
waves.sort.health = Health
|
||||
waves.sort.type = Type
|
||||
waves.search = Search waves...
|
||||
waves.filter = Unit Filter
|
||||
waves.units.hide = Hide All
|
||||
waves.units.show = Show All
|
||||
|
||||
@@ -461,7 +499,7 @@ wavemode.health = health
|
||||
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Details...
|
||||
edit = Edit...
|
||||
edit = Edit
|
||||
variables = Vars
|
||||
editor.name = Name:
|
||||
editor.spawn = Spawn Unit
|
||||
@@ -474,6 +512,7 @@ editor.errorlegacy = This map is too old, and uses a legacy map format that is n
|
||||
editor.errornot = This is not a map file.
|
||||
editor.errorheader = This map file is either not valid or corrupt.
|
||||
editor.errorname = Map has no name defined. Are you trying to load a save file?
|
||||
editor.errorlocales = Error reading invalid locale bundles.
|
||||
editor.update = Update
|
||||
editor.randomize = Randomize
|
||||
editor.moveup = Move Up
|
||||
@@ -485,6 +524,7 @@ editor.sectorgenerate = Sector Generate
|
||||
editor.resize = Resize
|
||||
editor.loadmap = Load Map
|
||||
editor.savemap = Save Map
|
||||
editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
|
||||
editor.saved = Saved!
|
||||
editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
|
||||
editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
|
||||
@@ -523,6 +563,8 @@ toolmode.eraseores = Erase Ores
|
||||
toolmode.eraseores.description = Erase only ores.
|
||||
toolmode.fillteams = Fill Teams
|
||||
toolmode.fillteams.description = Fill teams instead of blocks.
|
||||
toolmode.fillerase = Fill Erase
|
||||
toolmode.fillerase.description = Erase blocks of the same type.
|
||||
toolmode.drawteams = Draw Teams
|
||||
toolmode.drawteams.description = Draw teams instead of blocks.
|
||||
#unused
|
||||
@@ -571,6 +613,24 @@ filter.option.threshold2 = Secondary Threshold
|
||||
filter.option.radius = Radius
|
||||
filter.option.percentile = Percentile
|
||||
|
||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||
locales.applytoall = Apply Changes To All Locales
|
||||
locales.addtoother = Add To Other Locales
|
||||
locales.rollback = Rollback to last applied
|
||||
locales.filter = Property filter
|
||||
locales.searchname = Search name...
|
||||
locales.searchvalue = Search value...
|
||||
locales.searchlocale = Search locale...
|
||||
locales.byname = By name
|
||||
locales.byvalue = By value
|
||||
locales.showcorrect = Show properties that are present in all locales and have unique values everywhere
|
||||
locales.showmissing = Show properties that are missing in some locales
|
||||
locales.showsame = Show properties that have same values in different locales
|
||||
locales.viewproperty = View in all locales
|
||||
locales.viewing = Viewing property "{0}"
|
||||
locales.addicon = Add Icon
|
||||
|
||||
width = Width:
|
||||
height = Height:
|
||||
menu = Menu
|
||||
@@ -625,6 +685,7 @@ marker.shapetext.name = Shape Text
|
||||
marker.minimap.name = Minimap
|
||||
marker.shape.name = Shape
|
||||
marker.text.name = Text
|
||||
marker.line.name = Line
|
||||
|
||||
marker.background = Background
|
||||
marker.outline = Outline
|
||||
@@ -653,7 +714,6 @@ resources.max = Max
|
||||
bannedblocks = Banned Blocks
|
||||
objectives = Objectives
|
||||
bannedunits = Banned Units
|
||||
rules.hidebannedblocks = Hide Banned Blocks
|
||||
bannedunits.whitelist = Banned Units As Whitelist
|
||||
bannedblocks.whitelist = Banned Blocks As Whitelist
|
||||
addall = Add All
|
||||
@@ -714,7 +774,7 @@ sector.missingresources = [scarlet]Insufficient Core Resources
|
||||
sector.attacked = Sector [accent]{0}[white] under attack!
|
||||
sector.lost = Sector [accent]{0}[white] lost!
|
||||
#note: the missing space in the line below is intentional
|
||||
sector.captured = Sector [accent]{0}[white]captured!
|
||||
sector.capture = Sector [accent]{0}[white]Captured!
|
||||
sector.changeicon = Change Icon
|
||||
sector.noswitch.title = Unable to Switch Sectors
|
||||
sector.noswitch = You may not switch sectors while an existing sector is under attack.\n\nSector: [accent]{0}[] on [accent]{1}[]
|
||||
@@ -788,11 +848,11 @@ sector.crossroads.name = Crossroads
|
||||
sector.karst.name = Karst
|
||||
sector.origin.name = Origin
|
||||
|
||||
sector.onset.description = The tutorial sector. This objective has not been created yet. Await further information.
|
||||
sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology.
|
||||
sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area.
|
||||
sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
|
||||
sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain.
|
||||
sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
|
||||
sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past certain enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
|
||||
sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech.
|
||||
sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold.
|
||||
sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power.
|
||||
@@ -889,6 +949,7 @@ stat.repairspeed = Repair Speed
|
||||
stat.weapons = Weapons
|
||||
stat.bullet = Bullet
|
||||
stat.moduletier = Module Tier
|
||||
stat.unittype = Unit Type
|
||||
stat.speedincrease = Speed Increase
|
||||
stat.range = Range
|
||||
stat.drilltier = Drillables
|
||||
@@ -936,13 +997,16 @@ stat.healing = Healing
|
||||
|
||||
ability.forcefield = Force Field
|
||||
ability.repairfield = Repair Field
|
||||
ability.statusfield = {0} Status Field
|
||||
ability.unitspawn = {0} Factory
|
||||
ability.statusfield = Status Field
|
||||
ability.unitspawn = Factory
|
||||
ability.shieldregenfield = Shield Regen Field
|
||||
ability.movelightning = Movement Lightning
|
||||
ability.shieldarc = Shield Arc
|
||||
ability.suppressionfield = Regen Suppression Field
|
||||
ability.energyfield = Energy Field: [accent]{0}[] damage ~ [accent]{1}[] blocks / [accent]{2}[] targets
|
||||
ability.suppressionfield = Repair Suppression
|
||||
ability.energyfield = Energy Field
|
||||
ability.energyfield.sametypehealmultiplier = [lightgray]Same Type Healing: [white]{0}%
|
||||
ability.energyfield.maxtargets = [lightgray]Max Targets: [white]{0}
|
||||
ability.regen = Regeneration
|
||||
|
||||
bar.onlycoredeposit = Only Core Depositing Allowed
|
||||
bar.drilltierreq = Better Drill Required
|
||||
@@ -978,10 +1042,13 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
bullet.damage = [stat]{0}[lightgray] damage
|
||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~ [stat]{1}[lightgray] tiles
|
||||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
|
||||
bullet.suppression = [stat]{0}[lightgray] seconds of repair suppression ~ [stat]{1}[lightgray] tiles
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
@@ -1035,6 +1102,7 @@ setting.backgroundpause.name = Pause In Background
|
||||
setting.buildautopause.name = Auto-Pause Building
|
||||
setting.doubletapmine.name = Double-Tap to Mine
|
||||
setting.commandmodehold.name = Hold For Command Mode
|
||||
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
|
||||
setting.modcrashdisable.name = Disable Mods On Startup Crash
|
||||
setting.animatedwater.name = Animated Surfaces
|
||||
setting.animatedshields.name = Animated Shields
|
||||
@@ -1081,13 +1149,14 @@ setting.position.name = Show Player Position
|
||||
setting.mouseposition.name = Show Mouse Position
|
||||
setting.musicvol.name = Music Volume
|
||||
setting.atmosphere.name = Show Planet Atmosphere
|
||||
setting.drawlight.name = Draw Darkness/Lighting
|
||||
setting.ambientvol.name = Ambient Volume
|
||||
setting.mutemusic.name = Mute Music
|
||||
setting.sfxvol.name = SFX Volume
|
||||
setting.mutesound.name = Mute Sound
|
||||
setting.crashreport.name = Send Anonymous Crash Reports
|
||||
setting.savecreate.name = Auto-Create Saves
|
||||
setting.publichost.name = Public Game Visibility
|
||||
setting.steampublichost.name = Public Game Visibility
|
||||
setting.playerlimit.name = Player Limit
|
||||
setting.chatopacity.name = Chat Opacity
|
||||
setting.lasersopacity.name = Power Laser Opacity
|
||||
@@ -1095,8 +1164,10 @@ setting.bridgeopacity.name = Bridge Opacity
|
||||
setting.playerchat.name = Display Player Bubble Chat
|
||||
setting.showweather.name = Show Weather Graphics
|
||||
setting.hidedisplays.name = Hide Logic Displays
|
||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
||||
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]?
|
||||
setting.macnotch.name = Adapt interface to display notch
|
||||
setting.macnotch.description = Restart required to apply changes
|
||||
steam.friendsonly = Friends Only
|
||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
|
||||
uiscale.cancel = Cancel & Exit
|
||||
@@ -1105,6 +1176,7 @@ keybind.title = Rebind Keys
|
||||
keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported.
|
||||
category.general.name = General
|
||||
category.view.name = View
|
||||
category.command.name = Unit Command
|
||||
category.multiplayer.name = Multiplayer
|
||||
category.blocks.name = Block Select
|
||||
placement.blockselectkeys = \n[lightgray]Key: [{0},
|
||||
@@ -1122,6 +1194,26 @@ keybind.mouse_move.name = Follow Mouse
|
||||
keybind.pan.name = Pan View
|
||||
keybind.boost.name = Boost
|
||||
keybind.command_mode.name = Command Mode
|
||||
keybind.command_queue.name = Queue Unit Command
|
||||
keybind.create_control_group.name = Create Control Group
|
||||
keybind.cancel_orders.name = Cancel Orders
|
||||
|
||||
keybind.unit_stance_shoot.name = Unit Stance: Shoot
|
||||
keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
|
||||
keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
|
||||
keybind.unit_stance_patrol.name = Unit Stance: Patrol
|
||||
keybind.unit_stance_ram.name = Unit Stance: Ram
|
||||
|
||||
keybind.unit_command_move = Unit Command: Move
|
||||
keybind.unit_command_repair = Unit Command: Repair
|
||||
keybind.unit_command_rebuild = Unit Command: Rebuild
|
||||
keybind.unit_command_assist = Unit Command: Assist
|
||||
keybind.unit_command_mine = Unit Command: Mine
|
||||
keybind.unit_command_boost = Unit Command: Boost
|
||||
keybind.unit_command_load_units = Unit Command: Load Units
|
||||
keybind.unit_command_load_blocks = Unit Command: Load Blocks
|
||||
keybind.unit_command_unload_payload = Unit Command: Unload Payload
|
||||
|
||||
keybind.rebuild_select.name = Rebuild Region
|
||||
keybind.schematic_select.name = Select Region
|
||||
keybind.schematic_menu.name = Schematic Menu
|
||||
@@ -1148,8 +1240,8 @@ keybind.select.name = Select/Shoot
|
||||
keybind.diagonal_placement.name = Diagonal Placement
|
||||
keybind.pick.name = Pick Block
|
||||
keybind.break_block.name = Break Block
|
||||
keybind.select_all_units = Select All Units
|
||||
keybind.select_all_unit_factories = Select All Unit Factories
|
||||
keybind.select_all_units.name = Select All Units
|
||||
keybind.select_all_unit_factories.name = Select All Unit Factories
|
||||
keybind.deselect.name = Deselect
|
||||
keybind.pickupCargo.name = Pickup Cargo
|
||||
keybind.dropCargo.name = Drop Cargo
|
||||
@@ -1186,8 +1278,11 @@ mode.attack.name = Attack
|
||||
mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core in the map to play.
|
||||
mode.custom = Custom Rules
|
||||
|
||||
rules.invaliddata = Invalid clipboard data.
|
||||
rules.hidebannedblocks = Hide Banned Blocks
|
||||
rules.infiniteresources = Infinite Resources
|
||||
rules.onlydepositcore = Only Allow Core Depositing
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
@@ -1196,6 +1291,8 @@ rules.wavetimer = Wave Timer
|
||||
rules.wavesending = Wave Sending
|
||||
rules.waves = Waves
|
||||
rules.attack = Attack Mode
|
||||
rules.buildai = Base Builder AI
|
||||
rules.buildaitier = Builder AI Tier
|
||||
rules.rtsai = RTS AI [red](WIP)
|
||||
rules.rtsminsquadsize = Min Squad Size
|
||||
rules.rtsmaxsquadsize = Max Squad Size
|
||||
@@ -1211,6 +1308,7 @@ rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
rules.unitdamagemultiplier = Unit Damage Multiplier
|
||||
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
|
||||
rules.solarmultiplier = Solar Power Multiplier
|
||||
rules.unitcapvariable = Cores Contribute To Unit Cap
|
||||
rules.unitcap = Base Unit Cap
|
||||
@@ -1222,6 +1320,7 @@ rules.buildcostmultiplier = Build Cost Multiplier
|
||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
||||
rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
|
||||
rules.waitForWaveToEnd = Waves Wait for Enemies
|
||||
rules.wavelimit = Map Ends After Wave
|
||||
rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles)
|
||||
rules.unitammo = Units Require Ammo [red](may be removed)
|
||||
rules.enemyteam = Enemy Team
|
||||
@@ -1707,7 +1806,6 @@ block.disperse.name = Disperse
|
||||
block.afflict.name = Afflict
|
||||
block.lustre.name = Lustre
|
||||
block.scathe.name = Scathe
|
||||
block.fabricator.name = Fabricator
|
||||
block.tank-refabricator.name = Tank Refabricator
|
||||
block.mech-refabricator.name = Mech Refabricator
|
||||
block.ship-refabricator.name = Ship Refabricator
|
||||
@@ -1760,18 +1858,18 @@ hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
||||
hint.breaking = [accent]Right-click[] and drag to break blocks.
|
||||
hint.breaking.mobile = Activate the \uE817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
|
||||
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
|
||||
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
|
||||
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources, or repaired.
|
||||
hint.research = Use the \uE875 [accent]Research[] button to research new technology.
|
||||
hint.research.mobile = Use the \uE875 [accent]Research[] button in the \uE88C [accent]Menu[] to research new technology.
|
||||
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to manually control friendly units or turrets.
|
||||
hint.unitControl.mobile = [accent][[Double-tap][] to manually control friendly units or turrets.
|
||||
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
|
||||
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
|
||||
hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \uE827 [accent]Map[] in the bottom right.
|
||||
hint.launch = Once enough resources are collected, you can [accent]Launch[] to the next sector by opening the \uE827 [accent]Map[] in the bottom right, and panning over to the new location.
|
||||
hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \uE827 [accent]Map[] in the \uE88C [accent]Menu[].
|
||||
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
|
||||
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
|
||||
|
||||
hint.rebuildSelect.mobile = Select the \uE874 copy button, then tap the \uE80F rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
|
||||
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
||||
hint.conveyorPathfind.mobile = Enable \uE844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
|
||||
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
|
||||
@@ -1782,55 +1880,59 @@ hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a pay
|
||||
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
||||
hint.generator = \uF879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uF87F [accent]Power Nodes[].
|
||||
hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uF835 [accent]Graphite[] \uF861Duo/\uF859Salvo ammunition to take Guardians down.
|
||||
hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
|
||||
hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uF868 [accent]Foundation[] core over the \uF869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
|
||||
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
|
||||
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
|
||||
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
|
||||
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
|
||||
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
|
||||
|
||||
gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
|
||||
gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
|
||||
gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
|
||||
gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \uE800 [accent]checkmark[] at the bottom right to confirm.
|
||||
gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
||||
gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
||||
gz.mine = Move near the \uF8C4 [accent]copper ore[] on the ground and click to begin mining.
|
||||
gz.mine.mobile = Move near the \uF8C4 [accent]copper ore[] on the ground and tap it to begin mining.
|
||||
gz.research = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the \ue85e menu in the bottom right.\nClick on a copper patch to place it.
|
||||
gz.research.mobile = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the \ue85e menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \uE800 [accent]checkmark[] at the bottom right to confirm.
|
||||
gz.conveyors = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
||||
gz.conveyors.mobile = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
||||
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
|
||||
gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
|
||||
gz.moveup = \ue804 Move up for further objectives.
|
||||
gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
|
||||
gz.lead = \uF837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
|
||||
gz.moveup = \uE804 Move up for further objectives.
|
||||
gz.turrets = Research and place 2 \uF861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uF838 [accent]ammo[] from conveyors.
|
||||
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
|
||||
gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
|
||||
gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uF8AE [accent]copper walls[] around the turrets.
|
||||
gz.defend = Enemy incoming, prepare to defend.
|
||||
gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
|
||||
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
|
||||
gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uF860 [accent]Scatter[] turrets provide excellent anti-air, but require \uF837 [accent]lead[] as ammo.
|
||||
gz.scatterammo = Supply the Scatter turret with \uF837 [accent]lead[], using conveyors.
|
||||
gz.supplyturret = [accent]Supply Turret
|
||||
gz.zone1 = This is the enemy drop zone.
|
||||
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
|
||||
gz.zone3 = A wave will begin now.\nGet ready.
|
||||
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
|
||||
|
||||
onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
|
||||
onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
|
||||
onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
|
||||
onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
|
||||
onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
|
||||
onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
|
||||
onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
|
||||
onset.mine = Click to mine \uF748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
|
||||
onset.mine.mobile = Tap to mine \uF748 [accent]beryllium[] from walls.
|
||||
onset.research = Open the \uE875 tech tree.\nResearch, then place a \uF73E [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
|
||||
onset.bore = Research and place a \uF741 [accent]plasma bore[].\nThis automatically mines resources from walls.
|
||||
onset.power = To [accent]power[] the plasma bore, research and place a \uF73D [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
|
||||
onset.ducts = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
|
||||
onset.ducts.mobile = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
|
||||
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
|
||||
onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
|
||||
onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
|
||||
onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
|
||||
onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
|
||||
onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
|
||||
onset.graphite = More complex blocks require \uF835 [accent]graphite[].\nSet up plasma bores to mine graphite.
|
||||
onset.research2 = Begin researching [accent]factories[].\nResearch the \uF74D [accent]cliff crusher[] and \uF779 [accent]silicon arc furnace[].
|
||||
onset.arcfurnace = The arc furnace needs \uF834 [accent]sand[] and \uF835 [accent]graphite[] to create \uF82F [accent]silicon[].\n[accent]Power[] is also required.
|
||||
onset.crusher = Use \uF74D [accent]cliff crushers[] to mine sand.
|
||||
onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uF6A2 [accent]tank fabricator[].
|
||||
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
|
||||
onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
|
||||
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
|
||||
onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
|
||||
onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uF6EB [accent]Breach[] turret.\nTurrets require \uF748 [accent]ammo[].
|
||||
onset.turretammo = Supply the turret with [accent]beryllium[] as ammo, using ducts.
|
||||
onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uF6EE [accent]beryllium walls[] around the turret.
|
||||
onset.enemies = Enemy incoming, prepare to defend.
|
||||
onset.defenses = [accent]Set up defenses:[lightgray] {0}
|
||||
onset.attack = The enemy is vulnerable. Counter-attack.
|
||||
onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
|
||||
onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uF725 core.
|
||||
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
|
||||
onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
|
||||
onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
|
||||
aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
|
||||
|
||||
split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop)
|
||||
split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
|
||||
@@ -2030,7 +2132,6 @@ block.logic-display.description = Displays arbitrary graphics from a logic proce
|
||||
block.large-logic-display.description = Displays arbitrary graphics from a logic processor.
|
||||
block.interplanetary-accelerator.description = A massive electromagnetic railgun tower. Accelerates cores to escape velocity for interplanetary deployment.
|
||||
block.repair-turret.description = Continuously repairs the closest damaged unit in its vicinity. Optionally accepts coolant.
|
||||
block.payload-propulsion-tower.description = Long-range payload transport structure. Shoots payloads to other linked payload propulsion towers.
|
||||
|
||||
#Erekir
|
||||
block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost.
|
||||
@@ -2068,7 +2169,6 @@ block.impact-drill.description = When placed on ore, outputs items in bursts ind
|
||||
block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.
|
||||
block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides.
|
||||
block.reinforced-liquid-router.description = Distributes fluids equally to all sides.
|
||||
block.reinforced-junction.description = Acts as a bridge between two crossing conduits.
|
||||
block.reinforced-liquid-tank.description = Stores a large amount of fluids.
|
||||
block.reinforced-liquid-container.description = Stores a sizeable amount of fluids.
|
||||
block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain.
|
||||
@@ -2180,8 +2280,8 @@ unit.collaris.description = Fires long-range fragmenting artillery at enemy targ
|
||||
unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid.
|
||||
unit.avert.description = Fires twisting pairs of bullets at enemy targets.
|
||||
unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets.
|
||||
unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks.
|
||||
unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks.
|
||||
unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks. Only attacks ground targets.
|
||||
unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks. Only attacks ground targets.
|
||||
unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam. Capable of carrying 2x2 structures.
|
||||
unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam. Capable of carrying 2x2 structures.
|
||||
unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams. Capable of carrying 2x2 structures.
|
||||
@@ -2189,6 +2289,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
|
||||
lst.read = Read a number from a linked memory cell.
|
||||
lst.write = Write a number to a linked memory cell.
|
||||
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
|
||||
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
|
||||
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
|
||||
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
|
||||
lst.printflush = Flush queued [accent]Print[] operations to a message block.
|
||||
@@ -2201,7 +2302,7 @@ lst.operation = Perform an operation on 1-2 variables.
|
||||
lst.end = Jump to the top of the instruction stack.
|
||||
lst.wait = Wait a certain number of seconds.
|
||||
lst.stop = Halt execution of this processor.
|
||||
lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
|
||||
lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]\nFor the inverse operation, sense [accent]@id[] of the object.
|
||||
lst.jump = Conditionally jump to another statement.
|
||||
lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[].
|
||||
lst.unitcontrol = Control the currently bound unit.
|
||||
@@ -2221,6 +2322,12 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
|
||||
lst.cutscene = Manipulate the player camera.
|
||||
lst.setflag = Set a global flag that can be read by all processors.
|
||||
lst.getflag = Check if a global flag is set.
|
||||
lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nLimited to 20 times a second per variable.
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.\n[accent]null []values are ignored.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
logic.nounitbuild = [red]Unit building logic is not allowed here.
|
||||
|
||||
@@ -2236,6 +2343,7 @@ laccess.dead = Whether a unit/building is dead or no longer valid.
|
||||
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlCommand[] if unit controller is a player command\nOtherwise, 0.
|
||||
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
|
||||
laccess.speed = Top speed of a unit, in tiles/sec.
|
||||
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
|
||||
|
||||
lcategory.unknown = Unknown
|
||||
lcategory.unknown.description = Uncategorized instructions.
|
||||
@@ -2263,6 +2371,7 @@ graphicstype.poly = Fill a regular polygon.
|
||||
graphicstype.linepoly = Draw a regular polygon outline.
|
||||
graphicstype.triangle = Fill a triangle.
|
||||
graphicstype.image = Draw an image of some content.\nex: [accent]@router[] or [accent]@dagger[].
|
||||
graphicstype.print = Draws text from the print buffer.\nOnly ASCII characters are allowed.\nClears the print buffer.
|
||||
|
||||
lenum.always = Always true.
|
||||
lenum.idiv = Integer division.
|
||||
@@ -2282,6 +2391,7 @@ lenum.xor = Bitwise XOR.
|
||||
lenum.min = Minimum of two numbers.
|
||||
lenum.max = Maximum of two numbers.
|
||||
lenum.angle = Angle of vector in degrees.
|
||||
lenum.anglediff = Absolute distance between two angles in degrees.
|
||||
lenum.len = Length of vector.
|
||||
|
||||
lenum.sin = Sine, in degrees.
|
||||
@@ -2355,7 +2465,8 @@ lenum.stop = Stop moving/mining/building.
|
||||
lenum.unbind = Completely disable logic control.\nResume standard AI.
|
||||
lenum.move = Move to exact position.
|
||||
lenum.approach = Approach a position with a radius.
|
||||
lenum.pathfind = Pathfind to the enemy spawn.
|
||||
lenum.pathfind = Pathfind to the specified position.
|
||||
lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
|
||||
lenum.target = Shoot a position.
|
||||
lenum.targetp = Shoot a target with velocity prediction.
|
||||
lenum.itemdrop = Drop an item.
|
||||
@@ -2370,7 +2481,7 @@ lenum.getblock = Fetch a building, floor and type at coordinates.\nUnit must be
|
||||
lenum.within = Check if unit is near a position.
|
||||
lenum.boost = Start/stop boosting.
|
||||
|
||||
#Don't translate these yet!
|
||||
onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
|
||||
onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
|
||||
|
||||
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.
|
||||
lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument.
|
||||
lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size.
|
||||
lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
|
||||
|
||||