diff --git a/core/assets-raw/sprites/blocks/units/basic-reconstructor.png b/core/assets-raw/sprites/blocks/units/basic-reconstructor.png new file mode 100644 index 0000000000..6d37c59675 Binary files /dev/null and b/core/assets-raw/sprites/blocks/units/basic-reconstructor.png differ diff --git a/core/assets-raw/sprites/blocks/units/factory-in.png b/core/assets-raw/sprites/blocks/units/factory-in.png new file mode 100644 index 0000000000..625be61764 Binary files /dev/null and b/core/assets-raw/sprites/blocks/units/factory-in.png differ diff --git a/core/assets-raw/sprites/units/wraith.png b/core/assets-raw/sprites/units/wraith.png index 6f21bb6869..435c9d24cf 100644 Binary files a/core/assets-raw/sprites/units/wraith.png and b/core/assets-raw/sprites/units/wraith.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index d8a57a6aab..b37246bbed 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -6,665 +6,665 @@ filter: Nearest,Nearest repeat: none force-projector rotate: false - xy: 391, 302 + xy: 391, 204 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 391, 204 + xy: 489, 680 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 885, 948 + xy: 1067, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 951, 1014 + xy: 1133, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 1105, 265 + xy: 1899, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 1139, 299 + xy: 1933, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 819, 882 + xy: 1265, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 885, 882 + xy: 1331, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 1343, 511 + xy: 1963, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 833, 204 + xy: 1333, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 835, 34 + xy: 1117, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 867, 640 + xy: 1151, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 867, 606 + xy: 1185, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 901, 640 + xy: 1185, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 1513, 1759 + xy: 819, 906 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 1513, 1759 + xy: 819, 906 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 1628, 1629 + xy: 257, 848 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 616, 1241 + xy: 1547, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 779, 870 + xy: 1662, 1629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1837, 776 + xy: 1581, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 1751, 659 + xy: 616, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1205, 613 + xy: 973, 79 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 257, 848 + xy: 970, 45 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 1547, 1759 + xy: 916, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 1662, 1629 + xy: 950, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 1837, 742 + xy: 984, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 1239, 613 + xy: 1004, 45 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 1581, 1759 + xy: 1007, 79 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 1837, 708 + xy: 1018, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 1273, 613 + xy: 1038, 45 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 1837, 674 + xy: 1052, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 1307, 613 + xy: 1688, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 1341, 613 + xy: 1722, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 1375, 613 + xy: 1756, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 1409, 613 + xy: 1790, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 867, 402 + xy: 1585, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 901, 436 + xy: 1619, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 935, 470 + xy: 1585, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 867, 368 + xy: 1619, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 901, 402 + xy: 1619, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 935, 436 + xy: 1653, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 867, 334 + xy: 1653, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 901, 368 + xy: 1653, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 935, 402 + xy: 1653, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 867, 300 + xy: 1653, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 901, 334 + xy: 1551, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 935, 368 + xy: 1585, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 867, 266 + xy: 1619, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 901, 300 + xy: 1653, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 935, 334 + xy: 1517, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 867, 232 + xy: 1483, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 901, 266 + xy: 1551, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 935, 300 + xy: 1585, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 867, 198 + xy: 1619, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 1139, 163 + xy: 1711, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 869, 130 + xy: 1677, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 869, 96 + xy: 1779, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 903, 130 + xy: 1745, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 869, 62 + xy: 1711, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 903, 96 + xy: 1813, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1411, 511 + xy: 1787, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1479, 545 + xy: 1787, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1173, 239 + xy: 1821, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1207, 273 + xy: 1821, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1241, 307 + xy: 1855, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1275, 341 + xy: 1855, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1309, 375 + xy: 1889, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1343, 409 + xy: 1889, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1377, 443 + xy: 1923, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1411, 477 + xy: 1923, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1445, 511 + xy: 1957, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1513, 545 + xy: 1957, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1173, 205 + xy: 1991, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1207, 239 + xy: 1991, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1241, 273 + xy: 1072, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1275, 307 + xy: 1106, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1309, 341 + xy: 1140, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1343, 375 + xy: 1174, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1377, 409 + xy: 1208, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 1003, 605 + xy: 1685, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 1521, 1103 + xy: 1529, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 1037, 537 + xy: 1661, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1139, 435 + xy: 1899, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mass-conveyor rotate: false - xy: 587, 386 + xy: 587, 484 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-conveyor-edge rotate: false - xy: 587, 288 + xy: 587, 386 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-conveyor-top rotate: false - xy: 587, 190 + xy: 587, 288 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-driver-base rotate: false - xy: 615, 778 + xy: 587, 92 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 1105, 231 + xy: 1933, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 969, 163 + xy: 1677, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1003, 163 + xy: 1677, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1037, 163 + xy: 1711, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1071, 163 + xy: 1677, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1173, 375 + xy: 1949, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1173, 307 + xy: 1075, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 1479, 511 + xy: 1219, 167 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -699,560 +699,560 @@ blast-drill-top index: -1 drill-top rotate: false - xy: 1785, 1107 + xy: 869, 1072 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 1785, 1107 + xy: 869, 1072 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 489, 190 + xy: 489, 288 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 293, 124 + xy: 489, 190 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 391, 106 + xy: 293, 124 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 489, 92 + xy: 391, 106 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 951, 1080 + xy: 1595, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 819, 948 + xy: 935, 1014 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 885, 1014 + xy: 1001, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 685, 484 + xy: 685, 582 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 685, 386 + xy: 685, 484 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 685, 288 + xy: 685, 386 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 685, 190 + xy: 685, 288 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 1083, 905 + xy: 819, 940 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1149, 971 + xy: 885, 948 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1281, 1037 + xy: 885, 882 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1347, 839 + xy: 849, 420 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1413, 839 + xy: 849, 354 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1479, 839 + xy: 849, 288 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1545, 839 + xy: 849, 222 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 1579, 613 + xy: 1415, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1579, 579 + xy: 1175, 203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 833, 612 + xy: 1049, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 901, 538 + xy: 1585, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1071, 197 + xy: 1933, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 1003, 1301 + xy: 685, 92 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 833, 170 + xy: 1083, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 833, 136 + xy: 1083, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 833, 136 + xy: 1083, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 835, 102 + xy: 1117, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 835, 68 + xy: 1151, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 935, 640 + xy: 1517, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 867, 538 + xy: 1517, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 901, 572 + xy: 1517, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 935, 606 + xy: 1551, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 935, 606 + xy: 1551, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 935, 606 + xy: 1551, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 935, 606 + xy: 1551, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 867, 504 + xy: 1551, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 935, 572 + xy: 1551, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 867, 470 + xy: 1585, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 901, 504 + xy: 1619, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 935, 538 + xy: 1551, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 935, 538 + xy: 1551, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 867, 436 + xy: 1585, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 901, 470 + xy: 1619, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 935, 504 + xy: 1551, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1037, 299 + xy: 1797, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 1139, 401 + xy: 1899, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 969, 197 + xy: 1865, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1003, 231 + xy: 1831, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1037, 265 + xy: 1797, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1071, 299 + xy: 1763, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-bottom rotate: false - xy: 587, 680 + xy: 383, 8 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 587, 582 + xy: 587, 680 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 587, 484 + xy: 587, 582 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 1139, 333 + xy: 1831, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 1037, 197 + xy: 1899, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 1037, 197 + xy: 1899, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 1037, 197 + xy: 1899, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1139, 265 + xy: 1933, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 1105, 197 + xy: 1933, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1139, 231 + xy: 1933, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1139, 197 + xy: 1933, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 869, 28 + xy: 1745, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 903, 28 + xy: 1711, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 1783, 591 + xy: 1847, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 1783, 557 + xy: 1813, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 1783, 523 + xy: 1779, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 1173, 545 + xy: 1745, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-5 rotate: false - xy: 1207, 545 + xy: 1881, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-6 rotate: false - xy: 1173, 511 + xy: 1847, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1275, 545 + xy: 1881, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1173, 443 + xy: 1847, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1207, 477 + xy: 1813, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1241, 511 + xy: 1915, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1309, 545 + xy: 1881, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1173, 409 + xy: 1847, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 1215, 905 + xy: 1149, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 1591, 1301 + xy: 1493, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1266,91 +1266,91 @@ alpha-mech-pad index: -1 dart-ship-pad rotate: false - xy: 1389, 1103 + xy: 1397, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 delta-mech-pad rotate: false - xy: 1455, 1103 + xy: 1463, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 glaive-ship-pad rotate: false - xy: 489, 386 + xy: 489, 484 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 javelin-ship-pad rotate: false - xy: 1917, 1065 + xy: 1265, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 omega-mech-pad rotate: false - xy: 685, 92 + xy: 685, 190 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tau-mech-pad rotate: false - xy: 1809, 875 + xy: 783, 508 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident-ship-pad rotate: false - xy: 1083, 839 + xy: 849, 684 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 battery rotate: false - xy: 1443, 613 + xy: 1824, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 623, 986 + xy: 623, 888 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 623, 888 + xy: 721, 1002 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 1477, 613 + xy: 1858, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 867, 572 + xy: 1517, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 901, 606 + xy: 1517, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1378,28 +1378,28 @@ differential-generator-top index: -1 diode rotate: false - xy: 969, 571 + xy: 1685, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 1003, 571 + xy: 1687, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 1071, 571 + xy: 1687, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 969, 469 + xy: 1687, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1455,105 +1455,105 @@ impact-reactor-plasma-3 index: -1 power-node rotate: false - xy: 1241, 545 + xy: 1813, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 1149, 905 + xy: 951, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source rotate: false - xy: 1173, 477 + xy: 1779, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1207, 511 + xy: 1915, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 1281, 971 + xy: 1215, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 1207, 409 + xy: 1949, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1411, 545 + xy: 1041, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 1493, 1301 + xy: 1395, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 1743, 909 + xy: 783, 706 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1875, 999 + xy: 783, 442 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 1689, 1337 + xy: 1591, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-center rotate: false - xy: 1787, 1337 + xy: 1689, 1337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 1885, 1337 + xy: 1787, 1337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 1149, 839 + xy: 849, 618 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 1215, 839 + xy: 849, 552 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1574,18 +1574,11 @@ alloy-smelter-top index: -1 blast-mixer rotate: false - xy: 838, 1212 + xy: 1983, 1303 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-forge - rotate: false - xy: 1717, 1435 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 block-launcher rotate: false xy: 807, 1376 @@ -1595,329 +1588,329 @@ block-launcher index: -1 coal-centrifuge rotate: false - xy: 1564, 1235 + xy: 1382, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 1719, 1173 + xy: 1529, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 1785, 1173 + xy: 1595, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 1059, 1103 + xy: 1001, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 1125, 1103 + xy: 1067, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 1191, 1103 + xy: 1133, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 1257, 1103 + xy: 1199, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 1983, 1131 + xy: 1199, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 incinerator rotate: false - xy: 1003, 503 + xy: 1687, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1003, 333 + xy: 1763, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1105, 401 + xy: 1695, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln rotate: false - xy: 1983, 1065 + xy: 1331, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 819, 1080 + xy: 1397, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 819, 1080 + xy: 1397, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1003, 197 + xy: 1831, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 1037, 231 + xy: 1797, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1071, 231 + xy: 1865, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press rotate: false - xy: 685, 680 + xy: 615, 778 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 1083, 1037 + xy: 1463, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 1017, 971 + xy: 1529, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 1149, 1037 + xy: 1595, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 1017, 905 + xy: 721, 838 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 1083, 971 + xy: 787, 838 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 1207, 443 + xy: 1915, 897 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1241, 477 + xy: 1881, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 1215, 971 + xy: 1017, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 1479, 905 + xy: 1149, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1545, 971 + xy: 1215, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 1545, 905 + xy: 1281, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 1611, 1037 + xy: 1347, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1611, 905 + xy: 1413, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1677, 1041 + xy: 1479, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1743, 1041 + xy: 1545, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1677, 975 + xy: 1611, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1677, 909 + xy: 853, 816 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1743, 975 + xy: 783, 772 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 1437, 689 + xy: 1373, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 1487, 739 + xy: 1423, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 1241, 443 + xy: 1949, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 1275, 477 + xy: 1691, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 1275, 443 + xy: 1895, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 1309, 477 + xy: 1929, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrock1 rotate: false - xy: 1537, 739 + xy: 1073, 381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 1537, 689 + xy: 1123, 439 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 1079, 605 + xy: 1165, 305 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 1121, 605 + xy: 1223, 405 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 1163, 605 + xy: 1373, 563 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -1938,7 +1931,7 @@ white-tree-dead index: -1 container rotate: false - xy: 1059, 1169 + xy: 1514, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1966,7 +1959,7 @@ core-shard index: -1 launch-pad rotate: false - xy: 285, 26 + xy: 489, 92 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1980,63 +1973,63 @@ launch-pad-large index: -1 launch-pad-light rotate: false - xy: 383, 8 + xy: 285, 26 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 770, 1212 + xy: 918, 1212 size: 66, 64 orig: 66, 64 offset: 0, 0 index: -1 unloader rotate: false - xy: 1547, 545 + xy: 1253, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 1173, 171 + xy: 1253, 167 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault rotate: false - xy: 1787, 1239 + xy: 1885, 1337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 1809, 1073 + xy: 1628, 1629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 1511, 613 + xy: 1892, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 904, 1212 + xy: 727, 26 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 721, 1002 + xy: 721, 904 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -2050,14 +2043,14 @@ block-4 index: -1 hail-heat rotate: false - xy: 2007, 1023 + xy: 951, 972 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 819, 1014 + xy: 1529, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2071,42 +2064,42 @@ meltdown-heat index: -1 ripple-heat rotate: false - xy: 1199, 1301 + xy: 1101, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 1281, 905 + xy: 1347, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 1347, 971 + xy: 1413, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 1479, 1037 + xy: 1479, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 1377, 545 + xy: 1759, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1677, 843 + xy: 849, 90 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2118,135 +2111,86 @@ air-factory orig: 96, 96 offset: 0, 0 index: -1 -command-center +basic-reconstructor rotate: false - xy: 993, 1146 - size: 64, 64 - orig: 64, 64 + xy: 623, 986 + size: 96, 96 + orig: 96, 96 offset: 0, 0 index: -1 -crawler-factory +block-forge rotate: false - xy: 1951, 1197 + xy: 623, 986 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +command-center + rotate: false + xy: 1448, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory rotate: false - xy: 1951, 1197 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -draug-factory - rotate: false - xy: 1951, 1197 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -phantom-factory - rotate: false - xy: 1951, 1197 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spirit-factory - rotate: false - xy: 1951, 1197 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -wraith-factory - rotate: false - xy: 1951, 1197 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -crawler-factory-top - rotate: false - xy: 1653, 1173 + xy: 1265, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory-top rotate: false - xy: 1323, 1103 + xy: 1331, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -draug-factory-top - rotate: false - xy: 1719, 1107 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -factory-out +factory-in rotate: false xy: 391, 498 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -factory-top +factory-out rotate: false xy: 391, 400 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -fortress-factory +factory-top rotate: false - xy: 489, 680 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ghoul-factory - rotate: false - xy: 489, 484 + xy: 391, 302 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 489, 288 + xy: 489, 386 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 naval-factory rotate: false - xy: 685, 582 + xy: 685, 680 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -phantom-factory-top - rotate: false - xy: 951, 882 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 rally-point rotate: false - xy: 1347, 1037 + xy: 1083, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 1343, 545 + xy: 1949, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2265,93 +2209,72 @@ revenant-factory-top orig: 128, 128 offset: 0, 0 index: -1 -spirit-factory-top - rotate: false - xy: 1611, 971 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -titan-factory - rotate: false - xy: 1689, 1239 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -wraith-factory-top - rotate: false - xy: 1743, 843 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 copper-wall rotate: false - xy: 901, 232 + xy: 1653, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 1125, 1169 + xy: 1580, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 969, 537 + xy: 1687, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 1587, 1103 + xy: 1595, 1103 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 1653, 1107 + xy: 935, 1080 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 1037, 571 + xy: 1687, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1105, 163 + xy: 1745, 965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 1017, 1037 + xy: 1397, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 903, 62 + xy: 1779, 931 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 1215, 1037 + xy: 819, 1006 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2365,98 +2288,98 @@ scrap-wall-gigantic index: -1 scrap-wall-huge2 rotate: false - xy: 1297, 1301 + xy: 1199, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 1395, 1301 + xy: 1297, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 1413, 971 + xy: 1611, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 1545, 1037 + xy: 951, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 1413, 905 + xy: 1017, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1479, 971 + xy: 1083, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 1173, 341 + xy: 1793, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 1207, 375 + xy: 1827, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 1241, 409 + xy: 1861, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 1241, 409 + xy: 1861, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 1343, 443 + xy: 1753, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 1809, 1007 + xy: 783, 640 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 1377, 477 + xy: 1753, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1875, 933 + xy: 783, 376 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2470,35 +2393,35 @@ thruster index: -1 titanium-wall rotate: false - xy: 1411, 443 + xy: 1242, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1017, 839 + xy: 849, 750 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 783, 734 + xy: 916, 44 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 783, 680 + xy: 151, 7 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 409, 792 + xy: 1209, 217 size: 8, 16 orig: 8, 16 offset: 0, 0 @@ -2512,7 +2435,7 @@ circle-end index: -1 circle-mid rotate: false - xy: 2033, 1774 + xy: 1721, 534 size: 1, 199 orig: 1, 199 offset: 0, 0 @@ -2526,77 +2449,77 @@ circle-shadow index: -1 error rotate: false - xy: 837, 682 + xy: 1023, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser rotate: false - xy: 650, 1225 + xy: 945, 832 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 563, 18 + xy: 770, 1204 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser rotate: false - xy: 2043, 1213 + xy: 879, 890 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 637, 18 + xy: 844, 1204 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 979, 844 + xy: 2011, 1501 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 2011, 1501 + xy: 2011, 1463 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 particle rotate: false - xy: 1037, 605 + xy: 1123, 305 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 1977, 1533 + xy: 770, 1198 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 shell rotate: false - xy: 2011, 1463 + xy: 219, 844 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 219, 844 + xy: 616, 1237 size: 36, 36 orig: 36, 36 offset: 0, 0 @@ -2610,28 +2533,28 @@ transfer index: -1 transfer-arrow rotate: false - xy: 1445, 477 + xy: 1219, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 848, 1604 + xy: 1067, 106 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 arc rotate: false - xy: 1851, 1205 + xy: 1513, 1759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 1545, 613 + xy: 1926, 1237 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2645,91 +2568,91 @@ block-blast-drill-full index: -1 block-char-full rotate: false - xy: 1613, 613 + xy: 1415, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 1647, 613 + xy: 1415, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 616, 1207 + xy: 1415, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 1871, 695 + xy: 1465, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1871, 695 + xy: 1465, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 1681, 613 + xy: 1515, 755 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 795, 1146 + xy: 869, 1138 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 861, 1146 + xy: 935, 1146 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 721, 904 + xy: 1717, 1435 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 1715, 617 + xy: 1549, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1871, 661 + xy: 1583, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 1837, 640 + xy: 1617, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1871, 627 + xy: 1651, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2743,56 +2666,56 @@ block-fuse-full index: -1 block-grass-full rotate: false - xy: 1205, 579 + xy: 1265, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 1239, 579 + xy: 1265, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1273, 579 + xy: 1265, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1307, 579 + xy: 1315, 505 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1341, 579 + xy: 1107, 255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1375, 579 + xy: 1141, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1409, 579 + xy: 1175, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1443, 579 + xy: 1141, 237 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2806,7 +2729,7 @@ block-impact-reactor-full index: -1 block-lancer-full rotate: false - xy: 927, 1146 + xy: 1977, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2820,7 +2743,7 @@ block-laser-drill-full index: -1 block-liquid-router-full rotate: false - xy: 1477, 579 + xy: 1175, 237 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2834,7 +2757,7 @@ block-liquid-tank-full index: -1 block-magmarock-full rotate: false - xy: 1511, 579 + xy: 1107, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2862,7 +2785,7 @@ block-mass-driver-full index: -1 block-mechanical-drill-full rotate: false - xy: 1977, 1597 + xy: 1689, 1271 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2876,14 +2799,14 @@ block-meltdown-full index: -1 block-metal-floor-damaged-full rotate: false - xy: 1545, 579 + xy: 1141, 203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1613, 579 + xy: 1449, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2897,91 +2820,91 @@ block-oil-extractor-full index: -1 block-ore-coal-full rotate: false - xy: 1647, 579 + xy: 1449, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1681, 579 + xy: 1449, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1715, 583 + xy: 1449, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 1751, 625 + xy: 1365, 529 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 1785, 626 + xy: 1499, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 1749, 591 + xy: 1549, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1749, 557 + xy: 1583, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 970, 1212 + xy: 1755, 1271 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 1715, 549 + xy: 1617, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 1036, 1235 + xy: 1821, 1271 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1749, 523 + xy: 1651, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1905, 659 + xy: 1299, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 1939, 659 + xy: 1299, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2995,77 +2918,77 @@ block-ripple-full index: -1 block-rock-full rotate: false - xy: 783, 422 + xy: 973, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 1973, 659 + xy: 1299, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 2007, 659 + xy: 1215, 371 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 1102, 1235 + xy: 1887, 1271 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 1905, 625 + xy: 1207, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1939, 625 + xy: 1023, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1973, 625 + xy: 1057, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 1168, 1235 + xy: 986, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 2007, 625 + xy: 1015, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 833, 646 + xy: 1015, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 833, 646 + xy: 1015, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3086,56 +3009,56 @@ scrap-wall-huge1 index: -1 block-scrap-wall-large-full rotate: false - xy: 1234, 1235 + xy: 1052, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 833, 578 + xy: 1049, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 833, 544 + xy: 1483, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 833, 510 + xy: 1483, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 833, 476 + xy: 1483, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 833, 442 + xy: 1483, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 783, 372 + xy: 1023, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-full rotate: false - xy: 833, 408 + xy: 1449, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3149,189 +3072,189 @@ block-spectre-full index: -1 block-spore-cluster-full rotate: false - xy: 1017, 1104 + xy: 1646, 1259 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 833, 374 + xy: 1483, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 1300, 1235 + xy: 1118, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sporerocks-full rotate: false - xy: 833, 340 + xy: 1333, 471 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 833, 306 + xy: 1333, 437 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 1366, 1235 + xy: 1184, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 833, 272 + xy: 1333, 403 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 833, 238 + xy: 1299, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 833, 238 + xy: 1299, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 1432, 1235 + xy: 1250, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 1498, 1235 + xy: 1316, 1235 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 935, 266 + xy: 1517, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 867, 164 + xy: 1551, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 901, 198 + xy: 1585, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 935, 232 + xy: 1619, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 901, 164 + xy: 1653, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 935, 198 + xy: 1399, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 935, 164 + xy: 1241, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 969, 605 + xy: 1333, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 1191, 1169 + xy: 1001, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1257, 1169 + xy: 1067, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1323, 1169 + xy: 1133, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1389, 1169 + xy: 1199, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1455, 1169 + xy: 1265, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1521, 1169 + xy: 1331, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1587, 1169 + xy: 1397, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1885, 1205 + xy: 1463, 1169 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3513,7 +3436,7 @@ cyclone index: -1 duo rotate: false - xy: 969, 503 + xy: 1687, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3527,56 +3450,56 @@ fuse index: -1 hail rotate: false - xy: 1003, 537 + xy: 1687, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 2007, 981 + xy: 1373, 647 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 969, 435 + xy: 1695, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 1173, 579 + xy: 1015, 119 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 267, 43 + xy: 1117, 203 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 937, 674 + xy: 973, 489 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 2007, 939 + xy: 1423, 697 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 1037, 503 + xy: 1729, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3590,133 +3513,133 @@ item-coal-small index: -1 item-coal-tiny rotate: false - xy: 1819, 642 + xy: 848, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 987, 789 + xy: 1023, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 2007, 897 + xy: 1473, 747 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 1139, 571 + xy: 1661, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1983, 1343 + xy: 853, 914 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 969, 656 + xy: 786, 1424 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1037, 789 + xy: 1073, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 1037, 647 + xy: 1523, 797 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 1003, 435 + xy: 1729, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 2017, 1237 + xy: 919, 856 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 267, 25 + xy: 937, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 987, 739 + xy: 1123, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 1079, 647 + xy: 973, 197 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 1071, 503 + xy: 1661, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 2007, 871 + xy: 255, 35 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 848, 1609 + xy: 391, 792 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1087, 789 + xy: 1173, 681 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 1121, 647 + xy: 1023, 247 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 969, 367 + xy: 1763, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3730,28 +3653,28 @@ item-metaglass-small index: -1 item-metaglass-tiny rotate: false - xy: 786, 1424 + xy: 481, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 987, 689 + xy: 1223, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 1163, 647 + xy: 1073, 289 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 1037, 435 + xy: 1695, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3765,483 +3688,483 @@ item-phase-fabric-small index: -1 item-phase-fabric-tiny rotate: false - xy: 937, 1479 + xy: 982, 1358 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1037, 739 + xy: 1273, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1205, 647 + xy: 1123, 347 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 1105, 503 + xy: 1831, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1905, 703 + xy: 1953, 1311 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 391, 792 + xy: 783, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 1137, 789 + xy: 973, 439 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1247, 647 + xy: 1173, 389 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 969, 333 + xy: 1763, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 937, 138 + xy: 1691, 803 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 481, 12 + xy: 795, 1112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 1037, 689 + xy: 1023, 489 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 1289, 647 + xy: 1223, 447 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 1037, 401 + xy: 1695, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1207, 213 + xy: 1719, 735 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 982, 1358 + xy: 1696, 1645 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 1087, 739 + xy: 1073, 531 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1331, 647 + xy: 1273, 497 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 1105, 469 + xy: 1865, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 1241, 247 + xy: 1041, 85 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 1036, 1217 + xy: 1696, 1627 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 1187, 789 + xy: 1123, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1373, 647 + xy: 1323, 547 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 969, 299 + xy: 1797, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 1275, 281 + xy: 1072, 51 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 795, 1128 + xy: 1646, 1241 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 1087, 689 + xy: 1173, 631 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 1415, 647 + xy: 1373, 605 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 1071, 401 + xy: 1695, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1309, 315 + xy: 1219, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1787, 825 + xy: 1797, 743 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 1137, 739 + xy: 1223, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 1457, 647 + xy: 1565, 797 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 1139, 469 + xy: 1865, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1343, 349 + xy: 1245, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 779, 852 + xy: 866, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1237, 789 + xy: 1273, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1499, 647 + xy: 973, 155 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 1003, 299 + xy: 1797, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1377, 383 + xy: 1689, 1445 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 1696, 1645 + xy: 786, 1406 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 1137, 689 + xy: 1323, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1541, 647 + xy: 1065, 247 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 1071, 367 + xy: 1729, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1411, 417 + xy: 919, 830 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 1696, 1627 + xy: 955, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 1187, 739 + xy: 973, 389 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 885, 1080 + xy: 1463, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 1583, 647 + xy: 1165, 347 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 1003, 265 + xy: 1831, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1445, 451 + xy: 255, 9 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 1689, 1453 + xy: 499, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1287, 739 + xy: 1273, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1625, 647 + xy: 1607, 797 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 1105, 367 + xy: 1729, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1479, 485 + xy: 1953, 1285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 1689, 1435 + xy: 982, 1340 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 1387, 789 + xy: 1323, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1667, 647 + xy: 973, 113 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 1139, 367 + xy: 1865, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1513, 519 + xy: 1745, 735 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 2009, 1351 + xy: 801, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 1287, 689 + xy: 1373, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1709, 651 + xy: 1649, 797 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 1105, 299 + xy: 1865, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1581, 553 + xy: 1771, 735 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 2017, 1219 + xy: 1664, 1241 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 1337, 739 + xy: 973, 339 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 587, 92 + xy: 587, 190 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -4255,35 +4178,35 @@ meltdown index: -1 repair-point rotate: false - xy: 1275, 511 + xy: 1915, 863 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 1101, 1301 + xy: 1003, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 1413, 1037 + xy: 1281, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 1347, 905 + xy: 1545, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch rotate: false - xy: 1309, 511 + xy: 1725, 829 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4297,126 +4220,126 @@ spectre index: -1 splash-0 rotate: false - xy: 1207, 341 + xy: 1109, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 1241, 375 + xy: 1143, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 1275, 375 + xy: 1719, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 1309, 409 + xy: 1719, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 1275, 409 + xy: 1177, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 1309, 443 + xy: 1211, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 1343, 477 + xy: 1209, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 1377, 511 + xy: 1209, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 1445, 545 + xy: 1209, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 1173, 273 + xy: 1243, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 1207, 307 + xy: 1243, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 1241, 341 + xy: 1243, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1809, 941 + xy: 783, 574 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-alpha-full rotate: false - xy: 1637, 689 + xy: 1373, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-full rotate: false - xy: 1687, 793 + xy: 1423, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1737, 793 + xy: 1473, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-draug-full rotate: false - xy: 1687, 743 + xy: 973, 239 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eruptor-full rotate: false - xy: 1885, 1271 + xy: 481, 26 size: 88, 64 orig: 88, 64 offset: 0, 0 @@ -4430,7 +4353,7 @@ unit-fortress-full index: -1 unit-ghoul-full rotate: false - xy: 711, 18 + xy: 795, 1130 size: 72, 72 orig: 72, 72 offset: 0, 0 @@ -4444,7 +4367,7 @@ unit-oculon-full index: -1 unit-phantom-full rotate: false - xy: 771, 788 + xy: 713, 780 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -4458,175 +4381,175 @@ unit-reaper-full index: -1 unit-spirit-full rotate: false - xy: 1687, 693 + xy: 1023, 289 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-titan-full rotate: false - xy: 1281, 839 + xy: 849, 486 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-vanguard-full rotate: false - xy: 1737, 743 + xy: 1073, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-wraith-full rotate: false - xy: 1737, 693 + xy: 1123, 389 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wave rotate: false - xy: 1611, 839 + xy: 849, 156 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1105, 571 + xy: 1661, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1003, 469 + xy: 1661, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1071, 537 + xy: 1695, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 969, 401 + xy: 1763, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1037, 469 + xy: 1695, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1105, 537 + xy: 1797, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 1003, 401 + xy: 1729, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1071, 469 + xy: 1661, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1139, 537 + xy: 1797, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1003, 367 + xy: 1729, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1071, 435 + xy: 1661, 999 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1139, 503 + xy: 1831, 1169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 1037, 367 + xy: 1729, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1105, 435 + xy: 1899, 1203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 969, 265 + xy: 1831, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1037, 333 + xy: 1763, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 969, 231 + xy: 1865, 1135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1071, 333 + xy: 1763, 1033 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1105, 333 + xy: 1899, 1101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1071, 265 + xy: 1899, 1067 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4647,21 +4570,21 @@ circle index: -1 shape-3 rotate: false - xy: 1809, 810 + xy: 793, 25 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 783, 630 + xy: 885, 1022 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 783, 580 + xy: 819, 1080 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4696,91 +4619,91 @@ chaos-array-leg index: -1 crawler rotate: false - xy: 783, 322 + xy: 973, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 783, 272 + xy: 1023, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 783, 222 + xy: 1073, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 783, 172 + xy: 973, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 783, 122 + xy: 1023, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 785, 72 + xy: 1073, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 785, 22 + xy: 1123, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta rotate: false - xy: 829, 832 + xy: 973, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-base rotate: false - xy: 879, 832 + xy: 1023, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-cell rotate: false - xy: 929, 832 + xy: 1073, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-leg rotate: false - xy: 837, 782 + xy: 1123, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug rotate: false - xy: 837, 732 + xy: 1173, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug-cell rotate: false - xy: 887, 782 + xy: 973, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4822,7 +4745,7 @@ eruptor index: -1 eruptor-base rotate: false - xy: 1851, 1139 + xy: 1001, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4836,7 +4759,7 @@ eruptor-cell index: -1 eruptor-leg rotate: false - xy: 1851, 1073 + xy: 1067, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4850,7 +4773,7 @@ fortress index: -1 fortress-base rotate: false - xy: 1917, 1131 + xy: 1133, 1037 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4864,7 +4787,7 @@ fortress-cell index: -1 fortress-leg rotate: false - xy: 481, 30 + xy: 571, 30 size: 80, 60 orig: 80, 60 offset: 0, 0 @@ -4878,7 +4801,7 @@ ghoul index: -1 ghoul-cell rotate: false - xy: 1975, 1263 + xy: 653, 18 size: 72, 72 orig: 72, 72 offset: 0, 0 @@ -4892,28 +4815,28 @@ glaive index: -1 glaive-cell rotate: false - xy: 1630, 1243 + xy: 915, 620 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 javelin rotate: false - xy: 1287, 789 + xy: 1023, 439 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-cell rotate: false - xy: 1187, 689 + xy: 1073, 481 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-shield rotate: false - xy: 1237, 739 + xy: 1123, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4941,77 +4864,77 @@ oculon index: -1 oculon-base rotate: false - xy: 1387, 739 + xy: 1123, 489 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 oculon-cell rotate: false - xy: 1487, 789 + xy: 1173, 531 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 oculon-leg rotate: false - xy: 1387, 689 + xy: 1223, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 omega rotate: false - xy: 1932, 809 + xy: 915, 562 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-armor rotate: false - xy: 951, 948 + xy: 1199, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 omega-base rotate: false - xy: 1932, 751 + xy: 915, 504 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-cell rotate: false - xy: 151, 3 + xy: 915, 446 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-leg rotate: false - xy: 209, 3 + xy: 915, 388 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 phantom rotate: false - xy: 1932, 693 + xy: 915, 330 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 phantom-cell rotate: false - xy: 1990, 809 + xy: 915, 272 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 1990, 751 + xy: 915, 214 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5046,70 +4969,70 @@ revenant-cell index: -1 spirit rotate: false - xy: 1587, 739 + xy: 1173, 481 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spirit-cell rotate: false - xy: 1587, 689 + xy: 1223, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau rotate: false - xy: 1990, 693 + xy: 915, 156 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-base rotate: false - xy: 1637, 789 + xy: 1273, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau-cell rotate: false - xy: 721, 846 + xy: 915, 98 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-leg rotate: false - xy: 1637, 739 + xy: 1323, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titan rotate: false - xy: 1941, 999 + xy: 783, 310 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-base rotate: false - xy: 1941, 933 + xy: 783, 244 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-cell rotate: false - xy: 1875, 867 + xy: 783, 178 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-leg rotate: false - xy: 1941, 867 + xy: 783, 112 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -5123,49 +5046,49 @@ trident index: -1 trident-cell rotate: false - xy: 713, 788 + xy: 858, 32 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1787, 760 + xy: 1173, 431 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 1787, 710 + xy: 1223, 489 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wraith rotate: false - xy: 987, 639 + xy: 1323, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 783, 522 + xy: 205, 3 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 783, 472 + xy: 973, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chaos rotate: false - xy: 1874, 729 + xy: 915, 678 size: 56, 136 orig: 56, 136 offset: 0, 0 @@ -5179,91 +5102,91 @@ eradication index: -1 eruption rotate: false - xy: 887, 724 + xy: 1073, 631 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 937, 782 + xy: 1123, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 937, 724 + xy: 1173, 731 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 887, 674 + xy: 1223, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-weapon rotate: false - xy: 1337, 789 + xy: 1173, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lich-missiles rotate: false - xy: 1237, 689 + xy: 1223, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 1437, 789 + xy: 1023, 389 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 1337, 689 + xy: 1073, 431 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 reaper-weapon rotate: false - xy: 1437, 739 + xy: 1273, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 revenant-missiles rotate: false - xy: 1537, 789 + xy: 1323, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 1587, 789 + xy: 973, 289 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 1487, 689 + xy: 1023, 339 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 weapon rotate: false - xy: 1787, 660 + xy: 1273, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 6e12245c7c..88cf200f90 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 5445cde441..49f00c1d4b 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index efb3cd6ffb..0ba659e460 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -437,7 +437,7 @@ public class BlockIndexer{ } } - private class TileIndex{ + private static class TileIndex{ public final EnumSet flags; public final Team team; diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index f290e18c9d..5f3e2ce40b 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -330,7 +330,7 @@ public class Pathfinder implements Runnable{ } /** Data for a specific flow field to some set of destinations. */ - class PathData{ + static class PathData{ /** Team this path is for. */ final Team team; /** Flag that is being targeted. */ diff --git a/core/src/mindustry/audio/LoopControl.java b/core/src/mindustry/audio/LoopControl.java index 021549e463..6ed4035ef1 100644 --- a/core/src/mindustry/audio/LoopControl.java +++ b/core/src/mindustry/audio/LoopControl.java @@ -50,7 +50,7 @@ public class LoopControl{ }); } - private class SoundData{ + private static class SoundData{ float volume; float total; Vec2 sum = new Vec2(); diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index df399d2b0e..e9e6a58694 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -25,7 +25,6 @@ import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; import mindustry.world.blocks.sandbox.*; import mindustry.world.blocks.storage.*; -import mindustry.world.blocks.storage.MessageBlock; import mindustry.world.blocks.units.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; @@ -77,14 +76,12 @@ public class Blocks implements ContentList{ duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown, //units - groundFactory, airFactory, navalFactory, repairPoint, + groundFactory, airFactory, navalFactory, basicReconstructor, repairPoint, //misc experimental blockForge, blockLauncher; - ; - @Override public void load(){ //region environment @@ -592,7 +589,7 @@ public class Blocks implements ContentList{ drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name + "-top")}; drawer = entity -> { - int rotation = rotate ? entity.rotation() * 90 : 0; + float rotation = rotate ? entity.rotdeg() : 0; Draw.rect(re(bottomRegion), entity.x(), entity.y(), rotation); @@ -1702,6 +1699,15 @@ public class Blocks implements ContentList{ consumes.power(1.2f); }}; + basicReconstructor = new Reconstructor("basic-reconstructor"){{ + requirements(Category.units, ItemStack.with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); + + size = 3; + consumes.power(3f); + consumes.items(ItemStack.with(Items.silicon, 30, Items.graphite, 30)); + itemCapacity = 30; + }}; + repairPoint = new RepairPoint("repair-point"){{ requirements(Category.units, ItemStack.with(Items.lead, 15, Items.copper, 15, Items.silicon, 15)); repairSpeed = 0.5f; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 4d2e1a2614..5eb2b89fad 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -51,6 +51,9 @@ public class UnitTypes implements ContentList{ }}; titan = new UnitType("titan"){{ + dagger.upgrade = this; + tier = 2; + speed = 0.4f; mass = 3.5f; hitsize = 9f; @@ -94,6 +97,9 @@ public class UnitTypes implements ContentList{ }}; fortress = new UnitType("fortress"){{ + titan.upgrade = this; + tier = 2; + speed = 0.38f; mass = 5f; hitsize = 13f; @@ -114,6 +120,9 @@ public class UnitTypes implements ContentList{ }}; eruptor = new UnitType("eruptor"){{ + crawler.upgrade = this; + tier = 2; + speed = 0.4f; drag = 0.4f; mass = 5f; @@ -156,6 +165,9 @@ public class UnitTypes implements ContentList{ }}; ghoul = new UnitType("ghoul"){{ + wraith.upgrade = this; + tier = 2; + health = 220; speed = 2f; mass = 3f; @@ -298,6 +310,8 @@ public class UnitTypes implements ContentList{ }}; oculon = new UnitType("oculon"){{ + tier = 2; + drillTier = -1; speed = 0.6f; hitsize = 9f; diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index d14d04307d..81b1605e0d 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -8,7 +8,6 @@ import arc.util.ArcAnnotate.*; import arc.util.*; import mindustry.content.*; import mindustry.ctype.*; -import mindustry.ctype.ContentType; import mindustry.entities.bullet.*; import mindustry.mod.Mods.*; import mindustry.type.*; diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 04b396d8eb..caf059ee67 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -15,6 +15,8 @@ public abstract class UnlockableContent extends MappableContent{ public String localizedName; /** Localized description. May be null. */ public @Nullable String description; + /** Whether this content is always unlocked in the tech tree. */ + public boolean alwaysUnlocked = false; /** Icons by Cicon ID.*/ protected TextureRegion[] cicons = new TextureRegion[mindustry.ui.Cicon.all.length]; @@ -62,7 +64,7 @@ public abstract class UnlockableContent extends MappableContent{ /** Override to make content always unlocked. */ public boolean alwaysUnlocked(){ - return false; + return alwaysUnlocked; } public final boolean unlocked(){ diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index 051e32f24f..7ae025987b 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -25,7 +25,6 @@ import mindustry.graphics.*; import mindustry.io.*; import mindustry.maps.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.ui.dialogs.*; import mindustry.world.*; import mindustry.world.blocks.environment.*; @@ -548,7 +547,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ mid.table(Tex.underline, t -> { Slider slider = new Slider(0, MapEditor.brushSizes.length - 1, 1, false); - slider.moved(f -> editor.brushSize = MapEditor.brushSizes[(int)(float)f]); + slider.moved(f -> editor.brushSize = MapEditor.brushSizes[(int)f]); for(int j = 0; j < MapEditor.brushSizes.length; j++){ if(MapEditor.brushSizes[j] == editor.brushSize){ slider.setValue(j); diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index 1fc6752f55..45ce71494e 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -410,7 +410,7 @@ public class MapGenerateDialog extends FloatingDialog{ this.floor = floor.id; this.block = wall.id; this.ore = ore.id; - this.team = (byte) team.id; + this.team = team.id; this.rotation = (byte)rotation; } diff --git a/core/src/mindustry/editor/MapRenderer.java b/core/src/mindustry/editor/MapRenderer.java index 54708f4cf5..e8b1a05973 100644 --- a/core/src/mindustry/editor/MapRenderer.java +++ b/core/src/mindustry/editor/MapRenderer.java @@ -126,7 +126,7 @@ public class MapRenderer implements Disposable{ if(wall.rotate){ mesh.draw(idxWall, region, wx * tilesize + wall.offset(), wy * tilesize + wall.offset(), - region.getWidth() * Draw.scl, region.getHeight() * Draw.scl, tile.rotation() * 90 - 90); + region.getWidth() * Draw.scl, region.getHeight() * Draw.scl, tile.rotdeg() - 90); }else{ float width = region.getWidth() * Draw.scl, height = region.getHeight() * Draw.scl; diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 89a7cfad0d..65f13e0c1b 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -184,7 +184,7 @@ public class Damage{ float dst = tr.set(entity.getX() - x, entity.getY() - y).len(); entity.vel().add(tr.setLength((1f - dst / radius) * 2f / entity.mass())); - if(complete && damage >= 9999999f && entity == player){ + if(complete && damage >= 9999999f && entity.isPlayer()){ Events.fire(Trigger.exclusionDeath); } }; @@ -270,6 +270,7 @@ public class Damage{ } @Struct + static class PropCellStruct{ byte x; byte y; diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java index 5f3964d6d1..e5b62135ec 100644 --- a/core/src/mindustry/entities/comp/StatusComp.java +++ b/core/src/mindustry/entities/comp/StatusComp.java @@ -13,8 +13,6 @@ import mindustry.gen.*; import mindustry.type.*; import mindustry.world.blocks.environment.*; -import java.io.*; - import static mindustry.Vars.content; @Component diff --git a/core/src/mindustry/entities/comp/TileComp.java b/core/src/mindustry/entities/comp/TileComp.java index 2e2f4a3729..07528c029c 100644 --- a/core/src/mindustry/entities/comp/TileComp.java +++ b/core/src/mindustry/entities/comp/TileComp.java @@ -223,7 +223,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree } public float rotdeg(){ - return tile.rotation() * 90; + return tile.rotdeg(); } public int rotation(){ @@ -704,7 +704,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree } public void draw(){ - Draw.rect(block.region, x, y, block.rotate ? rotation() * 90 : 0); + Draw.rect(block.region, x, y, block.rotate ? rotdeg() : 0); } public void drawLight(){ diff --git a/core/src/mindustry/game/Gamemode.java b/core/src/mindustry/game/Gamemode.java index 5f4be28186..30f7eccf8d 100644 --- a/core/src/mindustry/game/Gamemode.java +++ b/core/src/mindustry/game/Gamemode.java @@ -20,7 +20,7 @@ public enum Gamemode{ }), attack(rules -> { rules.attackMode = true; - }, map -> map.teams.contains((int)state.rules.waveTeam.id)), + }, map -> map.teams.contains(state.rules.waveTeam.id)), pvp(rules -> { rules.pvp = true; rules.enemyCoreBuildRadius = 600f; diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 055acc8ceb..658df5c128 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -184,7 +184,28 @@ public class Drawf{ Draw.rect(Core.atlas.find("shape-3"), x, y - oy + length / 2f, width, length, width / 2f, oy, rotation - 90); } - public static void drawRespawn(Tilec tile, float heat, float progress, float time, UnitType to, @Nullable Playerc player){ + public static void construct(Tilec t, UnitType unit, float rotation, float progress, float speed, float time){ + TextureRegion region = unit.icon(Cicon.full); + + Shaders.build.region = region; + Shaders.build.progress = progress; + Shaders.build.color.set(Pal.accent); + Shaders.build.color.a = speed; + Shaders.build.time = -time / 20f; + + Draw.shader(Shaders.build); + Draw.rect(region, t.x(), t.y(), rotation); + Draw.shader(); + + Draw.color(Pal.accent); + Draw.alpha(speed); + + Lines.lineAngleCenter(t.x() + Mathf.sin(time, 20f, Vars.tilesize / 2f * t.block().size - 2f), t.y(), 90, t.block().size * Vars.tilesize - 4f); + + Draw.reset(); + } + + public static void respawn(Tilec tile, float heat, float progress, float time, UnitType to, @Nullable Playerc player){ float x = tile.x(), y = tile.y(); progress = Mathf.clamp(progress); diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java index 223d8d7d13..4dcf17add2 100644 --- a/core/src/mindustry/graphics/FloorRenderer.java +++ b/core/src/mindustry/graphics/FloorRenderer.java @@ -252,7 +252,7 @@ public class FloorRenderer implements Disposable{ } } - private class Chunk{ + private static class Chunk{ /** Maps cache layer ID to cache ID in the batch. * -1 means that this cache is unoccupied. */ int[] caches = new int[CacheLayer.all.length]; diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 3a8f1541c8..e8b5b39aba 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -960,7 +960,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } - class PlaceLine{ + static class PlaceLine{ public int x, y, rotation; public boolean last; } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index a6766d1586..ca94abe2ba 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -139,17 +139,12 @@ public class MobileInput extends InputHandler implements GestureListener{ r1.setSize(req.block.size * tilesize); r1.setCenter(other.worldx() + req.block.offset(), other.worldy() + req.block.offset()); - if(r2.overlaps(r1)){ - return req; - } }else{ r1.setSize(other.block().size * tilesize); r1.setCenter(other.worldx() + other.block().offset(), other.worldy() + other.block().offset()); - - if(r2.overlaps(r1)){ - return req; - } } + + if(r2.overlaps(r1)) return req; } return null; } diff --git a/core/src/mindustry/input/Placement.java b/core/src/mindustry/input/Placement.java index f1c9d131b6..8a2d9ea499 100644 --- a/core/src/mindustry/input/Placement.java +++ b/core/src/mindustry/input/Placement.java @@ -105,7 +105,7 @@ public class Placement{ found = true; break; } - closed.add(Point2.pack((int)next.x, (int)next.y)); + closed.add(Point2.pack(next.x, next.y)); for(Point2 point : Geometry.d4){ int newx = next.x + point.x, newy = next.y + point.y; Tile child = world.tile(newx, newy); diff --git a/core/src/mindustry/logic/LogicExecutor.java b/core/src/mindustry/logic/LogicExecutor.java index 715740d3f6..f702df855e 100644 --- a/core/src/mindustry/logic/LogicExecutor.java +++ b/core/src/mindustry/logic/LogicExecutor.java @@ -27,7 +27,7 @@ public class LogicExecutor{ void exec(); } - class RegisterI implements Instruction{ + static class RegisterI implements Instruction{ /** operation to perform */ Op op; /** destination memory */ @@ -43,7 +43,7 @@ public class LogicExecutor{ } } - class ReadI implements Instruction{ + static class ReadI implements Instruction{ /** register to write result to */ short dest; /** device to read from */ @@ -59,7 +59,7 @@ public class LogicExecutor{ } } - class WriteI implements Instruction{ + static class WriteI implements Instruction{ @Override public void exec(){ diff --git a/core/src/mindustry/maps/filters/BlendFilter.java b/core/src/mindustry/maps/filters/BlendFilter.java index 405ed2b46b..fd3c1d9619 100644 --- a/core/src/mindustry/maps/filters/BlendFilter.java +++ b/core/src/mindustry/maps/filters/BlendFilter.java @@ -3,7 +3,6 @@ package mindustry.maps.filters; import arc.math.*; import arc.util.*; import mindustry.content.*; -import mindustry.maps.filters.FilterOption.*; import mindustry.world.*; import static mindustry.maps.filters.FilterOption.*; diff --git a/core/src/mindustry/maps/filters/ScatterFilter.java b/core/src/mindustry/maps/filters/ScatterFilter.java index dd4f0cc7b7..8866130baa 100644 --- a/core/src/mindustry/maps/filters/ScatterFilter.java +++ b/core/src/mindustry/maps/filters/ScatterFilter.java @@ -2,8 +2,6 @@ package mindustry.maps.filters; import arc.util.*; import mindustry.content.Blocks; -import mindustry.maps.filters.FilterOption.BlockOption; -import mindustry.maps.filters.FilterOption.SliderOption; import mindustry.world.Block; import static mindustry.maps.filters.FilterOption.*; diff --git a/core/src/mindustry/net/Interpolator.java b/core/src/mindustry/net/Interpolator.java index 42cf9df137..7be5d327b3 100644 --- a/core/src/mindustry/net/Interpolator.java +++ b/core/src/mindustry/net/Interpolator.java @@ -25,9 +25,7 @@ public class Interpolator{ if(lasts.length != values.length){ lasts = new float[values.length]; } - for(int i = 0; i < values.length; i++){ - lasts[i] = values[i]; - } + System.arraycopy(values, 0, lasts, 0, values.length); last.set(cx, cy); target.set(x, y); } diff --git a/core/src/mindustry/type/ErrorContent.java b/core/src/mindustry/type/ErrorContent.java index e41f460a96..00e2edf474 100644 --- a/core/src/mindustry/type/ErrorContent.java +++ b/core/src/mindustry/type/ErrorContent.java @@ -1,7 +1,6 @@ package mindustry.type; import mindustry.ctype.*; -import mindustry.ctype.ContentType; /** Represents a blank type of content that has an error. Replaces anything that failed to parse. */ public class ErrorContent extends Content{ diff --git a/core/src/mindustry/type/Item.java b/core/src/mindustry/type/Item.java index e26d605e2b..58f3b805fc 100644 --- a/core/src/mindustry/type/Item.java +++ b/core/src/mindustry/type/Item.java @@ -4,7 +4,6 @@ import arc.struct.*; import arc.graphics.*; import arc.scene.ui.layout.*; import mindustry.ctype.*; -import mindustry.ctype.ContentType; import mindustry.ui.*; import mindustry.world.blocks.environment.*; @@ -28,8 +27,6 @@ public class Item extends UnlockableContent{ * 1 cost = 1 tick added to build time */ public float cost = 1f; - /** If true, item is always unlocked. */ - public boolean alwaysUnlocked = false; public Item(String name, Color color){ super(name); @@ -40,11 +37,6 @@ public class Item extends UnlockableContent{ this(name, new Color(Color.black)); } - @Override - public boolean alwaysUnlocked(){ - return alwaysUnlocked; - } - @Override public void displayInfo(Table table){ ContentDisplay.displayItem(table, this); diff --git a/core/src/mindustry/type/Liquid.java b/core/src/mindustry/type/Liquid.java index 0baa416634..f968a0f68a 100644 --- a/core/src/mindustry/type/Liquid.java +++ b/core/src/mindustry/type/Liquid.java @@ -5,7 +5,6 @@ import arc.scene.ui.layout.*; import arc.util.ArcAnnotate.*; import mindustry.content.*; import mindustry.ctype.*; -import mindustry.ctype.ContentType; import mindustry.ui.*; public class Liquid extends UnlockableContent{ diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index e05acdb577..7e19736e3b 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -21,7 +21,6 @@ public class SectorPreset extends UnlockableContent{ public Array requirements = new Array<>(); public Cons rules = rules -> {}; - public boolean alwaysUnlocked; public int conditionWave = Integer.MAX_VALUE; public int launchPeriod = 10; public Schematic loadout = Loadouts.basicShard; @@ -155,11 +154,6 @@ public class SectorPreset extends UnlockableContent{ } } - @Override - public boolean alwaysUnlocked(){ - return alwaysUnlocked; - } - @Override public boolean isHidden(){ return true; diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 7561b82c45..77f21a55f1 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -30,6 +30,8 @@ public class UnitType extends UnlockableContent{ public boolean flying; public @NonNull Prov constructor; public @NonNull Prov defaultController = () -> !flying ? new GroundAI() : new FlyingAI(); + public @Nullable UnitType upgrade; + public int tier = 1; public float speed = 1.1f, boostMultiplier = 1f, rotateSpeed = 5f, baseRotateSpeed = 5f; public float drag = 0.3f, mass = 1f, accel = 0.5f, landShake = 0f; public float health = 200f, range = -1, armor = 0f; diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 9e39b3e510..f77e437524 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -15,7 +15,6 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.world.*; import static mindustry.Vars.*; diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index 0302db9df3..76767cac61 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -10,7 +10,6 @@ import arc.scene.ui.layout.*; import arc.util.*; import mindustry.*; import mindustry.ctype.*; -import mindustry.ctype.ContentType; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3a42369adf..d13c199adb 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -61,15 +61,12 @@ public class JoinDialog extends FloatingDialog{ Server server = new Server(); server.setIP(Core.settings.getString("ip")); servers.add(server); - saveServers(); - setupRemote(); - refreshRemote(); }else{ renaming.setIP(Core.settings.getString("ip")); - saveServers(); - setupRemote(); - refreshRemote(); } + saveServers(); + setupRemote(); + refreshRemote(); add.hide(); }).disabled(b -> Core.settings.getString("ip").isEmpty() || net.active()); diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index fa7bac9a78..31b13046b4 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -8,7 +8,6 @@ import arc.util.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import static mindustry.Vars.*; diff --git a/core/src/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/mindustry/ui/dialogs/TechTreeDialog.java index dd42dfcc0f..1c9d7010ac 100644 --- a/core/src/mindustry/ui/dialogs/TechTreeDialog.java +++ b/core/src/mindustry/ui/dialogs/TechTreeDialog.java @@ -22,7 +22,6 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.ui.layout.*; import mindustry.ui.layout.TreeLayout.*; diff --git a/core/src/mindustry/ui/dialogs/TraceDialog.java b/core/src/mindustry/ui/dialogs/TraceDialog.java index 0857f2b50e..3cd9ae460d 100644 --- a/core/src/mindustry/ui/dialogs/TraceDialog.java +++ b/core/src/mindustry/ui/dialogs/TraceDialog.java @@ -3,7 +3,6 @@ package mindustry.ui.dialogs; import arc.Core; import arc.scene.ui.layout.Table; import mindustry.gen.*; -import mindustry.gen.*; import mindustry.net.Administration.TraceInfo; public class TraceDialog extends FloatingDialog{ diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 634c97e785..b80c86f55c 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -580,16 +580,14 @@ public class HudFragment extends Fragment{ ibuild.setLength(0); int m = i/60; int s = i % 60; - if(m <= 0){ - ibuild.append(s); - }else{ + if(m > 0){ ibuild.append(m); ibuild.append(":"); if(s < 10){ ibuild.append("0"); } - ibuild.append(s); } + ibuild.append(s); return ibuild.toString(); }); diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index 2dd73af9e4..bf4b19207f 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -244,7 +244,7 @@ public class MenuFragment extends Fragment{ } } - private class Buttoni{ + private static class Buttoni{ final Drawable icon; final String text; final Runnable runnable; diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index fa66d88e62..526ae90c69 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -165,7 +165,6 @@ public class Block extends UnlockableContent{ public float buildCostMultiplier = 1f; /** Whether this block has instant transfer.*/ public boolean instantTransfer = false; - public boolean alwaysUnlocked = false; protected Prov entityType = null; //initialized later //TODO move @@ -352,16 +351,16 @@ public class Block extends UnlockableContent{ Draw.reset(); Draw.mixcol(!valid ? Pal.breakInvalid : Color.white, (!valid ? 0.4f : 0.24f) + Mathf.absin(Time.globalTime(), 6f, 0.28f)); Draw.alpha(1f); + float prevScale = Draw.scl; + Draw.scl *= req.animScale; drawRequestRegion(req, list); + Draw.scl = prevScale; Draw.reset(); } public void drawRequestRegion(BuildRequest req, Eachable list){ TextureRegion reg = getRequestRegion(req, list); - Draw.rect(reg, req.drawx(), req.drawy(), - reg.getWidth() * req.animScale * Draw.scl, - reg.getHeight() * req.animScale * Draw.scl, - !rotate ? 0 : req.rotation * 90); + Draw.rect(reg, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); if(req.hasConfig){ drawRequestConfig(req, list); @@ -380,12 +379,8 @@ public class Block extends UnlockableContent{ Color color = content instanceof Item ? ((Item)content).color : content instanceof Liquid ? ((Liquid)content).color : null; if(color == null) return; - float prev = Draw.scl; - Draw.color(color); - Draw.scl *= req.animScale; Draw.rect(region, req.drawx(), req.drawy()); - Draw.scl = prev; Draw.color(); } @@ -627,11 +622,6 @@ public class Block extends UnlockableContent{ return !buildVisibility.visible(); } - @Override - public boolean alwaysUnlocked(){ - return alwaysUnlocked; - } - @Override public void createIcons(MultiPacker packer){ super.createIcons(packer); diff --git a/core/src/mindustry/world/ItemBuffer.java b/core/src/mindustry/world/ItemBuffer.java index 6c6c4cd701..a52495a1b7 100644 --- a/core/src/mindustry/world/ItemBuffer.java +++ b/core/src/mindustry/world/ItemBuffer.java @@ -20,7 +20,7 @@ public class ItemBuffer{ public void accept(Item item, short data){ //if(!accepts()) return; - buffer[index++] = Pack.longInt(Float.floatToIntBits(Time.time()), Pack.shortInt((short)item.id, data)); + buffer[index++] = Pack.longInt(Float.floatToIntBits(Time.time()), Pack.shortInt(item.id, data)); } public void accept(Item item){ diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java index 01361687aa..7d4a409946 100644 --- a/core/src/mindustry/world/Tile.java +++ b/core/src/mindustry/world/Tile.java @@ -283,6 +283,10 @@ public class Tile implements Position, QuadTreeObject{ return rotation; } + public int rotdeg(){ + return rotation * 90; + } + public void rotation(int rotation){ this.rotation = (byte)rotation; } diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/BuildBlock.java index 531fc7dd18..eb9e8fafd1 100644 --- a/core/src/mindustry/world/blocks/BuildBlock.java +++ b/core/src/mindustry/world/blocks/BuildBlock.java @@ -170,7 +170,7 @@ public class BuildBlock extends Block{ @Override public void draw(){ if(!(previous == null || cblock == null || previous == cblock) && Core.atlas.isFound(previous.icon(Cicon.full))){ - Draw.rect(previous.icon(Cicon.full), x, y, previous.rotate ? tile.rotation() * 90 : 0); + Draw.rect(previous.icon(Cicon.full), x, y, previous.rotate ? tile.rotdeg() : 0); } Draw.draw(Layer.blockBuilding, () -> { @@ -183,7 +183,7 @@ public class BuildBlock extends Block{ Shaders.blockbuild.region = region; Shaders.blockbuild.progress = progress; - Draw.rect(region, x, y, target.rotate ? tile.rotation() * 90 : 0); + Draw.rect(region, x, y, target.rotate ? tile.rotdeg() : 0); Draw.flush(); } } diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index d7b16187e3..ed78f4ba75 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -63,7 +63,7 @@ public class Conveyor extends Block implements Autotiler{ if(bits == null) return; TextureRegion region = regions[bits[0]][0]; - Draw.rect(region, req.drawx(), req.drawy(), region.getWidth() * bits[1] * Draw.scl * req.animScale, region.getHeight() * bits[2] * Draw.scl * req.animScale, req.rotation * 90); + Draw.rect(region, req.drawx(), req.drawy(), region.getWidth() * bits[1] * Draw.scl, region.getHeight() * bits[2] * Draw.scl, req.rotation * 90); } @Override @@ -249,7 +249,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void getStackOffset(Item item, Vec2 trns){ - trns.trns(tile.rotation() * 90 + 180f, tilesize / 2f); + trns.trns(tile.rotdeg() + 180f, tilesize / 2f); } @Override diff --git a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index 3a0d8a2559..efd1cb1b0c 100644 --- a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -14,6 +14,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.world.*; import mindustry.world.blocks.payloads.*; +import mindustry.world.blocks.production.*; import static mindustry.Vars.*; @@ -81,7 +82,7 @@ public class PayloadConveyor extends Block{ //TODO DEBUG if(Core.input.keyTap(KeyCode.g) && world.entWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y) == this){ item = new UnitPayload((Mathf.chance(0.5) ? UnitTypes.wraith : UnitTypes.dagger).create(Team.sharded)); - itemRotation = rotation() * 90; + itemRotation = rotdeg(); animation = 0f; } @@ -106,7 +107,7 @@ public class PayloadConveyor extends Block{ //dump item forward float trnext = size * tilesize / 2f, cx = Geometry.d4(rotation()).x, cy = Geometry.d4(rotation()).y; - if(item.dump(x + cx * trnext, y + cy * trnext, rotation() * 90)){ + if(item.dump(x + cx * trnext, y + cy * trnext, rotdeg())){ item = null; } } @@ -123,7 +124,7 @@ public class PayloadConveyor extends Block{ float glow = Math.max((dst - (Math.abs(fract() - 0.5f) * 2)) / dst, 0); Draw.mixcol(Pal.accent, glow); - float trnext = fract() * size * tilesize, trprev = size * tilesize * (fract() - 1), rot = rotation() * 90; + float trnext = fract() * size * tilesize, trprev = size * tilesize * (fract() - 1), rot = rotdeg(); TextureRegion clipped = clipRegion(tile.getHitbox(Tmp.r1), tile.getHitbox(Tmp.r2).move(trnext, 0), topRegion); float s = tilesize * size; @@ -164,12 +165,12 @@ public class PayloadConveyor extends Block{ animation = Math.max(animation, fract()); float fract = animation; - rot = Mathf.slerp(itemRotation, rotation() * 90, fract); + rot = Mathf.slerp(itemRotation, rotdeg(), fract); if(fract < 0.5f){ Tmp.v1.trns(itemRotation + 180, (0.5f - fract) * tilesize * size); }else{ - Tmp.v1.trns(rotation() * 90, (fract - 0.5f) * tilesize * size); + Tmp.v1.trns(rotdeg(), (fract - 0.5f) * tilesize * size); } float vx = Tmp.v1.x, vy = Tmp.v1.y; @@ -196,10 +197,7 @@ public class PayloadConveyor extends Block{ if(direction == rotation()){ return !blocked || next != null; }else{ - Tilec accept = nearby(Geometry.d4(direction).x * size, Geometry.d4(direction).y * size); - return accept != null && accept.block().size == size && accept.block().outputsPayload && - //block must either be facing this one, or not be rotating - ((accept.tileX() + Geometry.d4(accept.rotation()).x * size == tileX() && accept.tileY() + Geometry.d4(accept.rotation()).y * size == tileY()) || !accept.block().rotate); + return PayloadAcceptor.blends(this, direction); } } diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index 62de4f8a1c..fba4125554 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -34,7 +34,7 @@ public class Sorter extends Block{ @Override public void drawRequestConfig(BuildRequest req, Eachable list){ - drawRequestConfigCenter(req, (Item)req.config, "center"); + drawRequestConfigCenter(req, req.config, "center"); } @Override diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index cff68a7dad..ef3fc82bd7 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -74,11 +74,11 @@ public class StackConveyor extends Block implements Autotiler{ if(bits == null) return; TextureRegion region = regions[0]; - Draw.rect(region, req.drawx(), req.drawy(), region.getWidth() * Draw.scl * req.animScale, region.getHeight() * Draw.scl * req.animScale, req.rotation * 90); + Draw.rect(region, req.drawx(), req.drawy(), req.rotation * 90); for(int i = 0; i < 4; i++){ if((bits[3] & (1 << i)) == 0){ - Draw.rect(edgeRegion, req.drawx(), req.drawy(), region.getWidth() * Draw.scl * req.animScale, region.getHeight() * Draw.scl * req.animScale, (req.rotation - i) * 90); + Draw.rect(edgeRegion, req.drawx(), req.drawy(), (req.rotation - i) * 90); } } } @@ -101,7 +101,7 @@ public class StackConveyor extends Block implements Autotiler{ @Override public void draw(){ - Draw.rect(regions[state], x, y, rotation() * 90); + Draw.rect(regions[state], x, y, rotdeg()); for(int i = 0; i < 4; i++){ if((blendprox & (1 << i)) == 0){ diff --git a/core/src/mindustry/world/blocks/experimental/BlockLauncher.java b/core/src/mindustry/world/blocks/experimental/BlockLauncher.java index ffe540e8c3..07bbce3000 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockLauncher.java +++ b/core/src/mindustry/world/blocks/experimental/BlockLauncher.java @@ -26,7 +26,7 @@ public class BlockLauncher extends PayloadAcceptor{ size = 3; } - public class BlockLauncherEntity extends PayloadAcceptorEntity{ + public class BlockLauncherEntity extends PayloadAcceptorEntity{ @Override public void draw(){ @@ -42,15 +42,14 @@ public class BlockLauncher extends PayloadAcceptor{ @Override public void updateTile(){ - if(updatePayload() && efficiency() >= 0.99f){ + if(moveInPayload() && efficiency() >= 0.99f){ Effects.shake(4f, 4f, this); Fx.producesmoke.at(this); positions.clear(); - BlockPayload pay = (BlockPayload)payload; Geometry.circle(tileX(), tileY(), world.width(), world.height(), (int)(range / tilesize), (cx, cy) -> { - if(Build.validPlace(team, cx, cy, pay.block, 0)){ + if(Build.validPlace(team, cx, cy, payload.block, 0)){ positions.add(Point2.pack(cx, cy)); } }); @@ -58,7 +57,7 @@ public class BlockLauncher extends PayloadAcceptor{ if(positions.isEmpty()) return; int pick = positions.random(); - LaunchedBlock launch = new LaunchedBlock(Point2.x(pick), Point2.y(pick), pay.block, team); + LaunchedBlock launch = new LaunchedBlock(Point2.x(pick), Point2.y(pick), payload.block, team); Fx.blockTransfer.at(x, y, 0, launch); Time.run(Fx.blockTransfer.lifetime, () -> { float ex = launch.x * tilesize + launch.block.offset(), ey = launch.y * tilesize + launch.block.offset(); @@ -75,7 +74,7 @@ public class BlockLauncher extends PayloadAcceptor{ } } - public class LaunchedBlock{ + public static class LaunchedBlock{ public final int x, y; public final Block block; public final Team team; diff --git a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java index 09ff1dd5c4..9566dc2032 100644 --- a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java +++ b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java @@ -28,7 +28,7 @@ public class ArmoredConduit extends Conduit{ Tilec next = tile.front(); if(next != null && next.team() == team && next.block().hasLiquids) return; - Draw.rect(capRegion, x, y, tile.rotation() * 90); + Draw.rect(capRegion, x, y, tile.rotdeg()); } @Override diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 0e03ad83d9..a26b3d66c3 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -42,13 +42,11 @@ public class Conduit extends LiquidBlock implements Autotiler{ Draw.color(botColor); Draw.alpha(0.5f); - Draw.rect(botRegions[bits[0]], req.drawx(), req.drawy(), - botRegions[bits[0]].getWidth() * Draw.scl * req.animScale, botRegions[bits[0]].getHeight() * Draw.scl * req.animScale, - req.rotation * 90); + Draw.rect(botRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); Draw.color(); - Draw.rect(topRegions[bits[0]], req.drawx(), req.drawy(), topRegions[bits[0]].getWidth() * Draw.scl * req.animScale, topRegions[bits[0]].getHeight() * Draw.scl * req.animScale, req.rotation * 90); + Draw.rect(topRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); } @Override @@ -82,7 +80,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ @Override public void draw(){ - int rotation = rotation() * 90; + float rotation = rotdeg(); Draw.color(botColor); Draw.rect(botRegions[blendbits], x, y, rotation); diff --git a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java index b4f16a4e33..5820c4ac1b 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java @@ -29,7 +29,7 @@ public class LiquidBlock extends Block{ public class LiquidBlockEntity extends TileEntity{ @Override public void draw(){ - int rotation = rotate ? rotation() * 90 : 0; + float rotation = rotate ? rotdeg() : 0; Draw.rect(bottomRegion, x, y, rotation); if(liquids.total() > 0.001f){ diff --git a/core/src/mindustry/world/blocks/payloads/UnitPayload.java b/core/src/mindustry/world/blocks/payloads/UnitPayload.java index 918edf85cc..789eafa79a 100644 --- a/core/src/mindustry/world/blocks/payloads/UnitPayload.java +++ b/core/src/mindustry/world/blocks/payloads/UnitPayload.java @@ -1,6 +1,7 @@ package mindustry.world.blocks.payloads; import arc.graphics.g2d.*; +import mindustry.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; @@ -14,6 +15,9 @@ public class UnitPayload implements Payload{ @Override public boolean dump(float x, float y, float rotation){ + //no client dumping + if(Vars.net.client()) return true; + unit.set(x, y); unit.rotation(rotation); unit.add(); @@ -23,8 +27,8 @@ public class UnitPayload implements Payload{ @Override public void draw(float x, float y, float rotation){ - Drawf.shadow(x, y, 24); - Draw.rect("pneumatic-drill", x, y, rotation); + // Drawf.shadow(x, y, 24); + //Draw.rect("pneumatic-drill", x, y, rotation); Drawf.shadow(x, y, 20); Draw.rect(unit.type().icon(Cicon.full), x, y, rotation - 90); } diff --git a/core/src/mindustry/world/blocks/power/PowerDiode.java b/core/src/mindustry/world/blocks/power/PowerDiode.java index dad6ad6bec..53bed896ee 100644 --- a/core/src/mindustry/world/blocks/power/PowerDiode.java +++ b/core/src/mindustry/world/blocks/power/PowerDiode.java @@ -32,16 +32,9 @@ public class PowerDiode extends Block{ } @Override - public void drawRequestRegion(BuildRequest req, Eachable list) { - TextureRegion reg = icon(Cicon.full); - Draw.rect(icon(Cicon.full), req.drawx(), req.drawy(), - reg.getWidth() * req.animScale * Draw.scl, - reg.getHeight() * req.animScale * Draw.scl, - 0); - Draw.rect(arrow, req.drawx(), req.drawy(), - arrow.getWidth() * req.animScale * Draw.scl, - arrow.getHeight() * req.animScale * Draw.scl, - !rotate ? 0 : req.rotation * 90); + public void drawRequestRegion(BuildRequest req, Eachable list){ + Draw.rect(icon(Cicon.full), req.drawx(), req.drawy()); + Draw.rect(arrow, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); } // battery % of the graph on either side, defaults to zero @@ -53,7 +46,7 @@ public class PowerDiode extends Block{ @Override public void draw(){ Draw.rect(region, x, y, 0); - Draw.rect(arrow, x, y, rotate ? tile.rotation() * 90 : 0); + Draw.rect(arrow, x, y, rotate ? tile.rotdeg() : 0); } @Override diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 97a874e6c5..88b670fdb5 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -266,7 +266,7 @@ public class PowerNode extends PowerBlock{ public void placed(){ if(net.client()) return; - Boolf valid = other -> other != null && other != tile && ((!other.block().outputsPower && other.block().consumesPower) || + Boolf valid = other -> other != null && other != this && ((!other.block().outputsPower && other.block().consumesPower) || (other.block().outputsPower && !other.block().consumesPower) || other.block() instanceof PowerNode) && linkValid(this, other) && !other.proximity().contains(this) && other.power().graph != power.graph; diff --git a/core/src/mindustry/world/blocks/production/GenericCrafter.java b/core/src/mindustry/world/blocks/production/GenericCrafter.java index fdf4382647..26416deeaa 100644 --- a/core/src/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/mindustry/world/blocks/production/GenericCrafter.java @@ -3,7 +3,6 @@ package mindustry.world.blocks.production; import arc.func.*; import arc.graphics.g2d.*; import arc.math.*; -import arc.util.*; import arc.util.io.*; import mindustry.content.*; import mindustry.entities.*; diff --git a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java index 5956759175..487a04fcf3 100644 --- a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java +++ b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java @@ -12,6 +12,7 @@ import mindustry.world.blocks.payloads.*; import static mindustry.Vars.tilesize; public class PayloadAcceptor extends Block{ + public float payloadSpeed = 0.5f; public PayloadAcceptor(String name){ super(name); @@ -19,10 +20,20 @@ public class PayloadAcceptor extends Block{ update = true; } - public class PayloadAcceptorEntity extends TileEntity{ - public @Nullable Payload payload; - public Vec2 inputVector = new Vec2(); - public float inputRotation; + public static boolean blends(Tilec tile, int direction){ + int size = tile.block().size; + Tilec accept = tile.nearby(Geometry.d4(direction).x * size, Geometry.d4(direction).y * size); + return accept != null && + accept.block().size == size && + accept.block().outputsPayload && + //block must either be facing this one, or not be rotating + ((accept.tileX() + Geometry.d4(accept.rotation()).x * size == tile.tileX() && accept.tileY() + Geometry.d4(accept.rotation()).y * size == tile.tileY()) || !accept.block().rotate); + } + + public class PayloadAcceptorEntity extends TileEntity{ + public @Nullable T payload; + public Vec2 payVector = new Vec2(); + public float payRotation; @Override public boolean acceptPayload(Tilec source, Payload payload){ @@ -31,25 +42,29 @@ public class PayloadAcceptor extends Block{ @Override public void handlePayload(Tilec source, Payload payload){ - this.payload = payload; - this.inputVector.set(source).sub(this).clamp(-size * tilesize / 2f, size * tilesize / 2f, -size * tilesize / 2f, size * tilesize / 2f); - this.inputRotation = source.angleTo(this); + this.payload = (T)payload; + this.payVector.set(source).sub(this).clamp(-size * tilesize / 2f, size * tilesize / 2f, -size * tilesize / 2f, size * tilesize / 2f); + this.payRotation = source.angleTo(this); } /** @return true if the payload is in position. */ - public boolean updatePayload(){ + public boolean moveInPayload(){ if(payload == null) return false; - inputRotation = Mathf.slerpDelta(inputRotation, 90f, 0.3f); - inputVector.lerpDelta(Vec2.ZERO, 0.2f); + payRotation = Mathf.slerpDelta(payRotation, rotate ? rotdeg() : 90f, 0.3f); + payVector.approachDelta(Vec2.ZERO, payloadSpeed); - return inputVector.isZero(0.5f); + return hasArrived(); + } + + public boolean hasArrived(){ + return payVector.isZero(0.01f); } public void drawPayload(){ if(payload != null){ Draw.z(Layer.blockOver); - payload.draw(x + inputVector.x, y + inputVector.y, inputRotation); + payload.draw(x + payVector.x, y + payVector.y, payRotation); } } } diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java index 931dcb1e49..9ce4edc8e8 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java @@ -5,14 +5,13 @@ import arc.scene.ui.layout.*; import arc.util.ArcAnnotate.*; import arc.util.*; import arc.util.io.*; -import mindustry.ctype.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; import mindustry.world.blocks.*; -import static mindustry.Vars.*; +import static mindustry.Vars.content; public class LiquidSource extends Block{ @@ -39,7 +38,7 @@ public class LiquidSource extends Block{ @Override public void drawRequestConfig(BuildRequest req, Eachable list){ - drawRequestConfigCenter(req, (Content)req.config, "center"); + drawRequestConfigCenter(req, req.config, "center"); } public class LiquidSourceEntity extends TileEntity{ diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index 9704c83bc4..405d2449a6 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -216,7 +216,7 @@ public class CoreBlock extends StorageBlock{ if(heat > 0.001f){ Draw.draw(Layer.blockOver, () -> { - Drawf.drawRespawn(this, heat, progress, time, unitType, lastRequested); + Drawf.respawn(this, heat, progress, time, unitType, lastRequested); }); } } diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index dcaf54926f..4809b8f47c 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -37,7 +37,7 @@ public class Unloader extends Block{ @Override public void drawRequestConfig(BuildRequest req, Eachable list){ - drawRequestConfigCenter(req, (Item)req.config, "unloader-center"); + drawRequestConfigCenter(req, req.config, "unloader-center"); } @Override diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index 624464aad3..ba55faed3b 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -1,21 +1,122 @@ package mindustry.world.blocks.units; -import arc.util.ArcAnnotate.*; +import arc.graphics.g2d.*; +import arc.math.*; +import arc.util.*; +import mindustry.annotations.Annotations.*; +import mindustry.content.*; +import mindustry.entities.units.*; import mindustry.gen.*; -import mindustry.world.*; +import mindustry.graphics.*; +import mindustry.type.*; +import mindustry.ui.*; +import mindustry.world.blocks.payloads.*; +import mindustry.world.consumers.*; -public class Reconstructor extends Block{ +import static mindustry.Vars.state; + +public class Reconstructor extends UnitBlock{ + public @Load(value = "@-top", fallback = "factory-top") TextureRegion topRegion; + public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion; + public @Load(value = "@-in", fallback = "factory-in") TextureRegion inRegion; + public int tier = 1; + public float constructTime = 60 * 2; public Reconstructor(String name){ super(name); } - public class ReassemblerEntity extends TileEntity{ - public @Nullable Unitc unit; + @Override + public void drawRequestRegion(BuildRequest req, Eachable list){ + Draw.rect(region, req.drawx(), req.drawy()); + Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); + Draw.rect(topRegion, req.drawx(), req.drawy()); + } + + @Override + public void setBars(){ + super.setBars(); + bars.add("progress", entity -> new Bar("bar.progress", Pal.ammo, ((ReconstructorEntity)entity)::fraction)); + } + + public class ReconstructorEntity extends UnitBlockEntity{ + + public float fraction(){ + return progress / constructTime; + } + + @Override + public boolean acceptPayload(Tilec source, Payload payload){ + return this.payload == null + && relativeTo(source) != rotation() + && payload instanceof UnitPayload + && ((UnitPayload)payload).unit.type().upgrade != null + && ((UnitPayload)payload).unit.type().tier == tier; + } + + @Override + public void draw(){ + Draw.rect(region, x, y); + + //draw input + for(int i = 0; i < 4; i++){ + if(blends(this, i) && i != rotation()){ + Draw.rect(inRegion, x, y, i * 90); + } + } + + Draw.rect(outRegion, x, y, rotdeg()); + + if(constructing() && hasArrived()){ + Draw.draw(Layer.blockOver, () -> { + Draw.alpha(1f - progress/ constructTime); + Draw.rect(payload.unit.type().icon(Cicon.full), x, y, rotdeg() - 90); + Draw.reset(); + Drawf.construct(this, payload.unit.type().upgrade, rotdeg() - 90f, progress / constructTime, speedScl, time); + }); + }else{ + Draw.z(Layer.blockOver); + payRotation = rotdeg(); + + drawPayload(); + } + + Draw.z(Layer.blockOver + 0.1f); + Draw.rect(topRegion, x, y); + } @Override public void updateTile(){ + boolean valid = false; + if(payload != null){ + //check if offloading + if(payload.unit.type().upgrade == null || payload.unit.type().tier != tier){ + outputPayload(); + }else{ //update progress + if(moveInPayload()){ + if(consValid()){ + valid = true; + progress += edelta(); + } + + //upgrade the unit + if(progress >= constructTime){ + payload.unit = payload.unit.type().upgrade.create(payload.unit.team()); + progress = 0; + Fx.unitSpawn.at(this); + consume(); + } + } + } + } + + speedScl = Mathf.lerpDelta(speedScl, Mathf.num(valid), 0.05f); + time += edelta() * speedScl * state.rules.unitBuildSpeedMultiplier; + } + + public boolean constructing(){ + return payload != null && payload.unit.type().upgrade != null && payload.unit.type().tier == tier; } } } diff --git a/core/src/mindustry/world/blocks/units/UnitBlock.java b/core/src/mindustry/world/blocks/units/UnitBlock.java new file mode 100644 index 0000000000..c3e7c8e185 --- /dev/null +++ b/core/src/mindustry/world/blocks/units/UnitBlock.java @@ -0,0 +1,75 @@ +package mindustry.world.blocks.units; + +import arc.*; +import arc.math.*; +import arc.util.*; +import mindustry.annotations.Annotations.*; +import mindustry.game.EventType.*; +import mindustry.gen.*; +import mindustry.world.*; +import mindustry.world.blocks.payloads.*; +import mindustry.world.blocks.production.*; + +import static mindustry.Vars.*; + +public class UnitBlock extends PayloadAcceptor{ + + public UnitBlock(String name){ + super(name); + + outputsPayload = true; + rotate = true; + update = true; + solid = true; + } + + @Remote(called = Loc.server) + public static void onUnitBlockSpawn(Tile tile){ + if(!(tile.entity instanceof UnitBlockEntity)) return; + tile.ent().spawned(); + } + + + public class UnitBlockEntity extends PayloadAcceptorEntity{ + public float progress, payloadPos, time, speedScl; + + public void spawned(){ + progress = 0f; + + if(!net.client() && payload != null){ + Unitc unit = payload.unit; + unit.set(x, y); + unit.rotation(rotdeg()); + unit.vel().trns(rotdeg(), payloadSpeed * 2f).add(Mathf.range(0.1f), Mathf.range(0.1f)); + unit.trns(Tmp.v1.trns(rotdeg(), size * tilesize/2f)); + unit.trns(unit.vel()); + unit.add(); + Events.fire(new UnitCreateEvent(unit)); + } + + payload = null; + } + + public void outputPayload(){ + if(payload == null) return; + + payloadPos += edelta() * payloadSpeed; + payVector.trns(rotdeg(), payloadPos); + payRotation = rotdeg(); + + if(payloadPos >= size * tilesize/2f){ + payloadPos = size * tilesize/2f; + + Tile front = frontLarge(); + if(front != null && front.entity != null && front.block().outputsPayload){ + if(movePayload(payload)){ + payload = null; + } + }else if(front != null && !front.solid()){ + //create unit if there's space + Call.onUnitBlockSpawn(tile); + } + } + } + } +} diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 9f0dc9ed24..af8a099d61 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -7,28 +7,22 @@ import arc.math.*; import arc.scene.style.*; import arc.scene.ui.layout.*; import arc.struct.*; -import arc.util.ArcAnnotate.*; import arc.util.*; import arc.util.io.*; import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.entities.*; import mindustry.entities.units.*; -import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.payloads.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; -import static mindustry.Vars.*; - -public class UnitFactory extends Block{ - public float payloadSpeed = 0.5f; +public class UnitFactory extends UnitBlock{ public @Load(value = "@-top", fallback = "factory-top") TextureRegion topRegion; public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion; public int[] capacities; @@ -63,12 +57,6 @@ public class UnitFactory extends Block{ })); } - @Remote(called = Loc.server) - public static void onUnitFactorySpawn(Tile tile){ - if(!(tile.entity instanceof UnitFactoryEntity)) return; - tile.ent().spawned(); - } - @Override public void init(){ super.init(); @@ -106,9 +94,9 @@ public class UnitFactory extends Block{ @Override public void drawRequestRegion(BuildRequest req, Eachable list){ - Draw.rect(region, req.drawx(), req.drawy(), region.getWidth() * req.animScale * Draw.scl, region.getHeight() * req.animScale * Draw.scl); - Draw.rect(outRegion, req.drawx(), req.drawy(), outRegion.getWidth() * req.animScale * Draw.scl, outRegion.getHeight() * req.animScale * Draw.scl, req.rotation * 90); - Draw.rect(topRegion, req.drawx(), req.drawy(), outRegion.getWidth() * req.animScale * Draw.scl, outRegion.getHeight() * req.animScale * Draw.scl); + Draw.rect(region, req.drawx(), req.drawy()); + Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); + Draw.rect(topRegion, req.drawx(), req.drawy()); } public static class UnitPlan{ @@ -125,10 +113,8 @@ public class UnitFactory extends Block{ UnitPlan(){} } - public class UnitFactoryEntity extends TileEntity{ + public class UnitFactoryEntity extends UnitBlockEntity{ public int currentPlan = -1; - public float progress, time, speedScl, payloadPos; - public @Nullable UnitPayload payload; public float fraction(){ return currentPlan == -1 ? 0 : progress / plans[currentPlan].time; @@ -141,6 +127,11 @@ public class UnitFactory extends Block{ ItemSelection.buildTable(table, units, () -> currentPlan == -1 ? null : plans[currentPlan].unit, unit -> configure(units.indexOf(unit))); } + @Override + public boolean acceptPayload(Tilec source, Payload payload){ + return false; + } + @Override public void display(Table table){ super.display(table); @@ -166,96 +157,38 @@ public class UnitFactory extends Block{ @Override public void draw(){ Draw.rect(region, x, y); - Draw.rect(outRegion, x, y, rotation() * 90); + Draw.rect(outRegion, x, y, rotdeg()); if(currentPlan != -1){ UnitPlan plan = plans[currentPlan]; - - Draw.draw(Layer.blockOver, () -> { - TextureRegion region = plan.unit.icon(Cicon.full); - - Shaders.build.region = region; - Shaders.build.progress = progress / plan.time; - Shaders.build.color.set(Pal.accent); - Shaders.build.color.a = speedScl; - Shaders.build.time = -time / 20f; - - Draw.shader(Shaders.build); - Draw.rect(region, x, y, rotation() * 90 - 90); - Draw.shader(); - - Draw.color(Pal.accent); - Draw.alpha(speedScl); - - Lines.lineAngleCenter(x + Mathf.sin(time, 20f, Vars.tilesize / 2f * size - 2f), y, 90, size * Vars.tilesize - 4f); - - Draw.reset(); - }); + Draw.draw(Layer.blockOver, () -> Drawf.construct(this, plan.unit, rotdeg() - 90f, progress / plan.time, speedScl, time)); } Draw.z(Layer.blockOver); - if(payload != null){ - payload.draw( - x + Angles.trnsx(rotation() * 90, payloadPos), - y + Angles.trnsy(rotation() * 90, payloadPos), - rotation() * 90 - ); - } + payRotation = rotdeg(); + drawPayload(); Draw.z(Layer.blockOver + 0.1f); Draw.rect(topRegion, x, y); } - public void spawned(){ - progress = 0f; - - if(!net.client() && payload != null){ - Unitc unit = payload.unit; - unit.set(x, y); - - unit.rotation(rotation() * 90); - unit.vel().trns(rotation() * 90, payloadSpeed * 2f).add(Mathf.range(0.1f), Mathf.range(0.1f)); - unit.trns(Tmp.v1.trns(rotation() * 90, size * tilesize/2f)); - unit.trns(unit.vel()); - unit.add(); - Events.fire(new UnitCreateEvent(unit)); - } - - payload = null; - } - @Override public void updateTile(){ if(currentPlan < 0 || currentPlan >= plans.length){ currentPlan = -1; } - if((consValid() || tile.isEnemyCheat()) && currentPlan != -1){ - time += delta() * efficiency() * speedScl * Vars.state.rules.unitBuildSpeedMultiplier; - progress += delta() * efficiency() * Vars.state.rules.unitBuildSpeedMultiplier; + if(consValid() && currentPlan != -1){ + time += edelta() * speedScl * Vars.state.rules.unitBuildSpeedMultiplier; + progress += edelta() * Vars.state.rules.unitBuildSpeedMultiplier; speedScl = Mathf.lerpDelta(speedScl, 1f, 0.05f); }else{ speedScl = Mathf.lerpDelta(speedScl, 0f, 0.05f); } - if(payload != null){ - payloadPos += edelta() * payloadSpeed; - if(payloadPos >= size * tilesize/2f){ - payloadPos = size * tilesize/2f; - - Tile front = frontLarge(); - if(front != null && front.entity != null && front.block().outputsPayload){ - if(movePayload(payload)){ - payload = null; - } - }else if(front != null && !front.solid()){ - //create unit - Call.onUnitFactorySpawn(tile); - } - } - } + outputPayload(); if(currentPlan != -1 && payload == null){ UnitPlan plan = plans[currentPlan]; diff --git a/core/src/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/mindustry/world/consumers/ConsumeItemFilter.java index 898cfee589..e97afbf883 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFilter.java @@ -7,7 +7,6 @@ import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.world.meta.*; import mindustry.world.meta.values.*; diff --git a/core/src/mindustry/world/consumers/ConsumeItems.java b/core/src/mindustry/world/consumers/ConsumeItems.java index d10c5c0306..0889ac7ad1 100644 --- a/core/src/mindustry/world/consumers/ConsumeItems.java +++ b/core/src/mindustry/world/consumers/ConsumeItems.java @@ -6,7 +6,6 @@ import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.world.meta.*; import mindustry.world.meta.values.*; @@ -19,7 +18,7 @@ public class ConsumeItems extends Consume{ /** Mods.*/ protected ConsumeItems(){ - this(new ItemStack[]{}); + this(ItemStack.empty); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeLiquid.java b/core/src/mindustry/world/consumers/ConsumeLiquid.java index 1a1f7b0ff4..d918a4a812 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquid.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquid.java @@ -6,7 +6,6 @@ import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.world.meta.*; public class ConsumeLiquid extends ConsumeLiquidBase{ diff --git a/core/src/mindustry/world/modules/LiquidModule.java b/core/src/mindustry/world/modules/LiquidModule.java index 2c7cad8321..192706cb93 100644 --- a/core/src/mindustry/world/modules/LiquidModule.java +++ b/core/src/mindustry/world/modules/LiquidModule.java @@ -57,9 +57,7 @@ public class LiquidModule extends BlockModule{ } public void reset(Liquid liquid, float amount){ - for(int i = 0; i < liquids.length; i++){ - liquids[i] = 0f; - } + Arrays.fill(liquids, 0f); liquids[liquid.id] = amount; total = amount; current = liquid;