diff --git a/annotations/src/main/java/mindustry/annotations/Annotations.java b/annotations/src/main/java/mindustry/annotations/Annotations.java index 2e58e13f49..a0d74a0035 100644 --- a/annotations/src/main/java/mindustry/annotations/Annotations.java +++ b/annotations/src/main/java/mindustry/annotations/Annotations.java @@ -124,9 +124,11 @@ public class Annotations{ public @interface OverrideCallSuper{ } - /** Marks a class as serializable. */ + /** Marks a class as serializable. + * @deprecated due to very sparse use and inflexibility. */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.SOURCE) + @Deprecated public @interface Serialize{ } diff --git a/annotations/src/main/resources/revisions/LaunchPayloadEntity/1.json b/annotations/src/main/resources/revisions/LaunchPayloadEntity/1.json new file mode 100644 index 0000000000..6314bc7ee4 --- /dev/null +++ b/annotations/src/main/resources/revisions/LaunchPayloadEntity/1.json @@ -0,0 +1 @@ +{version:1,fields:[{name:height,type:float,size:4},{name:lifetime,type:float,size:4},{name:stacks,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/core/assets-raw/sprites/blocks/storage/launchpod.png b/core/assets-raw/sprites/blocks/storage/launchpod.png new file mode 100644 index 0000000000..1579af96aa Binary files /dev/null and b/core/assets-raw/sprites/blocks/storage/launchpod.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 95224a6200..95024d6364 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -20,567 +20,567 @@ force-projector-top index: -1 mend-projector rotate: false - xy: 1603, 1169 + xy: 1603, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 1603, 1103 + xy: 1603, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 969, 331 + xy: 1589, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 1003, 365 + xy: 1623, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 1603, 971 + xy: 1669, 1173 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 1669, 1173 + xy: 1669, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 1309, 467 + xy: 1831, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 1087, 637 + xy: 1219, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 1257, 637 + xy: 1253, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 1291, 637 + xy: 1287, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 1325, 637 + xy: 1321, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 1359, 637 + xy: 1287, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 1628, 1629 + xy: 1513, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 1628, 1629 + xy: 1513, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 257, 848 + xy: 1628, 1629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 935, 484 + xy: 927, 522 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 1547, 1759 + xy: 257, 848 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1662, 1629 + xy: 885, 442 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 935, 450 + xy: 1547, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1581, 1759 + xy: 1662, 1629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 935, 416 + xy: 885, 408 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 935, 382 + xy: 1581, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 935, 348 + xy: 885, 374 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 935, 314 + xy: 885, 340 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 935, 280 + xy: 885, 306 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 935, 246 + xy: 885, 272 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 935, 212 + xy: 885, 238 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 2013, 745 + xy: 885, 204 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 679, 144 + xy: 885, 170 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 935, 178 + xy: 885, 136 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 615, 8 + xy: 879, 102 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 649, 8 + xy: 879, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 683, 8 + xy: 879, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 1219, 569 + xy: 1321, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 1253, 603 + xy: 1355, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 1253, 569 + xy: 977, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 1287, 603 + xy: 977, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1287, 569 + xy: 1011, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1321, 603 + xy: 977, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1321, 569 + xy: 1011, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1355, 603 + xy: 1045, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1355, 569 + xy: 1011, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1393, 731 + xy: 1045, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1393, 697 + xy: 1079, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 1427, 731 + xy: 1045, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1393, 663 + xy: 1079, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1427, 697 + xy: 1113, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1427, 663 + xy: 1079, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1393, 629 + xy: 1113, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1427, 629 + xy: 1147, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1389, 595 + xy: 1113, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1423, 595 + xy: 1147, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 1037, 331 + xy: 1437, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 1071, 365 + xy: 1471, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 1105, 399 + xy: 1505, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 1139, 433 + xy: 1539, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 1173, 467 + xy: 1573, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 969, 229 + xy: 1607, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1343, 433 + xy: 1675, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1139, 195 + xy: 1709, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1173, 229 + xy: 1675, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1207, 263 + xy: 1709, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1241, 297 + xy: 1743, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1275, 331 + xy: 1709, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1309, 365 + xy: 1743, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1343, 399 + xy: 1777, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1173, 195 + xy: 1743, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1207, 229 + xy: 1777, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1241, 263 + xy: 1811, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1275, 297 + xy: 1777, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1309, 331 + xy: 1811, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1343, 365 + xy: 1845, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1207, 195 + xy: 1811, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1241, 229 + xy: 1845, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1275, 263 + xy: 1845, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1309, 297 + xy: 1675, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1343, 331 + xy: 1709, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 1563, 655 + xy: 1283, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 1339, 1137 + xy: 1339, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 1631, 621 + xy: 995, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1041, 501 + xy: 1491, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -615,56 +615,56 @@ mass-driver-base index: -1 overflow-gate rotate: false - xy: 1071, 433 + xy: 1453, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1071, 399 + xy: 1623, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1105, 433 + xy: 1369, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1139, 467 + xy: 1403, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 969, 263 + xy: 1369, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1207, 399 + xy: 1471, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1105, 229 + xy: 1657, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 1309, 263 + xy: 1811, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -699,14 +699,14 @@ blast-drill-top index: -1 drill-top rotate: false - xy: 1977, 1597 + xy: 285, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 1977, 1597 + xy: 285, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -741,21 +741,21 @@ laser-drill-top index: -1 mechanical-drill rotate: false - xy: 1471, 971 + xy: 1537, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1537, 1037 + xy: 1537, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 1537, 971 + xy: 1603, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -790,84 +790,84 @@ oil-extractor-top index: -1 pneumatic-drill rotate: false - xy: 1867, 1173 + xy: 1735, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1735, 975 + xy: 1801, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1801, 1041 + xy: 1867, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1867, 777 + xy: 1933, 1171 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1933, 1171 + xy: 1933, 1105 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1933, 1105 + xy: 1933, 1039 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1933, 1039 + xy: 1933, 973 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 853, 8 + xy: 961, 522 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1121, 705 + xy: 953, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1291, 705 + xy: 1083, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 1083, 569 + xy: 1049, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1037, 399 + xy: 1623, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -881,189 +881,189 @@ place-arrow index: -1 bridge-conduit rotate: false - xy: 1121, 637 + xy: 1253, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 1155, 637 + xy: 1219, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 1155, 637 + xy: 1219, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 1189, 637 + xy: 1253, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 1223, 637 + xy: 1287, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 1015, 603 + xy: 1321, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1015, 569 + xy: 1355, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 1049, 603 + xy: 1355, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 1049, 569 + xy: 981, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 1049, 569 + xy: 981, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 1049, 569 + xy: 981, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 1049, 569 + xy: 981, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 1083, 603 + xy: 1015, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 1117, 603 + xy: 1083, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 1117, 569 + xy: 1117, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 1151, 603 + xy: 1151, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 1151, 569 + xy: 1185, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 1151, 569 + xy: 1185, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 1185, 603 + xy: 1219, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 1185, 569 + xy: 1253, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 1219, 603 + xy: 1287, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1143, 501 + xy: 1593, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 1245, 501 + xy: 1491, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 1279, 501 + xy: 1525, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1313, 501 + xy: 1559, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1347, 501 + xy: 1593, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 969, 467 + xy: 1627, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1091,161 +1091,161 @@ liquid-tank-top index: -1 mechanical-pump rotate: false - xy: 1003, 399 + xy: 1555, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 1037, 433 + xy: 1555, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 1037, 433 + xy: 1555, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 1037, 433 + xy: 1555, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1105, 467 + xy: 1487, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 969, 297 + xy: 1521, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1003, 331 + xy: 1555, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1037, 365 + xy: 1589, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 1037, 297 + xy: 1471, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 1071, 331 + xy: 1505, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 1105, 365 + xy: 1539, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 1139, 399 + xy: 1573, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 1173, 433 + xy: 1607, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 1207, 467 + xy: 1641, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-5 rotate: false - xy: 969, 195 + xy: 1641, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-6 rotate: false - xy: 1003, 229 + xy: 995, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1139, 365 + xy: 1131, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1173, 399 + xy: 1165, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1207, 433 + xy: 1199, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1241, 467 + xy: 1233, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1003, 195 + xy: 1267, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1037, 229 + xy: 1301, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 1867, 975 + xy: 1405, 897 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1259,21 +1259,21 @@ thermal-pump index: -1 alpha-mech-pad rotate: false - xy: 1, 1 + xy: 69, 1 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dart-ship-pad rotate: false - xy: 1273, 1005 + xy: 1273, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 delta-mech-pad rotate: false - xy: 1273, 939 + xy: 1339, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1287,7 +1287,7 @@ glaive-ship-pad index: -1 javelin-ship-pad rotate: false - xy: 1471, 1169 + xy: 1471, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1301,21 +1301,21 @@ omega-mech-pad index: -1 tau-mech-pad rotate: false - xy: 1075, 807 + xy: 1141, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident-ship-pad rotate: false - xy: 1603, 773 + xy: 1669, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 battery rotate: false - xy: 717, 8 + xy: 715, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1336,21 +1336,21 @@ battery-large-top index: -1 battery-top rotate: false - xy: 751, 8 + xy: 749, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 981, 603 + xy: 1321, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 981, 569 + xy: 1355, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1378,28 +1378,28 @@ differential-generator-top index: -1 diode rotate: false - xy: 1597, 689 + xy: 1249, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 1597, 655 + xy: 1283, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 1529, 621 + xy: 1317, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 1563, 621 + xy: 1351, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1455,49 +1455,49 @@ impact-reactor-plasma-3 index: -1 power-node rotate: false - xy: 1037, 263 + xy: 1029, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 1867, 1107 + xy: 1801, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source rotate: false - xy: 1071, 297 + xy: 1063, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1105, 331 + xy: 1097, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 1405, 897 + xy: 1471, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 1241, 433 + xy: 1505, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1071, 195 + xy: 1865, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1511,14 +1511,14 @@ solar-panel-large index: -1 surge-tower rotate: false - xy: 1801, 843 + xy: 1867, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1141, 807 + xy: 1207, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1546,14 +1546,14 @@ thorium-reactor-lights index: -1 turbine-generator rotate: false - xy: 1669, 777 + xy: 1735, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 1735, 777 + xy: 1801, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1574,7 +1574,7 @@ alloy-smelter-top index: -1 blast-mixer rotate: false - xy: 67, 1 + xy: 1983, 1369 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1595,119 +1595,119 @@ block-launcher index: -1 coal-centrifuge rotate: false - xy: 943, 1048 + xy: 943, 982 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 1141, 1005 + xy: 1207, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 1207, 1071 + xy: 1273, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 1273, 1137 + xy: 1141, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 1141, 939 + xy: 1207, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 1207, 1005 + xy: 1273, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 1273, 1071 + xy: 1207, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 1405, 963 + xy: 1471, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 incinerator rotate: false - xy: 1597, 621 + xy: 1351, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1389, 527 + xy: 1423, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1007, 501 + xy: 1457, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln rotate: false - xy: 1471, 1103 + xy: 1537, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 1537, 1169 + xy: 1471, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 1537, 1169 + xy: 1471, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 969, 399 + xy: 1487, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 1003, 433 + xy: 1487, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1071, 467 + xy: 1589, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1721,203 +1721,203 @@ multi-press index: -1 phase-weaver rotate: false - xy: 1669, 1041 + xy: 1735, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 1735, 1107 + xy: 1801, 1173 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 1801, 1173 + xy: 1669, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 1669, 975 + xy: 1735, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 1735, 1041 + xy: 1801, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 1071, 263 + xy: 1335, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1105, 297 + xy: 1369, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 1801, 975 + xy: 1867, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 1141, 873 + xy: 1207, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1207, 873 + xy: 1273, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 1273, 873 + xy: 1339, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 1339, 873 + xy: 943, 850 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1405, 831 + xy: 1471, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1471, 839 + xy: 1537, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1537, 839 + xy: 1603, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1603, 839 + xy: 1669, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1669, 843 + xy: 1735, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1735, 843 + xy: 1801, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 629, 92 + xy: 793, 138 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 665, 42 + xy: 829, 88 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 1275, 467 + xy: 1539, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 1037, 195 + xy: 1573, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 1241, 399 + xy: 1763, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 1275, 433 + xy: 1797, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrock1 rotate: false - xy: 715, 42 + xy: 1671, 677 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 729, 92 + xy: 1721, 677 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 893, 236 + xy: 893, 556 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 893, 194 + xy: 935, 556 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 939, 556 + xy: 885, 514 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -1938,7 +1938,7 @@ white-tree-dead index: -1 container rotate: false - xy: 943, 916 + xy: 1009, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1978,16 +1978,23 @@ launch-pad-large orig: 128, 128 offset: 0, 0 index: -1 +launchpod + rotate: false + xy: 1, 1 + size: 66, 64 + orig: 66, 64 + offset: 0, 0 + index: -1 unloader rotate: false - xy: 1343, 297 + xy: 1845, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 1275, 195 + xy: 1879, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2001,21 +2008,21 @@ vault index: -1 arc-heat rotate: false - xy: 1513, 1759 + xy: 251, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 785, 20 + xy: 783, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 1983, 1369 + xy: 1983, 1303 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2036,14 +2043,14 @@ block-4 index: -1 hail-heat rotate: false - xy: 901, 824 + xy: 843, 516 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 1537, 1103 + xy: 1471, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2064,35 +2071,35 @@ ripple-heat index: -1 salvo-heat rotate: false - xy: 1537, 905 + xy: 1603, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 1603, 905 + xy: 1669, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 1669, 909 + xy: 1735, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 1105, 263 + xy: 1641, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1933, 907 + xy: 1933, 841 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2148,70 +2155,70 @@ titan-factory-top index: -1 command-center rotate: false - xy: 943, 982 + xy: 943, 916 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 crawler-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 draug-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phantom-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spirit-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wraith-factory rotate: false - xy: 1207, 1137 + xy: 1075, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 crawler-factory-top rotate: false - xy: 1075, 939 + xy: 1141, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory-top rotate: false - xy: 1207, 939 + xy: 1273, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 draug-factory-top rotate: false - xy: 1339, 939 + xy: 1977, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2246,21 +2253,21 @@ naval-factory index: -1 phantom-factory-top rotate: false - xy: 1669, 1107 + xy: 1735, 1173 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rally-point rotate: false - xy: 1867, 1041 + xy: 1867, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 1173, 365 + xy: 1437, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2281,7 +2288,7 @@ revenant-factory-top index: -1 spirit-factory-top rotate: false - xy: 943, 850 + xy: 1405, 831 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2295,77 +2302,77 @@ titan-factory index: -1 wraith-factory-top rotate: false - xy: 1933, 841 + xy: 1933, 775 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 1389, 561 + xy: 1181, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 1009, 1137 + xy: 1009, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 1631, 689 + xy: 1317, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 1339, 1071 + xy: 1339, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 1339, 1005 + xy: 1339, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 1631, 655 + xy: 1283, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1003, 297 + xy: 1403, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 1735, 1173 + xy: 1669, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 1003, 263 + xy: 1437, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 1801, 1107 + xy: 1867, 1173 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2393,84 +2400,84 @@ scrap-wall-huge3 index: -1 scrap-wall-large1 rotate: false - xy: 1801, 909 + xy: 1867, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 1867, 909 + xy: 1009, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 1009, 873 + xy: 1075, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1075, 873 + xy: 1141, 873 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 1139, 297 + xy: 1661, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 1173, 331 + xy: 1695, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 1207, 365 + xy: 1729, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 1207, 365 + xy: 1729, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 1275, 365 + xy: 1861, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 1867, 843 + xy: 1009, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 1309, 399 + xy: 1675, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1207, 807 + xy: 1273, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2484,35 +2491,35 @@ thruster index: -1 titanium-wall rotate: false - xy: 1241, 195 + xy: 1743, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1537, 773 + xy: 1603, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 743, 676 + xy: 750, 792 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 743, 622 + xy: 743, 738 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 1461, 747 + xy: 1661, 705 size: 8, 16 orig: 8, 16 offset: 0, 0 @@ -2526,7 +2533,7 @@ circle-end index: -1 circle-mid rotate: false - xy: 2033, 1722 + xy: 987, 253 size: 1, 199 orig: 1, 199 offset: 0, 0 @@ -2540,7 +2547,7 @@ circle-shadow index: -1 error rotate: false - xy: 801, 754 + xy: 679, 113 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -2561,7 +2568,7 @@ laser-end index: -1 minelaser rotate: false - xy: 848, 1757 + xy: 937, 858 size: 4, 48 orig: 4, 48 offset: 0, 0 @@ -2589,7 +2596,7 @@ missile-back index: -1 particle rotate: false - xy: 893, 278 + xy: 935, 598 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -2610,21 +2617,21 @@ shell index: -1 shell-back rotate: false - xy: 935, 518 + xy: 885, 476 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 765, 42 + xy: 848, 1757 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 1275, 229 + xy: 1777, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2652,7 +2659,7 @@ block-air-factory-full index: -1 block-arc-full rotate: false - xy: 819, 8 + xy: 817, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2666,56 +2673,56 @@ block-blast-drill-full index: -1 block-char-full rotate: false - xy: 2013, 711 + xy: 927, 488 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 985, 773 + xy: 961, 488 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 985, 739 + xy: 923, 454 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 1019, 773 + xy: 957, 454 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1019, 773 + xy: 957, 454 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 985, 705 + xy: 919, 420 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 1983, 1303 + xy: 1983, 1237 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 1983, 1237 + xy: 526, 1209 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2729,28 +2736,28 @@ block-cyclone-full index: -1 block-dark-metal-full rotate: false - xy: 1019, 739 + xy: 919, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1053, 773 + xy: 953, 420 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 985, 671 + xy: 919, 352 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1019, 705 + xy: 953, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2764,7 +2771,7 @@ block-fuse-full index: -1 block-grass-full rotate: false - xy: 1053, 739 + xy: 919, 318 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2778,49 +2785,49 @@ block-ground-factory-full index: -1 block-hail-full rotate: false - xy: 1087, 773 + xy: 953, 352 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1019, 671 + xy: 919, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1053, 705 + xy: 953, 318 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1087, 739 + xy: 919, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1121, 773 + xy: 953, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1053, 671 + xy: 919, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1087, 705 + xy: 953, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2834,7 +2841,7 @@ block-impact-reactor-full index: -1 block-lancer-full rotate: false - xy: 526, 1209 + xy: 1457, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2848,7 +2855,7 @@ block-laser-drill-full index: -1 block-liquid-router-full rotate: false - xy: 1121, 739 + xy: 919, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2862,7 +2869,7 @@ block-liquid-tank-full index: -1 block-magmarock-full rotate: false - xy: 1155, 773 + xy: 953, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2890,7 +2897,7 @@ block-mass-driver-full index: -1 block-mechanical-drill-full rotate: false - xy: 1457, 1235 + xy: 1523, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2904,14 +2911,14 @@ block-meltdown-full index: -1 block-metal-floor-damaged-full rotate: false - xy: 1087, 671 + xy: 919, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1155, 739 + xy: 953, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2932,91 +2939,91 @@ block-oil-extractor-full index: -1 block-ore-coal-full rotate: false - xy: 1189, 773 + xy: 919, 114 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1121, 671 + xy: 953, 114 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1155, 705 + xy: 913, 80 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 1189, 739 + xy: 913, 46 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 1223, 773 + xy: 947, 80 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 1155, 671 + xy: 947, 46 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1189, 705 + xy: 913, 12 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 1523, 1235 + xy: 1589, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 1223, 739 + xy: 947, 12 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 1589, 1235 + xy: 811, 1040 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1257, 773 + xy: 981, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1189, 671 + xy: 981, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 1223, 705 + xy: 1015, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3037,70 +3044,70 @@ block-rock-full index: -1 block-rocks-full rotate: false - xy: 1257, 739 + xy: 981, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1291, 773 + xy: 1015, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 811, 1040 + xy: 811, 974 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 1223, 671 + xy: 1049, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1257, 705 + xy: 1015, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1291, 739 + xy: 1049, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 811, 974 + xy: 877, 1040 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 1325, 773 + xy: 1083, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1257, 671 + xy: 1049, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1257, 671 + xy: 1049, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3121,42 +3128,42 @@ scrap-wall-huge1 index: -1 block-scrap-wall-large-full rotate: false - xy: 877, 1040 + xy: 811, 908 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 1325, 739 + xy: 1117, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 1359, 773 + xy: 1083, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 1291, 671 + xy: 1117, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 1325, 705 + xy: 1151, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 1359, 739 + xy: 1117, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3170,7 +3177,7 @@ block-snowrock-full index: -1 block-snowrocks-full rotate: false - xy: 1325, 671 + xy: 1151, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3184,189 +3191,189 @@ block-spectre-full index: -1 block-spore-cluster-full rotate: false - xy: 901, 866 + xy: 579, 98 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 1359, 705 + xy: 1185, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 811, 908 + xy: 877, 974 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sporerocks-full rotate: false - xy: 1359, 671 + xy: 1151, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 985, 637 + xy: 1185, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 877, 974 + xy: 877, 908 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 1019, 637 + xy: 1219, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 1053, 637 + xy: 1185, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 1053, 637 + xy: 1185, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 877, 908 + xy: 943, 1114 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 943, 1114 + xy: 943, 1048 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 1423, 561 + xy: 1147, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 1461, 689 + xy: 1181, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 1461, 655 + xy: 1215, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 1495, 689 + xy: 1181, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 1495, 655 + xy: 1215, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 1529, 689 + xy: 1249, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 1529, 655 + xy: 1215, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 1563, 689 + xy: 1249, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 1009, 1071 + xy: 1075, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1075, 1137 + xy: 1009, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1009, 1005 + xy: 1075, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1075, 1071 + xy: 1141, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1141, 1137 + xy: 1009, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1009, 939 + xy: 1075, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1075, 1005 + xy: 1141, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1141, 1071 + xy: 1207, 1137 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3548,7 +3555,7 @@ cyclone index: -1 duo rotate: false - xy: 1461, 621 + xy: 1317, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3562,21 +3569,21 @@ fuse index: -1 hail rotate: false - xy: 1495, 621 + xy: 1351, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 637, 150 + xy: 843, 474 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 1491, 587 + xy: 1029, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3597,21 +3604,21 @@ item-blast-compound-tiny index: -1 item-blast-compound-xlarge rotate: false - xy: 797, 654 + xy: 729, 38 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 901, 782 + xy: 843, 432 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 1559, 587 + xy: 1063, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3625,651 +3632,651 @@ item-coal-small index: -1 item-coal-tiny rotate: false - xy: 848, 1609 + xy: 1657, 557 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 851, 692 + xy: 779, 88 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 943, 808 + xy: 843, 390 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 1627, 587 + xy: 1097, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1689, 1471 + xy: 251, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 786, 1424 + xy: 848, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 847, 642 + xy: 779, 38 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 901, 740 + xy: 843, 348 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 1491, 553 + xy: 1131, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 2011, 1437 + xy: 1689, 1471 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 937, 1479 + xy: 786, 1424 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 797, 604 + xy: 1471, 723 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 943, 766 + xy: 843, 306 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 1559, 553 + xy: 1165, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 1655, 1241 + xy: 1971, 749 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 982, 1358 + xy: 937, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 793, 554 + xy: 1521, 723 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 901, 698 + xy: 843, 264 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 1627, 553 + xy: 1199, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 1309, 237 + xy: 2021, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1383, 1209 + xy: 982, 1358 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 793, 504 + xy: 1571, 723 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 943, 724 + xy: 843, 222 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 1015, 535 + xy: 1233, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1343, 271 + xy: 911, 882 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 1696, 1645 + xy: 1383, 1209 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 793, 454 + xy: 1621, 723 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1971, 734 + xy: 843, 180 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 1083, 535 + xy: 1267, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1689, 1445 + xy: 2011, 1437 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 1696, 1627 + xy: 1696, 1645 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 793, 404 + xy: 1671, 727 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 943, 682 + xy: 843, 138 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 1151, 535 + xy: 1301, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1309, 211 + xy: 1655, 1241 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 713, 160 + xy: 1696, 1627 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 793, 354 + xy: 1721, 727 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 901, 656 + xy: 897, 766 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 1219, 535 + xy: 1335, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1381, 501 + xy: 851, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 713, 142 + xy: 1899, 659 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 793, 304 + xy: 1771, 727 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 897, 614 + xy: 897, 724 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 1287, 535 + xy: 1389, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 1377, 475 + xy: 1879, 515 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 985, 832 + xy: 1971, 731 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 793, 254 + xy: 1821, 727 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 943, 640 + xy: 908, 808 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 1355, 535 + xy: 1423, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 1407, 501 + xy: 1689, 1445 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 1433, 509 + xy: 2018, 1723 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 847, 592 + xy: 1871, 727 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 897, 572 + xy: 950, 808 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 1457, 519 + xy: 1423, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1377, 449 + xy: 1879, 489 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1377, 353 + xy: 866, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 843, 542 + xy: 1921, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 939, 598 + xy: 939, 766 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 1525, 519 + xy: 1385, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1403, 475 + xy: 1879, 463 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 1403, 379 + xy: 786, 1406 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 843, 492 + xy: 665, 5 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 893, 530 + xy: 939, 724 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 1593, 519 + xy: 1419, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1377, 423 + xy: 2021, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 866, 1609 + xy: 955, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 843, 442 + xy: 797, 742 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 893, 488 + xy: 897, 682 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 973, 501 + xy: 1419, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1403, 449 + xy: 911, 856 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 786, 1406 + xy: 982, 1340 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 843, 392 + xy: 793, 688 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 1471, 1037 + xy: 1537, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 893, 446 + xy: 939, 682 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 1109, 501 + xy: 1559, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1377, 397 + xy: 1879, 437 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 955, 1479 + xy: 2018, 1705 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 843, 192 + xy: 793, 438 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 893, 404 + xy: 893, 640 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 1211, 501 + xy: 1457, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1403, 423 + xy: 877, 8 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 982, 1340 + xy: 884, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 785, 154 + xy: 793, 388 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 893, 362 + xy: 893, 598 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 1003, 467 + xy: 1453, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1377, 371 + xy: 2018, 1767 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 985, 814 + xy: 786, 1388 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 835, 142 + xy: 793, 338 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 893, 320 + xy: 935, 640 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 969, 365 + xy: 1521, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1403, 397 + xy: 2018, 1741 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 1377, 335 + xy: 973, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 579, 92 + xy: 793, 288 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4290,7 +4297,7 @@ meltdown index: -1 repair-point rotate: false - xy: 1139, 331 + xy: 1403, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4304,21 +4311,21 @@ ripple index: -1 salvo rotate: false - xy: 1471, 905 + xy: 1537, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 1735, 909 + xy: 1801, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch rotate: false - xy: 1071, 229 + xy: 1607, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4332,112 +4339,112 @@ spectre index: -1 splash-0 rotate: false - xy: 1139, 263 + xy: 1691, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 1173, 297 + xy: 1657, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 1207, 297 + xy: 1861, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 1241, 331 + xy: 1827, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 1207, 331 + xy: 1725, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 1241, 365 + xy: 1691, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 1275, 399 + xy: 1759, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 1309, 433 + xy: 1725, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 1343, 467 + xy: 1793, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 1105, 195 + xy: 1759, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 1139, 229 + xy: 1827, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 1173, 263 + xy: 1793, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1009, 807 + xy: 1075, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1521, 723 + xy: 811, 858 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-draug-full rotate: false - xy: 1571, 723 + xy: 861, 858 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-phantom-full rotate: false - xy: 743, 730 + xy: 685, 163 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -4451,182 +4458,182 @@ unit-reaper-full index: -1 unit-spirit-full rotate: false - xy: 1621, 723 + xy: 808, 808 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-titan-full rotate: false - xy: 1801, 777 + xy: 1867, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-vanguard-full rotate: false - xy: 1671, 727 + xy: 858, 808 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-wraith-full rotate: false - xy: 1721, 727 + xy: 847, 758 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wave rotate: false - xy: 1933, 973 + xy: 1933, 907 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1457, 587 + xy: 995, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1525, 587 + xy: 1029, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1593, 587 + xy: 1063, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 1457, 553 + xy: 1097, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1525, 553 + xy: 1131, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1593, 553 + xy: 1165, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 981, 535 + xy: 1199, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1049, 535 + xy: 1233, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1117, 535 + xy: 1267, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1185, 535 + xy: 1301, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1253, 535 + xy: 1335, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1321, 535 + xy: 1389, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 1423, 527 + xy: 1389, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1491, 519 + xy: 1385, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1559, 519 + xy: 1419, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1627, 519 + xy: 1385, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1075, 501 + xy: 1525, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1177, 501 + xy: 1627, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 969, 433 + xy: 1453, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1037, 467 + xy: 1521, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 219, 841 + xy: 808, 901 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -4640,7 +4647,7 @@ circle index: -1 shape-3 rotate: false - xy: 1933, 776 + xy: 685, 823 size: 63, 63 orig: 63, 63 offset: 0, 0 @@ -4703,105 +4710,105 @@ chaos-array-leg index: -1 crawler rotate: false - xy: 743, 522 + xy: 1973, 1925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 743, 472 + xy: 743, 688 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 743, 422 + xy: 743, 638 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 743, 372 + xy: 743, 588 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 743, 322 + xy: 743, 538 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 743, 272 + xy: 743, 488 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 1998, 779 + xy: 743, 438 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dart rotate: false - xy: 743, 222 + xy: 743, 388 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dart-cell rotate: false - xy: 685, 178 + xy: 743, 338 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta rotate: false - xy: 735, 172 + xy: 743, 288 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-base rotate: false - xy: 133, 11 + xy: 743, 238 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-cell rotate: false - xy: 183, 11 + xy: 743, 188 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-leg rotate: false - xy: 233, 11 + xy: 743, 138 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug rotate: false - xy: 801, 854 + xy: 579, 140 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug-cell rotate: false - xy: 801, 804 + xy: 629, 142 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4836,56 +4843,56 @@ eradicator-leg index: -1 eruptor rotate: false - xy: 285, 26 + xy: 351, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-base rotate: false - xy: 351, 26 + xy: 417, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-cell rotate: false - xy: 417, 26 + xy: 483, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-leg rotate: false - xy: 483, 26 + xy: 549, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress rotate: false - xy: 549, 26 + xy: 1405, 1161 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 1405, 1161 + xy: 1405, 1095 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 1405, 1095 + xy: 1405, 1029 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 1405, 1029 + xy: 1405, 963 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4920,21 +4927,21 @@ glaive-cell index: -1 javelin rotate: false - xy: 843, 342 + xy: 793, 638 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-cell rotate: false - xy: 843, 292 + xy: 793, 588 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-shield rotate: false - xy: 843, 242 + xy: 793, 538 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4955,56 +4962,56 @@ lich-cell index: -1 omega rotate: false - xy: 685, 692 + xy: 685, 627 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-armor rotate: false - xy: 1603, 1037 + xy: 1603, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 omega-base rotate: false - xy: 685, 634 + xy: 685, 569 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-cell rotate: false - xy: 685, 576 + xy: 685, 511 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-leg rotate: false - xy: 685, 518 + xy: 685, 453 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 phantom rotate: false - xy: 685, 460 + xy: 685, 395 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 phantom-cell rotate: false - xy: 685, 402 + xy: 685, 337 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 685, 344 + xy: 685, 279 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5039,105 +5046,105 @@ revenant-cell index: -1 spirit rotate: false - xy: 779, 104 + xy: 1771, 677 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spirit-cell rotate: false - xy: 829, 92 + xy: 1821, 677 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau rotate: false - xy: 685, 286 + xy: 685, 221 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-base rotate: false - xy: 829, 42 + xy: 1921, 675 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau-cell rotate: false - xy: 685, 228 + xy: 750, 846 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-leg rotate: false - xy: 1471, 723 + xy: 1971, 679 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titan rotate: false - xy: 1273, 807 + xy: 1339, 807 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-base rotate: false - xy: 1339, 807 + xy: 1405, 765 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-cell rotate: false - xy: 1405, 765 + xy: 1471, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-leg rotate: false - xy: 1471, 773 + xy: 1537, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident rotate: false - xy: 743, 846 + xy: 135, 3 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 trident-cell rotate: false - xy: 743, 788 + xy: 193, 3 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1771, 727 + xy: 847, 708 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 1871, 727 + xy: 843, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wraith rotate: false - xy: 1921, 726 + xy: 843, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5158,28 +5165,28 @@ blaster-equip index: -1 bomber-equip rotate: false - xy: 1973, 1925 + xy: 1999, 779 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-equip rotate: false - xy: 1973, 1925 + xy: 1999, 779 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chain-blaster-equip rotate: false - xy: 743, 572 + xy: 1999, 729 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chaos-equip rotate: false - xy: 685, 750 + xy: 685, 685 size: 56, 136 orig: 56, 136 offset: 0, 0 @@ -5193,70 +5200,70 @@ eradication-equip index: -1 eruption-equip rotate: false - xy: 851, 850 + xy: 629, 84 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun-equip rotate: false - xy: 851, 800 + xy: 615, 34 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower-equip rotate: false - xy: 851, 742 + xy: 679, 55 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-blaster-equip rotate: false - xy: 801, 704 + xy: 729, 88 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lich-missiles-equip rotate: false - xy: 793, 204 + xy: 793, 488 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 reaper-gun-equip rotate: false - xy: 587, 142 + xy: 793, 238 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 revenant-missiles-equip rotate: false - xy: 615, 42 + xy: 793, 188 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 679, 92 + xy: 829, 38 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 swarmer-equip rotate: false - xy: 779, 54 + xy: 1871, 677 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-blaster-equip rotate: false - xy: 1821, 727 + xy: 843, 658 size: 48, 48 orig: 48, 48 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 8d6b82740f..0f4d643c04 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index adb28e8adf..c5425a831d 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index f75b55b5db..377170b822 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -295,7 +295,7 @@ public class Vars implements Loadable{ Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false); LogHandler log = Log.getLogger(); - Log.setLogger(((level, text) -> { + Log.setLogger((level, text) -> { log.log(level, text); try{ @@ -305,7 +305,7 @@ public class Vars implements Loadable{ e.printStackTrace(); //ignore it } - })); + }); loadedFileLogger = true; } diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 6efa5d774c..1a0680765d 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -60,13 +60,13 @@ public class Fx{ color(Pal.accent); - Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interpolation.pow2In); + Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow2In); float x = Tmp.v1.x, y = Tmp.v1.y; float size = 2.5f * e.fin(); Fill.square(x, y, 1.5f * size, 45f); - Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interpolation.pow5In); + Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow5In); x = Tmp.v1.x; y = Tmp.v1.y; @@ -76,7 +76,7 @@ public class Fx{ itemTransfer = new Effect(30f, e -> { if(!(e.data instanceof Position)) return; Position to = e.data(); - Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interpolation.pow3) + Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow3) .add(Tmp.v2.sub(e.x, e.y).nor().rotate90(1).scl(Mathf.randomSeedRange(e.id, 1f) * e.fslope() * 10f)); float x = Tmp.v1.x, y = Tmp.v1.y; float size = Math.min(0.8f + e.rotation / 5f, 2); @@ -96,7 +96,7 @@ public class Fx{ Block block = l.block; Position to = Tmp.v3.set(l.x * tilesize, l.y * tilesize).add(block.offset(), block.offset()); - Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interpolation.linear); + Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.linear); float x = Tmp.v1.x, y = Tmp.v1.y; Draw.rect(block.icon(Cicon.full), x, y); @@ -1153,6 +1153,22 @@ public class Fx{ Lines.circle(e.x, e.y, 4f + e.finpow() * 120f); }), + launchPod = new Effect(40, e -> { + color(Pal.engine); + + e.scaled(20f, f -> { + stroke(f.fout() * 2f); + Lines.circle(e.x, e.y, 4f + f.finpow() * 30f); + }); + + stroke(e.fout() * 2f); + + randLenVectors(e.id, 24, e.finpow() * 50f, (x, y) -> { + float ang = Mathf.angle(x, y); + lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f); + }); + }), + healWaveMend = new Effect(40, e -> { color(e.color); stroke(e.fout() * 2f); diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index cec289943e..2798f5a3c7 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -9,7 +9,7 @@ import arc.math.*; import arc.scene.ui.*; import arc.struct.*; import arc.util.*; -import mindustry.audio.MusicControl; +import mindustry.audio.*; import mindustry.content.*; import mindustry.core.GameState.*; import mindustry.entities.*; @@ -18,6 +18,7 @@ import mindustry.game.*; import mindustry.game.Saves.*; import mindustry.gen.*; import mindustry.input.*; +import mindustry.io.*; import mindustry.io.SaveIO.*; import mindustry.maps.Map; import mindustry.type.*; @@ -354,9 +355,9 @@ public class Control implements ApplicationListener, Loadable{ @Override public void dispose(){ //try to save when exiting - if(saves != null && saves.getCurrent() != null && saves.getCurrent().isAutosave() && !net.client()){ + if(saves != null && saves.getCurrent() != null && saves.getCurrent().isAutosave() && !net.client() && !state.isMenu()){ try{ - control.saves.getCurrent().save(); + SaveIO.save(control.saves.getCurrent().file); Log.info("Saved on exit."); }catch(Throwable e){ e.printStackTrace(); diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 3dadc5e81e..28dc98e6d4 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -7,10 +7,10 @@ import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.core.GameState.*; import mindustry.ctype.*; -import mindustry.gen.*; import mindustry.game.EventType.*; import mindustry.game.*; import mindustry.game.Teams.*; +import mindustry.gen.*; import mindustry.type.*; import mindustry.type.Weather.*; import mindustry.world.*; @@ -92,6 +92,8 @@ public class Logic implements ApplicationListener{ } } }); + + Events.on(LaunchItemEvent.class, e -> state.stats.handleItemExport(e.stack)); } /** Handles the event of content being used by either the player or some block. */ @@ -215,7 +217,7 @@ public class Logic implements ApplicationListener{ for(Tilec entity : state.teams.playerCores()){ for(Item item : content.items()){ data.addItem(item, entity.items().get(item)); - Events.fire(new LaunchItemEvent(item, entity.items().get(item))); + Events.fire(new LaunchItemEvent(new ItemStack(item, entity.items().get(item)))); } entity.tile().remove(); } @@ -245,6 +247,8 @@ public class Logic implements ApplicationListener{ } if(!state.isPaused()){ + state.stats.update(); + if(state.isCampaign()){ universe.update(); } diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 004aa179ae..f8ce3f41c0 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -60,7 +60,7 @@ public class Renderer implements ApplicationListener{ if(landTime > 0){ landTime -= Time.delta(); - landscale = Interpolation.pow5In.apply(minZoomScl, Scl.scl(4f), 1f - landTime / Fx.coreLand.lifetime); + landscale = Interp.pow5In.apply(minZoomScl, Scl.scl(4f), 1f - landTime / Fx.coreLand.lifetime); camerascale = landscale; weatherAlpha = 0f; }else{ diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index e6f181821d..2a684fcf10 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -284,7 +284,7 @@ public class UI implements ApplicationListener, Loadable{ public void showInfoFade(String info){ Table table = new Table(); table.setFillParent(true); - table.actions(Actions.fadeOut(7f, Interpolation.fade), Actions.remove()); + table.actions(Actions.fadeOut(7f, Interp.fade), Actions.remove()); table.top().add(info).style(Styles.outlineLabel).padTop(10); Core.scene.add(table); } @@ -297,7 +297,7 @@ public class UI implements ApplicationListener, Loadable{ table.update(() -> { if(state.isMenu()) table.remove(); }); - table.actions(Actions.delay(duration * 0.9f), Actions.fadeOut(duration * 0.1f, Interpolation.fade), Actions.remove()); + table.actions(Actions.delay(duration * 0.9f), Actions.fadeOut(duration * 0.1f, Interp.fade), Actions.remove()); table.top().table(Styles.black3, t -> t.margin(4).add(info).style(Styles.outlineLabel)).padTop(10); Core.scene.add(table); } diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 64dfaca18d..6c74767f61 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -62,8 +62,8 @@ public class EventType{ public static class LaunchItemEvent{ public final ItemStack stack; - public LaunchItemEvent(Item item, int amount){ - this.stack = new ItemStack(item, amount); + public LaunchItemEvent(ItemStack stack){ + this.stack = stack; } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 19fb57e631..d45d52390e 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -14,7 +14,6 @@ import mindustry.world.*; * Defines current rules on how the game should function. * Does not store game state, just configuration. */ -@Serialize public class Rules{ /** Whether the player has infinite resources. */ public boolean infiniteResources; diff --git a/core/src/mindustry/game/Stats.java b/core/src/mindustry/game/Stats.java index fdfa510b40..53db40a3c5 100644 --- a/core/src/mindustry/game/Stats.java +++ b/core/src/mindustry/game/Stats.java @@ -2,13 +2,19 @@ package mindustry.game; import arc.math.*; import arc.struct.*; -import mindustry.annotations.Annotations.*; +import arc.util.*; import mindustry.type.*; +import java.util.*; + import static mindustry.Vars.content; -@Serialize public class Stats{ + /** export window size in seconds */ + private static final int exportWindow = 60; + /** refresh period of export in ticks */ + private static final float refreshPeriod = 60; + /** Items delivered to global resoure counter. Zones only. */ public ObjectIntMap itemsDelivered = new ObjectIntMap<>(); /** Enemy (red team) units destroyed. */ @@ -24,8 +30,35 @@ public class Stats{ /** Friendly buildings destroyed. */ public int buildingsDestroyed; - /** Item production means. */ - private transient WindowedMean[] itemProduction = new WindowedMean[content.items().size]; + /** Item production means. Holds means per period. */ + private transient WindowedMean[] itemExport = new WindowedMean[content.items().size]; + /** Counters of items recieved this period. */ + private transient float[] itemCounters = new float[content.items().size]; + /** Counter refresh state. */ + private transient Interval time = new Interval(); + + public Stats(){ + for(int i = 0; i < itemExport.length; i++){ + itemExport[i] = new WindowedMean(exportWindow); + } + } + + /** Updates export statistics. */ + public void handleItemExport(ItemStack stack){ + itemCounters[stack.item.id] += stack.amount; + } + + public void update(){ + + //refresh throughput + if(time.get(refreshPeriod)){ + for(int i = 0; i < itemCounters.length; i++){ + itemExport[i].add(itemCounters[i]); + } + + Arrays.fill(itemCounters, 0); + } + } public RankResult calculateRank(Sector zone, boolean launched){ float score = 0; diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 47f33a3ee3..055acc8ceb 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -90,7 +90,11 @@ public class Drawf{ } public static void shadow(float x, float y, float rad){ - Draw.color(0, 0, 0, 0.4f); + shadow(x, y, rad, 1f); + } + + public static void shadow(float x, float y, float rad, float alpha){ + Draw.color(0, 0, 0, 0.4f * alpha); Draw.rect("circle-shadow", x, y, rad, rad); Draw.color(); } diff --git a/core/src/mindustry/graphics/LoadRenderer.java b/core/src/mindustry/graphics/LoadRenderer.java index 316897af24..8dc51f2715 100644 --- a/core/src/mindustry/graphics/LoadRenderer.java +++ b/core/src/mindustry/graphics/LoadRenderer.java @@ -71,7 +71,7 @@ public class LoadRenderer implements Disposable{ } float timespace = Time.timeSinceMillis(lastFrameTime) / 1000f; - renderTimes.addValue(timespace); + renderTimes.add(timespace); lastFrameTime = Time.millis(); } @@ -278,8 +278,8 @@ public class LoadRenderer implements Disposable{ for(int i = 0; i < bars; i++){ int index = i % renderTimes.getWindowSize(); - float val = renderTimes.getValue(index); - float scale = Mathf.clamp(!renderTimes.hasEnoughData() ? Mathf.randomSeed(i) : (val / renderTimes.getMean() - 0.5f)); + float val = renderTimes.get(index); + float scale = Mathf.clamp(!renderTimes.hasEnoughData() ? Mathf.randomSeed(i) : (val / renderTimes.mean() - 0.5f)); Color dst = scale > 0.8f ? colorRed : color; Draw.color(dst); diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 373fe2dad3..2093af1fb2 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -383,7 +383,7 @@ public class MobileInput extends InputHandler implements GestureListener{ Draw.color(Pal.remove); Lines.stroke(1f); - float radius = Interpolation.swingIn.apply(crosshairScale); + float radius = Interp.swingIn.apply(crosshairScale); Lines.poly(target.getX(), target.getY(), 4, 7f * radius, Time.time() * 1.5f); Lines.spikes(target.getX(), target.getY(), 3f * radius, 6f * radius, 4, Time.time() * 1.5f); diff --git a/core/src/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/mindustry/ui/dialogs/TechTreeDialog.java index 4a181871d9..9421cfe58c 100644 --- a/core/src/mindustry/ui/dialogs/TechTreeDialog.java +++ b/core/src/mindustry/ui/dialogs/TechTreeDialog.java @@ -169,7 +169,7 @@ public class TechTreeDialog extends FloatingDialog{ void showToast(String info){ Table table = new Table(); - table.actions(Actions.fadeOut(0.5f, Interpolation.fade), Actions.remove()); + table.actions(Actions.fadeOut(0.5f, Interp.fade), Actions.remove()); table.top().add(info); table.setName("toast"); table.update(() -> { @@ -238,7 +238,7 @@ public class TechTreeDialog extends FloatingDialog{ addAction(new RelativeTemporalAction(){ { setDuration(0.1f); - setInterpolation(Interpolation.fade); + setInterpolation(Interp.fade); } @Override diff --git a/core/src/mindustry/ui/fragments/BlockConfigFragment.java b/core/src/mindustry/ui/fragments/BlockConfigFragment.java index 2a1fcf3f30..4ffa087897 100644 --- a/core/src/mindustry/ui/fragments/BlockConfigFragment.java +++ b/core/src/mindustry/ui/fragments/BlockConfigFragment.java @@ -7,7 +7,6 @@ import arc.scene.actions.*; import arc.scene.ui.layout.*; import arc.util.*; import mindustry.content.*; -import mindustry.core.GameState.*; import mindustry.gen.*; import static mindustry.Vars.*; @@ -52,7 +51,7 @@ public class BlockConfigFragment extends Fragment{ table.pack(); table.setTransform(true); table.actions(Actions.scaleTo(0f, 1f), Actions.visible(true), - Actions.scaleTo(1f, 1f, 0.07f, Interpolation.pow3Out)); + Actions.scaleTo(1f, 1f, 0.07f, Interp.pow3Out)); table.update(() -> { if(configTile != null && configTile.shouldHideConfigure(player)){ @@ -76,6 +75,6 @@ public class BlockConfigFragment extends Fragment{ public void hideConfig(){ configTile = null; - table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interpolation.pow3Out), Actions.visible(false)); + table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interp.pow3Out), Actions.visible(false)); } } diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 550ee6f972..c1b3c59d5e 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -85,7 +85,7 @@ public class BlockInventoryFragment extends Fragment{ public void hide(){ if(table == null) return; - table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interpolation.pow3Out), Actions.run(() -> { + table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interp.pow3Out), Actions.run(() -> { table.clearChildren(); table.clearListeners(); table.update(null); @@ -213,7 +213,7 @@ public class BlockInventoryFragment extends Fragment{ if(actions){ table.setScale(0f, 1f); - table.actions(Actions.scaleTo(1f, 1f, 0.07f, Interpolation.pow3Out)); + table.actions(Actions.scaleTo(1f, 1f, 0.07f, Interp.pow3Out)); }else{ table.setScale(1f, 1f); } diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index a85b757897..69c6209ff5 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -348,9 +348,9 @@ public class HudFragment extends Fragment{ Table container = Core.scene.table(); container.top().add(table); container.setTranslation(0, table.getPrefHeight()); - container.actions(Actions.translateBy(0, -table.getPrefHeight(), 1f, Interpolation.fade), Actions.delay(2.5f), + container.actions(Actions.translateBy(0, -table.getPrefHeight(), 1f, Interp.fade), Actions.delay(2.5f), //nesting actions() calls is necessary so the right prefHeight() is used - Actions.run(() -> container.actions(Actions.translateBy(0, table.getPrefHeight(), 1f, Interpolation.fade), Actions.remove()))); + Actions.run(() -> container.actions(Actions.translateBy(0, table.getPrefHeight(), 1f, Interp.fade), Actions.remove()))); }); } @@ -396,9 +396,9 @@ public class HudFragment extends Fragment{ Table container = Core.scene.table(); container.top().add(table); container.setTranslation(0, table.getPrefHeight()); - container.actions(Actions.translateBy(0, -table.getPrefHeight(), 1f, Interpolation.fade), Actions.delay(2.5f), + container.actions(Actions.translateBy(0, -table.getPrefHeight(), 1f, Interp.fade), Actions.delay(2.5f), //nesting actions() calls is necessary so the right prefHeight() is used - Actions.run(() -> container.actions(Actions.translateBy(0, table.getPrefHeight(), 1f, Interpolation.fade), Actions.run(() -> { + Actions.run(() -> container.actions(Actions.translateBy(0, table.getPrefHeight(), 1f, Interp.fade), Actions.run(() -> { lastUnlockTable = null; lastUnlockLayout = null; }), Actions.remove()))); diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index 199af74863..721fc85c01 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -202,7 +202,7 @@ public class MenuFragment extends Fragment{ private void fadeInMenu(){ submenu.clearActions(); - submenu.actions(Actions.alpha(1f, 0.15f, Interpolation.fade)); + submenu.actions(Actions.alpha(1f, 0.15f, Interp.fade)); } private void fadeOutMenu(){ @@ -212,7 +212,7 @@ public class MenuFragment extends Fragment{ } submenu.clearActions(); - submenu.actions(Actions.alpha(1f), Actions.alpha(0f, 0.2f, Interpolation.fade), Actions.run(() -> submenu.clearChildren())); + submenu.actions(Actions.alpha(1f), Actions.alpha(0f, 0.2f, Interp.fade), Actions.run(() -> submenu.clearChildren())); } private void buttons(Table t, Buttoni... buttons){ diff --git a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index 7241f0fad7..3a0d8a2559 100644 --- a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -21,7 +21,7 @@ public class PayloadConveyor extends Block{ public float moveTime = 70f; public @Load("@-top") TextureRegion topRegion; public @Load("@-edge") TextureRegion edgeRegion; - public Interpolation interp = Interpolation.pow5; + public Interp interp = Interp.pow5; public PayloadConveyor(String name){ super(name); @@ -140,7 +140,7 @@ public class PayloadConveyor extends Block{ for(int i = 0; i < 4; i++){ if(blends(i) && i != rotation()){ - Draw.alpha(1f - Interpolation.pow5In.apply(fract())); + Draw.alpha(1f - Interp.pow5In.apply(fract())); //prev from back Tmp.v1.set(- s/2f + clipped.getWidth()/2f*Draw.scl, - s/2f + clipped.getHeight()/2f*Draw.scl).rotate(i * 90 + 180); Draw.rect(clipped, x + Tmp.v1.x, y + Tmp.v1.y, i * 90 + 180); diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index 258b30a012..cff68a7dad 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -117,7 +117,7 @@ public class StackConveyor extends Block implements Autotiler{ Tile from = world.tile(link); Tmp.v1.set(from); Tmp.v2.set(tile); - Tmp.v1.interpolate(Tmp.v2, 1f - cooldown, Interpolation.linear); + Tmp.v1.interpolate(Tmp.v2, 1f - cooldown, Interp.linear); //rotation float a = (from.rotation()%4) * 90; @@ -126,7 +126,7 @@ public class StackConveyor extends Block implements Autotiler{ if((from.rotation()%4) == 0 && (tile.rotation()%4) == 3) a = 4 * 90; //stack - Draw.rect(stackRegion, Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(cooldown * 2, 0f, 1f)))); + Draw.rect(stackRegion, Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interp.smooth.apply(1f - Mathf.clamp(cooldown * 2, 0f, 1f)))); //item float size = itemSize * Mathf.lerp(Math.min((float)items.total() / itemCapacity, 1), 1f, 0.4f); diff --git a/core/src/mindustry/world/blocks/power/PowerGraph.java b/core/src/mindustry/world/blocks/power/PowerGraph.java index 5f12268e7b..fa7fbe585e 100644 --- a/core/src/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/mindustry/world/blocks/power/PowerGraph.java @@ -34,7 +34,7 @@ public class PowerGraph{ } public float getPowerBalance(){ - return powerBalance.getMean(); + return powerBalance.mean(); } public float getLastPowerNeeded(){ @@ -198,7 +198,7 @@ public class PowerGraph{ lastPowerNeeded = powerNeeded; lastPowerProduced = powerProduced; - powerBalance.addValue((lastPowerProduced - lastPowerNeeded) / Time.delta()); + powerBalance.add((lastPowerProduced - lastPowerNeeded) / Time.delta()); if(!(consumers.size == 0 && producers.size == 0 && batteries.size == 0)){ diff --git a/core/src/mindustry/world/blocks/storage/LaunchPad.java b/core/src/mindustry/world/blocks/storage/LaunchPad.java index 2f8b17d42e..437c08093e 100644 --- a/core/src/mindustry/world/blocks/storage/LaunchPad.java +++ b/core/src/mindustry/world/blocks/storage/LaunchPad.java @@ -1,12 +1,18 @@ package mindustry.world.blocks.storage; +import arc.*; import arc.graphics.g2d.*; +import arc.math.*; import arc.struct.*; import arc.util.*; +import mindustry.*; import mindustry.annotations.Annotations.*; +import mindustry.content.*; +import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; +import mindustry.ui.*; import mindustry.world.*; import mindustry.world.meta.*; @@ -29,33 +35,19 @@ public class LaunchPad extends Block{ stats.add(BlockStat.launchTime, launchTime / 60f, StatUnit.seconds); } + @Override + public void setBars(){ + super.setBars(); + + bars.add("items", entity -> new Bar(() -> Core.bundle.format("bar.items", entity.items().total()), () -> Pal.items, () -> (float)entity.items().total() / itemCapacity)); + } + public class LaunchPadEntity extends TileEntity{ @Override public void draw(){ super.draw(); - //TODO - /* - //TODO broken - float progress = Mathf.clamp(Mathf.clamp((items.total() / (float)itemCapacity)) * ((timer().getTime(timerLaunch) / (launchTime / timeScale())))); - float scale = size / 3f; - - Lines.stroke(2f); - Draw.color(Pal.accentBack); - Lines.poly(x, y, 4, scale * 10f * (1f - progress), 45 + 360f * progress); - - Draw.color(Pal.accent); - - if(cons.valid()){ - for(int i = 0; i < 3; i++){ - float f = (Time.time() / 200f + i * 0.5f) % 1f; - - Lines.stroke(((2f * (2f - Math.abs(0.5f - f) * 2f)) - 2f + 0.2f)); - Lines.poly(x, y, 4, (1f - f) * 10f * scale); - } - } - - Draw.reset();*/ + Draw.rect("launchpod", x, y); } @Override @@ -68,45 +60,58 @@ public class LaunchPad extends Block{ //launch when full if(items.total() >= itemCapacity){ - + LaunchPayloadc entity = LaunchPayloadEntity.create(); + items.each((item, amount) -> entity.stacks().add(new ItemStack(item, amount))); + entity.set(this); + entity.lifetime(120f); + entity.team(team); + entity.add(); + Fx.launchPod.at(this); + items.clear(); } - /* - - if(state.isCampaign() && consValid() && items.total() >= itemCapacity && timer(timerLaunch, launchTime / timeScale())){ - for(Item item : Vars.content.items()){ - Events.fire(Trigger.itemLaunch); - Fx.padlaunch.at(tile); - int used = Math.min(items.get(item), itemCapacity); - data.addItem(item, used); - items.remove(item, used); - Events.fire(new LaunchItemEvent(item, used)); - } - }*/ } } @EntityDef(LaunchPayloadc.class) @Component - static abstract class LaunchPayloadComp implements Drawc{ - static final float speed = 1f; + static abstract class LaunchPayloadComp implements Drawc, Timedc, Teamc{ + static final float speed = 1.6f; @Import float x,y; float height; - transient TextureRegion region; - Array stacks = new Array<>(); @Override public void draw(){ + float alpha = fout(Interp.pow5Out); + float cx = x + fin(Interp.pow2In) * 90f, cy = y + height; + float rotation = fin() * 120f; + + Draw.z(Layer.effect); + + Draw.color(Pal.engine); + + float rad = 0.2f + fslope(); + + Fill.light(cx, cy, 10, 25f * rad, Pal.engine, Tmp.c1.set(Pal.engine).a(0f)); + + for(int i = 0; i < 4; i++){ + Drawf.tri(cx, cy, 6f, 40f * rad, i * 90f + rotation); + } + + Draw.color(); + Draw.z(Layer.weather - 1); - Draw.rect(region, x, y); + + Draw.alpha(alpha); + Draw.rect("launchpod", cx, cy, rotation); Tmp.v1.trns(225f, height); Draw.z(Layer.flyingUnit + 1); - Draw.color(UnitType.shadowColor); - Draw.rect(region, x + Tmp.v1.x, y + Tmp.v1.y); + Draw.color(0, 0, 0, 0.22f * alpha); + Draw.rect("launchpod", cx + Tmp.v1.x, cy + Tmp.v1.y, rotation); Draw.reset(); } @@ -115,5 +120,16 @@ public class LaunchPad extends Block{ public void update(){ height += Time.delta() * speed; } + + @Override + public void remove(){ + if(team() == Vars.state.rules.defaultTeam){ + for(ItemStack stack : stacks){ + Vars.data.addItem(stack.item, stack.amount); + Events.fire(new LaunchItemEvent(stack)); + Vars.state.stats.handleItemExport(stack); + } + } + } } } diff --git a/core/src/mindustry/world/modules/ItemModule.java b/core/src/mindustry/world/modules/ItemModule.java index bc9d079d1c..b71ce79d83 100644 --- a/core/src/mindustry/world/modules/ItemModule.java +++ b/core/src/mindustry/world/modules/ItemModule.java @@ -51,14 +51,14 @@ public class ItemModule extends BlockModule{ boolean updateFlow = flowTimer.get(30); for(int i = 0; i < items.length; i++){ - flow[i].addValue(cacheSums[i]); + flow[i].add(cacheSums[i]); if(cacheSums[i] > 0){ cacheBits.set(i); } cacheSums[i] = 0; if(updateFlow){ - displayFlow[i] = flow[i].hasEnoughData() ? flow[i].getMean() : -1; + displayFlow[i] = flow[i].hasEnoughData() ? flow[i].mean() : -1; } } }else{ @@ -267,7 +267,7 @@ public class ItemModule extends BlockModule{ } public interface ItemConsumer{ - void accept(Item item, float amount); + void accept(Item item, int amount); } public interface ItemCalculator{ diff --git a/core/src/mindustry/world/modules/LiquidModule.java b/core/src/mindustry/world/modules/LiquidModule.java index 8c143c482a..2c7cad8321 100644 --- a/core/src/mindustry/world/modules/LiquidModule.java +++ b/core/src/mindustry/world/modules/LiquidModule.java @@ -26,10 +26,10 @@ public class LiquidModule extends BlockModule{ smoothLiquid = Mathf.lerpDelta(smoothLiquid, currentAmount(), 0.1f); if(showFlow){ if(flow == null) flow = new WindowedMean(windowSize); - flow.addValue(lastAdded); + flow.add(lastAdded); lastAdded = 0; if(currentFlowRate < 0 || flowTimer.get(updateInterval)){ - currentFlowRate = flow.hasEnoughData() ? flow.getMean() : -1f; + currentFlowRate = flow.hasEnoughData() ? flow.mean() : -1f; } }else{ currentFlowRate = -1f; diff --git a/desktop/build.gradle b/desktop/build.gradle index 9852666a89..ecb65c9ce3 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -70,7 +70,7 @@ task run(dependsOn: classes, type: JavaExec){ task dist(type: Jar, dependsOn: classes){ from files(sourceSets.main.output.classesDirs) from files(sourceSets.main.output.resourcesDir) - from {configurations.compileClasspath.collect{ !it.exists() ? null : it.isDirectory() ? it : zipTree(it) }} + from {configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) }} from files(project.assetsDir) archiveFileName = "${appName}.jar" diff --git a/gradle.properties b/gradle.properties index 27720fa53c..932dd46b1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=3e73cf89218478a660d45b11b7ba273ad0f66fbc +archash=23565d2b458dbdccd676a9094538bc784e076cca