diff --git a/core/assets-raw/sprites/ui/content-background.9.png b/core/assets-raw/sprites/ui/content-background.9.png new file mode 100644 index 0000000000..1ddbf727fa Binary files /dev/null and b/core/assets-raw/sprites/ui/content-background.9.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index ac9d8c6e63..1704817913 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -48,308 +48,308 @@ overdrive-projector-top index: -1 shock-mine rotate: false - xy: 1921, 1341 + xy: 1539, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 1351, 1647 + xy: 1419, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 1385, 1681 + xy: 1453, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 1419, 1715 + xy: 1487, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1385, 1579 + xy: 1453, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 1419, 1613 + xy: 1487, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 1453, 1647 + xy: 1521, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 1487, 1681 + xy: 1555, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 1521, 1715 + xy: 1589, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1555, 1749 + xy: 1317, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1589, 1783 + xy: 1351, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1317, 1477 + xy: 1385, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1351, 1511 + xy: 1419, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1385, 1545 + xy: 1453, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1419, 1579 + xy: 1487, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1453, 1613 + xy: 1521, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 1487, 1647 + xy: 1555, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1521, 1681 + xy: 1589, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1555, 1715 + xy: 1623, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1589, 1749 + xy: 1351, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1623, 1783 + xy: 1385, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1351, 1477 + xy: 1419, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1385, 1511 + xy: 1453, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1419, 1545 + xy: 1487, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 667, 312 + xy: 1657, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 667, 278 + xy: 1691, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 667, 244 + xy: 1725, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 667, 210 + xy: 1759, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 667, 176 + xy: 1793, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 667, 142 + xy: 1827, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 667, 108 + xy: 1861, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 667, 74 + xy: 1895, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 701, 310 + xy: 1929, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 701, 276 + xy: 1963, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 701, 242 + xy: 1997, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 701, 208 + xy: 1615, 1345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 701, 174 + xy: 1615, 1311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 701, 140 + xy: 1649, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 701, 106 + xy: 1683, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 701, 72 + xy: 1717, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 735, 310 + xy: 1751, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 735, 276 + xy: 1785, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 735, 242 + xy: 1819, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 735, 208 + xy: 1853, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -363,7 +363,7 @@ distributor index: -1 junction rotate: false - xy: 1657, 1579 + xy: 1861, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -384,49 +384,49 @@ mass-driver-turret index: -1 overflow-gate rotate: false - xy: 1547, 1409 + xy: 1997, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1615, 1375 + xy: 1343, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1649, 1409 + xy: 1377, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1649, 1375 + xy: 1411, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1683, 1409 + xy: 1445, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1275, 1341 + xy: 1309, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1547, 1307 + xy: 667, 312 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -622,28 +622,28 @@ water-extractor-top index: -1 blackrock1 rotate: false - xy: 1256, 1817 + xy: 1181, 1689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone1 rotate: false - xy: 1290, 1817 + xy: 1181, 1655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone2 rotate: false - xy: 1324, 1817 + xy: 1181, 1621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone3 rotate: false - xy: 1358, 1817 + xy: 1181, 1587 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -657,63 +657,63 @@ blackstoneedge index: -1 coal1 rotate: false - xy: 1453, 1749 + xy: 1215, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal2 rotate: false - xy: 1487, 1783 + xy: 1249, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal3 rotate: false - xy: 1215, 1477 + xy: 1283, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper1 rotate: false - xy: 1453, 1579 + xy: 1521, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper2 rotate: false - xy: 1487, 1613 + xy: 1555, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper3 rotate: false - xy: 1521, 1647 + xy: 1589, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 1487, 1579 + xy: 1555, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 1521, 1613 + xy: 1589, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 1555, 1647 + xy: 1623, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -727,49 +727,49 @@ dirtedge index: -1 generic-cliff-edge rotate: false - xy: 1173, 1413 + xy: 1657, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 generic-cliff-edge-1 rotate: false - xy: 1555, 1613 + xy: 1691, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 generic-cliff-edge-2 rotate: false - xy: 1589, 1647 + xy: 1725, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 generic-cliff-side rotate: false - xy: 1623, 1681 + xy: 1453, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass1 rotate: false - xy: 1657, 1715 + xy: 1487, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass2 rotate: false - xy: 1691, 1749 + xy: 1521, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass3 rotate: false - xy: 1725, 1783 + xy: 1555, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -783,21 +783,21 @@ grassedge index: -1 ice1 rotate: false - xy: 1589, 1613 + xy: 1759, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice2 rotate: false - xy: 1623, 1647 + xy: 1487, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice3 rotate: false - xy: 1657, 1681 + xy: 1521, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -811,21 +811,21 @@ iceedge index: -1 icerock1 rotate: false - xy: 1521, 1511 + xy: 1691, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 1173, 1345 + xy: 1725, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lava rotate: false - xy: 1691, 1613 + xy: 1589, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -839,63 +839,63 @@ lavaedge index: -1 lead1 rotate: false - xy: 1759, 1681 + xy: 1657, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lead2 rotate: false - xy: 1793, 1715 + xy: 1691, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lead3 rotate: false - xy: 1827, 1749 + xy: 1725, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 1623, 1477 + xy: 1827, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 1657, 1511 + xy: 1861, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 1691, 1545 + xy: 1895, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 1725, 1579 + xy: 1929, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 1759, 1613 + xy: 1691, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 1793, 1647 + xy: 1725, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -909,49 +909,49 @@ metalflooredge index: -1 rock1 rotate: false - xy: 1989, 1409 + xy: 1165, 1281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rock2 rotate: false - xy: 1989, 1375 + xy: 1207, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rocks1 rotate: false - xy: 1207, 1341 + xy: 1241, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rocks2 rotate: false - xy: 1241, 1341 + xy: 1275, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand1 rotate: false - xy: 1343, 1341 + xy: 1377, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand2 rotate: false - xy: 1377, 1341 + xy: 1411, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand3 rotate: false - xy: 1411, 1341 + xy: 1445, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -965,49 +965,49 @@ sandedge index: -1 scrap1 rotate: false - xy: 1683, 1341 + xy: 1301, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap2 rotate: false - xy: 1717, 1341 + xy: 1335, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap3 rotate: false - xy: 1751, 1341 + xy: 1369, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrub rotate: false - xy: 1989, 1341 + xy: 260, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow1 rotate: false - xy: 1207, 1307 + xy: 777, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow2 rotate: false - xy: 1241, 1307 + xy: 811, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow3 rotate: false - xy: 1275, 1307 + xy: 811, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1028,49 +1028,49 @@ spaceedge index: -1 stone-cliff-edge rotate: false - xy: 1853, 1307 + xy: 701, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-cliff-edge-1 rotate: false - xy: 1887, 1307 + xy: 701, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-cliff-edge-2 rotate: false - xy: 1921, 1307 + xy: 701, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-cliff-side rotate: false - xy: 1955, 1307 + xy: 701, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone1 rotate: false - xy: 1751, 1307 + xy: 667, 108 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone2 rotate: false - xy: 1785, 1307 + xy: 667, 74 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone3 rotate: false - xy: 1819, 1307 + xy: 701, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1091,70 +1091,70 @@ taredge index: -1 thorium1 rotate: false - xy: 851, 1025 + xy: 735, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 885, 1025 + xy: 735, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 975, 1149 + xy: 735, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 1009, 1157 + xy: 735, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 1009, 1123 + xy: 735, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 1049, 1223 + xy: 1623, 1379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-cliff-edge rotate: false - xy: 735, 106 + xy: 1955, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-cliff-edge-1 rotate: false - xy: 735, 72 + xy: 1989, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-cliff-edge-2 rotate: false - xy: 271, 76 + xy: 1649, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-cliff-side rotate: false - xy: 305, 77 + xy: 1683, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1166,23 +1166,30 @@ wateredge orig: 48, 48 offset: 0, 0 index: -1 +block-border + rotate: false + xy: 1293, 1817 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 block-middle rotate: false - xy: 1181, 1477 + xy: 1249, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 1181, 1477 + xy: 1249, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 1419, 1647 + xy: 1487, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1238,175 +1245,175 @@ rubble-3-1 index: -1 spawn rotate: false - xy: 1717, 1307 + xy: 667, 142 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 1215, 1511 + xy: 1283, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 1249, 1545 + xy: 1317, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 1249, 1545 + xy: 1317, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 1283, 1579 + xy: 1351, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 1317, 1613 + xy: 1385, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 1453, 1715 + xy: 1521, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1487, 1749 + xy: 1249, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 1521, 1783 + xy: 1283, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 1249, 1477 + xy: 1317, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 1283, 1511 + xy: 1351, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 1317, 1545 + xy: 1385, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 1351, 1579 + xy: 1419, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 1385, 1613 + xy: 1453, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 1453, 1681 + xy: 1521, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 1487, 1715 + xy: 1555, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 1521, 1749 + xy: 1283, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 1555, 1783 + xy: 1317, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 1283, 1477 + xy: 1351, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 1317, 1511 + xy: 1385, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 1351, 1545 + xy: 1419, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1589, 1477 + xy: 1793, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1657, 1545 + xy: 1861, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1691, 1579 + xy: 1895, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1725, 1613 + xy: 1623, 1481 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1434,84 +1441,84 @@ liquid-tank-top index: -1 mechanical-pump rotate: false - xy: 1861, 1749 + xy: 1759, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1547, 1375 + xy: 1207, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 1581, 1409 + xy: 1241, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1581, 1375 + xy: 1275, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1615, 1409 + xy: 1309, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1785, 1375 + xy: 1275, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1819, 1409 + xy: 1309, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1819, 1375 + xy: 1343, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 1853, 1409 + xy: 1377, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1853, 1375 + xy: 1411, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1887, 1409 + xy: 1445, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1887, 1375 + xy: 1479, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1588,7 +1595,7 @@ trident-ship-pad index: -1 battery rotate: false - xy: 1222, 1817 + xy: 1181, 1723 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1602,14 +1609,14 @@ battery-large index: -1 combustion-generator rotate: false - xy: 1249, 1511 + xy: 1317, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 1283, 1545 + xy: 1351, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1672,7 +1679,7 @@ fusion-reactor-top index: -1 power-node rotate: false - xy: 1717, 1409 + xy: 1513, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1686,28 +1693,28 @@ power-node-large index: -1 power-source rotate: false - xy: 1717, 1375 + xy: 1547, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1751, 1409 + xy: 1581, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 powerinfinite rotate: false - xy: 1751, 1375 + xy: 1207, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 powervoid rotate: false - xy: 1785, 1409 + xy: 1241, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1721,14 +1728,14 @@ rtg-generator index: -1 rtg-generator-top rotate: false - xy: 1309, 1341 + xy: 1343, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1445, 1307 + xy: 1009, 1157 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1924,49 +1931,49 @@ cultivator-top index: -1 incinerator rotate: false - xy: 1555, 1545 + xy: 1759, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1759, 1715 + xy: 1657, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1623, 1545 + xy: 1827, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lavasmelter rotate: false - xy: 1725, 1647 + xy: 1623, 1515 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1793, 1681 + xy: 1691, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1895, 1783 + xy: 1793, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 oilrefinery rotate: false - xy: 1657, 1477 + xy: 1895, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2008,14 +2015,14 @@ plastanium-compressor-top index: -1 pulverizer rotate: false - xy: 1921, 1409 + xy: 1513, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1921, 1375 + xy: 1547, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2029,14 +2036,14 @@ pyratite-mixer index: -1 separator rotate: false - xy: 1853, 1341 + xy: 1471, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1887, 1341 + xy: 1505, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2050,14 +2057,14 @@ silicon-smelter index: -1 smelter rotate: false - xy: 1173, 1311 + xy: 777, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solidifer rotate: false - xy: 1479, 1307 + xy: 1009, 1123 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2099,14 +2106,14 @@ launch-pad index: -1 sortedunloader rotate: false - xy: 1513, 1307 + xy: 1049, 1223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader rotate: false - xy: 735, 140 + xy: 1921, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2120,14 +2127,14 @@ vault index: -1 block-1 rotate: false - xy: 1528, 1817 + xy: 1225, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1-top rotate: false - xy: 1562, 1817 + xy: 1259, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2176,14 +2183,14 @@ block-4-top index: -1 arc rotate: false - xy: 260, 34 + xy: 1181, 1791 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 1188, 1817 + xy: 1181, 1757 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2197,7 +2204,7 @@ cyclone index: -1 duo rotate: false - xy: 1487, 1545 + xy: 1555, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2211,7 +2218,7 @@ fuse index: -1 hail rotate: false - xy: 1555, 1579 + xy: 1725, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2295,21 +2302,21 @@ salvo-panel-right index: -1 scatter rotate: false - xy: 1581, 1341 + xy: 1199, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scorch rotate: false - xy: 1615, 1341 + xy: 1233, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scorch-shoot rotate: false - xy: 1649, 1341 + xy: 1267, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2477,14 +2484,14 @@ reconstructor-open index: -1 repair-point rotate: false - xy: 1955, 1409 + xy: 1581, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 repair-point-turret rotate: false - xy: 1955, 1375 + xy: 1173, 1315 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2547,7 +2554,7 @@ wraith-factory-top-open index: -1 copper-wall rotate: false - xy: 1555, 1681 + xy: 1623, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2561,7 +2568,7 @@ copper-wall-large index: -1 deflector-wall rotate: false - xy: 1419, 1511 + xy: 1487, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2575,7 +2582,7 @@ deflector-wall-large index: -1 dense-alloy-wall rotate: false - xy: 1453, 1545 + xy: 1521, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2589,7 +2596,7 @@ dense-alloy-wall-large index: -1 door rotate: false - xy: 1419, 1477 + xy: 1487, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2610,14 +2617,14 @@ door-large-open index: -1 door-open rotate: false - xy: 1453, 1511 + xy: 1521, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1683, 1375 + xy: 1479, 1375 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2631,7 +2638,7 @@ phase-wall-large index: -1 surge-wall rotate: false - xy: 1989, 1307 + xy: 701, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2645,7 +2652,7 @@ surge-wall-large index: -1 thorium-wall rotate: false - xy: 975, 1115 + xy: 735, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2687,42 +2694,42 @@ bullet-back index: -1 casing rotate: false - xy: 1197, 1293 + xy: 801, 899 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 command-attack rotate: false - xy: 1317, 1579 + xy: 1385, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 command-idle rotate: false - xy: 1351, 1613 + xy: 1419, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 command-patrol rotate: false - xy: 1385, 1647 + xy: 1453, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 command-retreat rotate: false - xy: 1419, 1681 + xy: 1487, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 enemyarrow rotate: false - xy: 1181, 1447 + xy: 1623, 1685 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -2736,7 +2743,7 @@ error index: -1 laser rotate: false - xy: 1041, 1199 + xy: 843, 1001 size: 4, 48 orig: 4, 48 offset: 0, 0 @@ -2757,7 +2764,7 @@ laserfull index: -1 minelaser rotate: false - xy: 707, 579 + xy: 909, 1067 size: 4, 48 orig: 4, 48 offset: 0, 0 @@ -2771,21 +2778,21 @@ minelaser-end index: -1 missile rotate: false - xy: 629, 163 + xy: 629, 134 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 629, 125 + xy: 629, 96 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 654, 1864 + xy: 719, 353 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -2841,21 +2848,21 @@ shell-back index: -1 shot rotate: false - xy: 1955, 1341 + xy: 1573, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 transfer rotate: false - xy: 740, 665 + xy: 1041, 1199 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 735, 174 + xy: 1887, 1341 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2869,28 +2876,28 @@ transfer-end index: -1 blackstone-cliff-edge rotate: false - xy: 1392, 1817 + xy: 1181, 1553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone-cliff-edge-1 rotate: false - xy: 1426, 1817 + xy: 1181, 1519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone-cliff-edge-2 rotate: false - xy: 1460, 1817 + xy: 1181, 1485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blackstone-cliff-side rotate: false - xy: 1494, 1817 + xy: 1181, 1451 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2911,14 +2918,14 @@ block-icon-alpha-mech-pad index: -1 block-icon-arc rotate: false - xy: 1596, 1817 + xy: 1327, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-battery rotate: false - xy: 1630, 1817 + xy: 1361, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2939,14 +2946,14 @@ block-icon-biomattercompressor index: -1 block-icon-blackrock rotate: false - xy: 1664, 1817 + xy: 1395, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-blackstone rotate: false - xy: 1698, 1817 + xy: 1429, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2967,28 +2974,28 @@ block-icon-blast-mixer index: -1 block-icon-bridge-conduit rotate: false - xy: 1732, 1817 + xy: 1463, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-bridge-conveyor rotate: false - xy: 1766, 1817 + xy: 1497, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-combustion-generator rotate: false - xy: 1800, 1817 + xy: 1531, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-conduit rotate: false - xy: 1834, 1817 + xy: 1565, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3002,14 +3009,14 @@ block-icon-container index: -1 block-icon-conveyor rotate: false - xy: 1868, 1817 + xy: 1599, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-copper-wall rotate: false - xy: 1902, 1817 + xy: 1633, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3065,14 +3072,14 @@ block-icon-dart-ship-pad index: -1 block-icon-deepwater rotate: false - xy: 1936, 1817 + xy: 1667, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater rotate: false - xy: 1936, 1817 + xy: 1667, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3086,7 +3093,7 @@ block-icon-delta-mech-pad index: -1 block-icon-dirt rotate: false - xy: 1970, 1817 + xy: 1701, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3100,7 +3107,7 @@ block-icon-distributor index: -1 block-icon-door rotate: false - xy: 2004, 1817 + xy: 1735, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3114,7 +3121,7 @@ block-icon-door-large index: -1 block-icon-duo rotate: false - xy: 1181, 1783 + xy: 1769, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3163,49 +3170,49 @@ block-icon-glaive-ship-pad index: -1 block-icon-grass rotate: false - xy: 1181, 1749 + xy: 1803, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-hail rotate: false - xy: 1215, 1783 + xy: 1837, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-ice rotate: false - xy: 1181, 1715 + xy: 1871, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-icerock rotate: false - xy: 1215, 1749 + xy: 1905, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-incinerator rotate: false - xy: 1249, 1783 + xy: 1939, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-item-source rotate: false - xy: 1181, 1681 + xy: 1973, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-item-void rotate: false - xy: 1215, 1715 + xy: 2007, 1817 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3219,7 +3226,7 @@ block-icon-javelin-ship-pad index: -1 block-icon-junction rotate: false - xy: 1249, 1749 + xy: 1215, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3247,21 +3254,21 @@ block-icon-launch-pad index: -1 block-icon-liquid-junction rotate: false - xy: 1283, 1783 + xy: 1215, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-liquid-router rotate: false - xy: 1181, 1647 + xy: 1249, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-liquid-source rotate: false - xy: 1215, 1681 + xy: 1215, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3289,7 +3296,7 @@ block-icon-mechanical-drill index: -1 block-icon-mechanical-pump rotate: false - xy: 1249, 1715 + xy: 1249, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3303,7 +3310,7 @@ block-icon-meltdown index: -1 block-icon-melter rotate: false - xy: 1283, 1749 + xy: 1283, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3317,7 +3324,7 @@ block-icon-mend-projector index: -1 block-icon-metalfloor rotate: false - xy: 1317, 1783 + xy: 1215, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3345,7 +3352,7 @@ block-icon-overdrive-projector index: -1 block-icon-overflow-gate rotate: false - xy: 1181, 1613 + xy: 1249, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3359,21 +3366,21 @@ block-icon-phantom-factory index: -1 block-icon-phase-conduit rotate: false - xy: 1215, 1647 + xy: 1283, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-phase-conveyor rotate: false - xy: 1249, 1681 + xy: 1317, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-phase-wall rotate: false - xy: 1283, 1715 + xy: 1215, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3415,7 +3422,7 @@ block-icon-pneumatic-drill index: -1 block-icon-power-node rotate: false - xy: 1317, 1749 + xy: 1249, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3429,28 +3436,28 @@ block-icon-power-node-large index: -1 block-icon-power-source rotate: false - xy: 1351, 1783 + xy: 1283, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-power-void rotate: false - xy: 1181, 1579 + xy: 1317, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-pulse-conduit rotate: false - xy: 1215, 1613 + xy: 1351, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-pulverizer rotate: false - xy: 1249, 1647 + xy: 1215, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3471,7 +3478,7 @@ block-icon-reconstructor index: -1 block-icon-repair-point rotate: false - xy: 1283, 1681 + xy: 1249, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3492,14 +3499,14 @@ block-icon-ripple index: -1 block-icon-rock rotate: false - xy: 1317, 1715 + xy: 1283, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-rocks rotate: false - xy: 1351, 1749 + xy: 1317, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3513,7 +3520,7 @@ block-icon-rotary-pump index: -1 block-icon-router rotate: false - xy: 1385, 1783 + xy: 1351, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3534,7 +3541,7 @@ block-icon-salvo index: -1 block-icon-sand rotate: false - xy: 1181, 1545 + xy: 1385, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3604,21 +3611,21 @@ block-icon-sorter index: -1 block-icon-space rotate: false - xy: 1181, 1511 + xy: 1215, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 space rotate: false - xy: 1181, 1511 + xy: 1215, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-spawn rotate: false - xy: 1215, 1545 + xy: 1249, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3639,14 +3646,14 @@ block-icon-spirit-factory index: -1 block-icon-stone rotate: false - xy: 1249, 1579 + xy: 1283, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icon-surge-wall rotate: false - xy: 1283, 1613 + xy: 1317, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3667,14 +3674,14 @@ block-icon-swarmer index: -1 block-icon-tar rotate: false - xy: 1317, 1647 + xy: 1351, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar rotate: false - xy: 1317, 1647 + xy: 1351, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3709,7 +3716,7 @@ block-icon-thorium-reactor index: -1 block-icon-thorium-wall rotate: false - xy: 1351, 1681 + xy: 1385, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3730,7 +3737,7 @@ block-icon-titan-factory index: -1 block-icon-titanium-conveyor rotate: false - xy: 1385, 1715 + xy: 1419, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3751,7 +3758,7 @@ block-icon-turbine-generator index: -1 block-icon-unloader rotate: false - xy: 1419, 1749 + xy: 1453, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3765,14 +3772,14 @@ block-icon-vault index: -1 block-icon-water rotate: false - xy: 1453, 1783 + xy: 1215, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water rotate: false - xy: 1453, 1783 + xy: 1215, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3800,112 +3807,112 @@ block-icon-wraith-factory index: -1 deepwater-cliff-edge rotate: false - xy: 1589, 1715 + xy: 1657, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-cliff-edge-1 rotate: false - xy: 1623, 1749 + xy: 1385, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-cliff-edge-2 rotate: false - xy: 1657, 1783 + xy: 1419, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-cliff-side rotate: false - xy: 1385, 1477 + xy: 1453, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt-cliff-edge rotate: false - xy: 1589, 1681 + xy: 1657, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt-cliff-edge-1 rotate: false - xy: 1623, 1715 + xy: 1691, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt-cliff-edge-2 rotate: false - xy: 1657, 1749 + xy: 1419, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dirt-cliff-side rotate: false - xy: 1691, 1783 + xy: 1453, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-cliff-edge rotate: false - xy: 1453, 1477 + xy: 1589, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-cliff-edge-1 rotate: false - xy: 1487, 1511 + xy: 1623, 1651 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-cliff-edge-2 rotate: false - xy: 1521, 1545 + xy: 1657, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-cliff-side rotate: false - xy: 1173, 1379 + xy: 1691, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-cliff-edge rotate: false - xy: 1691, 1715 + xy: 1555, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-cliff-edge-1 rotate: false - xy: 1725, 1749 + xy: 1589, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-cliff-edge-2 rotate: false - xy: 1759, 1783 + xy: 1623, 1617 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-cliff-side rotate: false - xy: 1487, 1477 + xy: 1657, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3968,406 +3975,406 @@ mech-icon-trident-ship index: -1 metalfloor-cliff-edge rotate: false - xy: 1827, 1681 + xy: 1759, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor-cliff-edge-1 rotate: false - xy: 1861, 1715 + xy: 1793, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor-cliff-edge-2 rotate: false - xy: 1895, 1749 + xy: 1827, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metalfloor-cliff-side rotate: false - xy: 1929, 1783 + xy: 1861, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-blackstone1 rotate: false - xy: 1691, 1511 + xy: 1929, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-blackstone2 rotate: false - xy: 1725, 1545 + xy: 1963, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-blackstone3 rotate: false - xy: 1759, 1579 + xy: 1725, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-grass1 rotate: false - xy: 1793, 1613 + xy: 1759, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-grass2 rotate: false - xy: 1827, 1647 + xy: 1793, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-grass3 rotate: false - xy: 1861, 1681 + xy: 1827, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-ice1 rotate: false - xy: 1895, 1715 + xy: 1861, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-ice2 rotate: false - xy: 1929, 1749 + xy: 1895, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-ice3 rotate: false - xy: 1963, 1783 + xy: 1929, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-sand1 rotate: false - xy: 1691, 1477 + xy: 1963, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-sand2 rotate: false - xy: 1725, 1511 + xy: 1997, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-sand3 rotate: false - xy: 1759, 1545 + xy: 1759, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-snow1 rotate: false - xy: 1793, 1579 + xy: 1793, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-snow2 rotate: false - xy: 1827, 1613 + xy: 1827, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-snow3 rotate: false - xy: 1861, 1647 + xy: 1861, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-stone1 rotate: false - xy: 1895, 1681 + xy: 1895, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-stone2 rotate: false - xy: 1929, 1715 + xy: 1929, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal-stone3 rotate: false - xy: 1963, 1749 + xy: 1963, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-blackstone1 rotate: false - xy: 1997, 1783 + xy: 1997, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-blackstone2 rotate: false - xy: 1725, 1477 + xy: 1793, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-blackstone3 rotate: false - xy: 1759, 1511 + xy: 1827, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-grass1 rotate: false - xy: 1793, 1545 + xy: 1861, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-grass2 rotate: false - xy: 1827, 1579 + xy: 1895, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-grass3 rotate: false - xy: 1861, 1613 + xy: 1929, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-ice1 rotate: false - xy: 1895, 1647 + xy: 1963, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-ice2 rotate: false - xy: 1929, 1681 + xy: 1997, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-ice3 rotate: false - xy: 1963, 1715 + xy: 1827, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-sand1 rotate: false - xy: 1997, 1749 + xy: 1861, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-sand2 rotate: false - xy: 1759, 1477 + xy: 1895, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-sand3 rotate: false - xy: 1793, 1511 + xy: 1929, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-snow1 rotate: false - xy: 1827, 1545 + xy: 1963, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-snow2 rotate: false - xy: 1861, 1579 + xy: 1997, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-snow3 rotate: false - xy: 1895, 1613 + xy: 1861, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-stone1 rotate: false - xy: 1929, 1647 + xy: 1895, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-stone2 rotate: false - xy: 1963, 1681 + xy: 1929, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper-stone3 rotate: false - xy: 1997, 1715 + xy: 1963, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-blackstone1 rotate: false - xy: 1793, 1477 + xy: 1997, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-blackstone2 rotate: false - xy: 1827, 1511 + xy: 1895, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-blackstone3 rotate: false - xy: 1861, 1545 + xy: 1929, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-grass1 rotate: false - xy: 1895, 1579 + xy: 1963, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-grass2 rotate: false - xy: 1929, 1613 + xy: 1997, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-grass3 rotate: false - xy: 1963, 1647 + xy: 1929, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-ice1 rotate: false - xy: 1997, 1681 + xy: 1963, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-ice2 rotate: false - xy: 1827, 1477 + xy: 1997, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-ice3 rotate: false - xy: 1861, 1511 + xy: 1963, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-sand1 rotate: false - xy: 1895, 1545 + xy: 1997, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-sand2 rotate: false - xy: 1929, 1579 + xy: 1997, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-sand3 rotate: false - xy: 1963, 1613 + xy: 1657, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-snow1 rotate: false - xy: 1997, 1647 + xy: 1691, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-snow2 rotate: false - xy: 1861, 1477 + xy: 1725, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-snow3 rotate: false - xy: 1895, 1511 + xy: 1759, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-stone1 rotate: false - xy: 1929, 1545 + xy: 1793, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-stone2 rotate: false - xy: 1963, 1579 + xy: 1827, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead-stone3 rotate: false - xy: 1997, 1613 + xy: 1861, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4381,483 +4388,483 @@ ore-scrap-blackstone1 index: -1 ore-scrap-blackstone2 rotate: false - xy: 1929, 1511 + xy: 1929, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-blackstone3 rotate: false - xy: 1963, 1545 + xy: 1963, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-grass1 rotate: false - xy: 1997, 1579 + xy: 1997, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-grass2 rotate: false - xy: 1929, 1477 + xy: 1215, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-grass3 rotate: false - xy: 1963, 1511 + xy: 1249, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-ice1 rotate: false - xy: 1997, 1545 + xy: 1283, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-ice2 rotate: false - xy: 1963, 1477 + xy: 1317, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-ice3 rotate: false - xy: 1997, 1511 + xy: 1351, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-sand1 rotate: false - xy: 1997, 1477 + xy: 1385, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-sand2 rotate: false - xy: 1215, 1443 + xy: 1419, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-sand3 rotate: false - xy: 1249, 1443 + xy: 1453, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-snow1 rotate: false - xy: 1283, 1443 + xy: 1487, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-snow2 rotate: false - xy: 1317, 1443 + xy: 1521, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-snow3 rotate: false - xy: 1351, 1443 + xy: 1555, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-stone1 rotate: false - xy: 1385, 1443 + xy: 1589, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-stone2 rotate: false - xy: 1419, 1443 + xy: 1623, 1447 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap-stone3 rotate: false - xy: 1453, 1443 + xy: 1657, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-blackstone1 rotate: false - xy: 1487, 1443 + xy: 1691, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-blackstone2 rotate: false - xy: 1521, 1443 + xy: 1725, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-blackstone3 rotate: false - xy: 1555, 1443 + xy: 1759, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-grass1 rotate: false - xy: 1589, 1443 + xy: 1793, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-grass2 rotate: false - xy: 1623, 1443 + xy: 1827, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-grass3 rotate: false - xy: 1657, 1443 + xy: 1861, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-ice1 rotate: false - xy: 1691, 1443 + xy: 1895, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-ice2 rotate: false - xy: 1725, 1443 + xy: 1929, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-ice3 rotate: false - xy: 1759, 1443 + xy: 1963, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-sand1 rotate: false - xy: 1793, 1443 + xy: 1997, 1443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-sand2 rotate: false - xy: 1827, 1443 + xy: 1181, 1417 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-sand3 rotate: false - xy: 1861, 1443 + xy: 1173, 1383 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-snow1 rotate: false - xy: 1895, 1443 + xy: 1173, 1349 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-snow2 rotate: false - xy: 1929, 1443 + xy: 1215, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-snow3 rotate: false - xy: 1963, 1443 + xy: 1249, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-stone1 rotate: false - xy: 1997, 1443 + xy: 1283, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-stone2 rotate: false - xy: 1207, 1409 + xy: 1317, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium-stone3 rotate: false - xy: 1207, 1375 + xy: 1351, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-blackstone1 rotate: false - xy: 1241, 1409 + xy: 1385, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-blackstone2 rotate: false - xy: 1241, 1375 + xy: 1419, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-blackstone3 rotate: false - xy: 1275, 1409 + xy: 1453, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-grass1 rotate: false - xy: 1275, 1375 + xy: 1487, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-grass2 rotate: false - xy: 1309, 1409 + xy: 1521, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-grass3 rotate: false - xy: 1309, 1375 + xy: 1555, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-ice1 rotate: false - xy: 1343, 1409 + xy: 1589, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-ice2 rotate: false - xy: 1343, 1375 + xy: 1623, 1413 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-ice3 rotate: false - xy: 1377, 1409 + xy: 1657, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-sand1 rotate: false - xy: 1377, 1375 + xy: 1691, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-sand2 rotate: false - xy: 1411, 1409 + xy: 1725, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-sand3 rotate: false - xy: 1411, 1375 + xy: 1759, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-snow1 rotate: false - xy: 1445, 1409 + xy: 1793, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-snow2 rotate: false - xy: 1445, 1375 + xy: 1827, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-snow3 rotate: false - xy: 1479, 1409 + xy: 1861, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-stone1 rotate: false - xy: 1479, 1375 + xy: 1895, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-stone2 rotate: false - xy: 1513, 1409 + xy: 1929, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium-stone3 rotate: false - xy: 1513, 1375 + xy: 1963, 1409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-cliff-edge rotate: false - xy: 1445, 1341 + xy: 1479, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-cliff-edge-1 rotate: false - xy: 1479, 1341 + xy: 1513, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-cliff-edge-2 rotate: false - xy: 1513, 1341 + xy: 1547, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-cliff-side rotate: false - xy: 1547, 1341 + xy: 1581, 1307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-cliff-edge rotate: false - xy: 1309, 1307 + xy: 851, 1025 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-cliff-edge-1 rotate: false - xy: 1343, 1307 + xy: 885, 1025 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-cliff-edge-2 rotate: false - xy: 1377, 1307 + xy: 975, 1149 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-cliff-side rotate: false - xy: 1411, 1307 + xy: 975, 1115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 space-cliff-edge rotate: false - xy: 1581, 1307 + xy: 667, 278 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 space-cliff-edge-1 rotate: false - xy: 1615, 1307 + xy: 667, 244 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 space-cliff-edge-2 rotate: false - xy: 1649, 1307 + xy: 667, 210 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 space-cliff-side rotate: false - xy: 1683, 1307 + xy: 667, 176 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-cliff-edge rotate: false - xy: 777, 951 + xy: 701, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-cliff-edge-1 rotate: false - xy: 777, 917 + xy: 701, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-cliff-edge-2 rotate: false - xy: 811, 959 + xy: 735, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-cliff-side rotate: false - xy: 811, 925 + xy: 735, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4920,154 +4927,154 @@ unit-icon-wraith index: -1 item-biomatter rotate: false - xy: 1589, 1579 + xy: 1793, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1623, 1613 + xy: 1521, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1657, 1647 + xy: 1555, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1691, 1681 + xy: 1589, 1545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-dense-alloy rotate: false - xy: 1725, 1715 + xy: 1623, 1583 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 1759, 1749 + xy: 1657, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1793, 1783 + xy: 1691, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1521, 1477 + xy: 1725, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 1555, 1511 + xy: 1759, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1589, 1545 + xy: 1793, 1749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1623, 1579 + xy: 1827, 1783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1657, 1613 + xy: 1555, 1477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1691, 1647 + xy: 1589, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1725, 1681 + xy: 1623, 1549 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-stone rotate: false - xy: 1793, 1749 + xy: 1691, 1613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1827, 1783 + xy: 1725, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1555, 1477 + xy: 1759, 1681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1589, 1511 + xy: 1793, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1861, 1783 + xy: 1759, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1623, 1511 + xy: 1827, 1715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1759, 1647 + xy: 1657, 1511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1827, 1715 + xy: 1725, 1579 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5214,7 +5221,7 @@ circle index: -1 clear rotate: false - xy: 629, 93 + xy: 258, 1825 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -5308,7 +5315,7 @@ button-right-over index: -1 button-select rotate: false - xy: 2023, 1417 + xy: 2023, 1349 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -5316,28 +5323,28 @@ button-select index: -1 check-off rotate: false - xy: 401, 77 + xy: 1779, 1307 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 431, 77 + xy: 1809, 1307 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 461, 77 + xy: 1839, 1307 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 491, 77 + xy: 1869, 1307 size: 28, 32 orig: 28, 32 offset: 0, 0 @@ -5349,6 +5356,14 @@ clear orig: 10, 10 offset: 0, 0 index: -1 +content-background + rotate: false + xy: 629, 172 + size: 36, 27 + split: 12, 12, 12, 12 + orig: 36, 27 + offset: 0, 0 + index: -1 cursor rotate: false xy: 771, 921 @@ -5365,7 +5380,7 @@ discord-banner index: -1 empty-sector rotate: false - xy: 1521, 1579 + xy: 1589, 1647 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5407,35 +5422,35 @@ icon-liquid index: -1 icon-power rotate: false - xy: 222, 1759 + xy: 1083, 1239 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-production rotate: false - xy: 539, 93 + xy: 711, 634 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-turret rotate: false - xy: 575, 93 + xy: 39, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 593, 93 + xy: 1935, 1323 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-upgrade rotate: false - xy: 771, 725 + xy: 57, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5470,7 +5485,7 @@ icon-admin index: -1 icon-admin-small rotate: false - xy: 660, 1994 + xy: 1207, 1409 size: 6, 6 orig: 6, 6 offset: 0, 0 @@ -5533,7 +5548,7 @@ icon-back index: -1 icon-ban rotate: false - xy: 1083, 1223 + xy: 1183, 1265 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5575,49 +5590,49 @@ icon-copy index: -1 icon-cursor rotate: false - xy: 2031, 1445 + xy: 245, 560 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-dev-builds rotate: false - xy: 521, 77 + xy: 278, 18 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 537, 77 + xy: 1083, 1223 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 553, 77 + xy: 1899, 1307 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 569, 77 + xy: 1971, 1325 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 585, 77 + xy: 1915, 1307 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-egg rotate: false - xy: 601, 77 + xy: 1987, 1325 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5638,7 +5653,7 @@ icon-eraser index: -1 icon-exit rotate: false - xy: 789, 799 + xy: 1931, 1307 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5659,7 +5674,7 @@ icon-file-image index: -1 icon-file-text rotate: false - xy: 789, 783 + xy: 2003, 1325 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5673,7 +5688,7 @@ icon-fill index: -1 icon-floppy rotate: false - xy: 789, 767 + xy: 1947, 1307 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5687,14 +5702,14 @@ icon-floppy-16 index: -1 icon-folder rotate: false - xy: 789, 751 + xy: 297, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 789, 735 + xy: 313, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5708,14 +5723,14 @@ icon-generated index: -1 icon-github rotate: false - xy: 617, 77 + xy: 297, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 633, 80 + xy: 329, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -5729,56 +5744,56 @@ icon-grid index: -1 icon-hold rotate: false - xy: 245, 560 + xy: 1183, 1253 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 1165, 1283 + xy: 521, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 649, 80 + xy: 313, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 729, 636 + xy: 345, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 877, 981 + xy: 505, 83 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 801, 901 + xy: 329, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-item rotate: false - xy: 891, 997 + xy: 606, 1832 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-items-none rotate: false - xy: 909, 1095 + xy: 2031, 1375 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -5792,84 +5807,84 @@ icon-line index: -1 icon-link rotate: false - xy: 801, 885 + xy: 361, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-liquid-small rotate: false - xy: 907, 1013 + xy: 533, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-load rotate: false - xy: 801, 869 + xy: 345, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 204, 1759 + xy: 2031, 1439 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 636, 1852 + xy: 2031, 1421 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 260, 16 + xy: 2031, 1403 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-locked rotate: false - xy: 1083, 1239 + xy: 2031, 1385 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-logic rotate: false - xy: 845, 933 + xy: 618, 1832 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-map rotate: false - xy: 801, 853 + xy: 377, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 861, 949 + xy: 545, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 521, 93 + xy: 701, 341 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-missing rotate: false - xy: 606, 1832 + xy: 557, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -5883,287 +5898,287 @@ icon-mission-background index: -1 icon-mission-battle rotate: false - xy: 1177, 1283 + xy: 569, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-mission-defense rotate: false - xy: 877, 969 + xy: 581, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-mission-done rotate: false - xy: 618, 1832 + xy: 593, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-none rotate: false - xy: 210, 4 + xy: 605, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-nullitem rotate: false - xy: 1207, 1297 + xy: 811, 915 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-paste rotate: false - xy: 771, 797 + xy: 204, 1759 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 222, 4 + xy: 617, 99 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 711, 634 + xy: 636, 1852 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 801, 837 + xy: 361, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 21, 3 + xy: 260, 16 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 234, 4 + xy: 729, 640 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 801, 821 + xy: 393, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 246, 4 + xy: 297, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power-small rotate: false - xy: 258, 4 + xy: 309, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 789, 719 + xy: 377, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 771, 779 + xy: 1899, 1323 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 1165, 1295 + xy: 409, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 1181, 1295 + xy: 393, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 39, 3 + xy: 771, 760 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 843, 1009 + xy: 425, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 843, 993 + xy: 409, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 859, 1009 + xy: 441, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 859, 993 + xy: 425, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 845, 977 + xy: 457, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 240, 1759 + xy: 21, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 557, 93 + xy: 222, 1759 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 270, 4 + xy: 321, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 771, 761 + xy: 1917, 1323 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 875, 1009 + xy: 441, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 282, 4 + xy: 333, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 909, 1105 + xy: 345, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 845, 961 + xy: 473, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 57, 3 + xy: 771, 742 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 875, 993 + xy: 457, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 861, 977 + xy: 489, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 771, 743 + xy: 240, 1759 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-unlocked rotate: false - xy: 611, 93 + xy: 771, 724 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-unlocks rotate: false - xy: 891, 1009 + xy: 473, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 845, 945 + xy: 505, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 278, 16 + xy: 1953, 1323 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 861, 961 + xy: 489, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -6177,7 +6192,7 @@ info-banner index: -1 inventory rotate: false - xy: 2023, 1375 + xy: 2023, 1307 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -6192,7 +6207,7 @@ logotext index: -1 pane rotate: false - xy: 687, 359 + xy: 1145, 1252 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -6200,7 +6215,7 @@ pane index: -1 pane-2 rotate: false - xy: 629, 96 + xy: 687, 359 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -6208,7 +6223,7 @@ pane-2 index: -1 scroll rotate: false - xy: 2023, 1296 + xy: 771, 778 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -6216,7 +6231,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 725, 344 + xy: 1188, 1825 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -6232,7 +6247,7 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 2023, 1333 + xy: 271, 68 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -6240,49 +6255,49 @@ scroll-knob-vertical-black index: -1 sector-edge rotate: false - xy: 1785, 1341 + xy: 1403, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sector-select rotate: false - xy: 1819, 1341 + xy: 1437, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 selection rotate: false - xy: 258, 1825 + xy: 258, 1822 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 258, 1815 + xy: 258, 1812 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 339, 71 + xy: 1717, 1301 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 370, 71 + xy: 1748, 1301 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 370, 71 + xy: 1748, 1301 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -6296,7 +6311,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1145, 1252 + xy: 725, 341 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 2441d0404b..4ac1df8ee4 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/src/io/anuke/mindustry/content/TechTree.java b/core/src/io/anuke/mindustry/content/TechTree.java new file mode 100644 index 0000000000..2d64c911f3 --- /dev/null +++ b/core/src/io/anuke/mindustry/content/TechTree.java @@ -0,0 +1,56 @@ +package io.anuke.mindustry.content; + +import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.ContentList; +import io.anuke.mindustry.type.ItemStack; + +import static io.anuke.mindustry.type.ItemStack.with; + +public class TechTree implements ContentList{ + public static TechNode root; + + @Override + public void load(){ + root = new TechNode(Items.copper, with(), + new TechNode(Blocks.copperWall, with(Items.copper, 100), + new TechNode(Blocks.copperWallLarge, with(Items.copper, 100)) + ), + + new TechNode(Blocks.conveyor, with(Items.copper, 10), + new TechNode(Blocks.router, with(Items.copper, 10), + new TechNode(Blocks.distributor, with(Items.copper, 10)), + new TechNode(Blocks.overflowGate, with(Items.copper, 10)), + new TechNode(Blocks.sorter, with(Items.copper, 10)) + ), + new TechNode(Blocks.junction, with(Items.copper, 10)), + new TechNode(Blocks.itemBridge, with(Items.copper, 10)) + ), + + new TechNode(Items.lead, with(), + new TechNode(Items.metaglass, with(), + new TechNode(Blocks.conduit, with(Items.metaglass, 10)), + new TechNode(Blocks.liquidJunction, with(Items.metaglass, 10)), + new TechNode(Blocks.liquidRouter, with(Items.metaglass, 10), + new TechNode(Blocks.liquidTank, with(Items.metaglass, 10)) + ) + ) + ) + ); + } + + public static class TechNode{ + public final Content content; + public final ItemStack[] requirements; + public final TechNode[] children; + public TechNode parent; + + TechNode(Content content, ItemStack[] requirements, TechNode... children){ + this.content = content; + this.requirements = requirements; + this.children = children; + for(TechNode node : children){ + node.parent = this; + } + } + } +} diff --git a/core/src/io/anuke/mindustry/core/ContentLoader.java b/core/src/io/anuke/mindustry/core/ContentLoader.java index eec715bb6d..ed9677dfa7 100644 --- a/core/src/io/anuke/mindustry/core/ContentLoader.java +++ b/core/src/io/anuke/mindustry/core/ContentLoader.java @@ -45,6 +45,7 @@ public class ContentLoader{ new UnitTypes(), new Blocks(), new Recipes(), + new TechTree(), new Zones(), //these are not really content classes, but this makes initialization easier diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index b3f28917dd..299e53afe6 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -67,6 +67,7 @@ public class UI implements ApplicationListener{ public UnlocksDialog unlocks; public ContentInfoDialog content; public DeployDialog deploy; + public TechTreeDialog tech; public Cursor drillCursor, unloadCursor; @@ -177,6 +178,7 @@ public class UI implements ApplicationListener{ localplayers = new LocalPlayerDialog(); content = new ContentInfoDialog(); deploy = new DeployDialog(); + tech = new TechTreeDialog(); Group group = Core.scene.root; diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 3d426750f7..fc844f18bc 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -301,11 +301,6 @@ public class DesktopInput extends InputHandler{ return !controlling ? Core.input.mouseY() : controly; } - @Override - public boolean isCursorVisible(){ - return controlling; - } - @Override public void updateController(){ diff --git a/core/src/io/anuke/mindustry/ui/TreeLayout.java b/core/src/io/anuke/mindustry/ui/TreeLayout.java new file mode 100644 index 0000000000..0531222f10 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/TreeLayout.java @@ -0,0 +1,310 @@ + + +package io.anuke.mindustry.ui; + +import io.anuke.arc.collection.FloatArray; +import io.anuke.arc.math.geom.Rectangle; + +/** + * Algorithm taken from TreeLayout. + */ +public class TreeLayout{ + public TreeLocation rootLocation = TreeLocation.top; + public TreeAlignment alignment = TreeAlignment.awayFromRoot; + public float gapBetweenLevels = 10; + public float gapBetweenNodes = 10f; + + private final FloatArray sizeOfLevel = new FloatArray(); + private float boundsLeft = Float.MAX_VALUE; + private float boundsRight = Float.MIN_VALUE; + private float boundsTop = Float.MAX_VALUE; + private float boundsBottom = Float.MIN_VALUE; + + public void layout(TreeNode root){ + firstWalk(root, null); + calcSizeOfLevels(root, 0); + secondWalk(root, -root.prelim, 0, 0); + } + + private float getWidthOrHeightOfNode(TreeNode treeNode, boolean returnWidth){ + return returnWidth ? treeNode.width : treeNode.height; + } + + private float getNodeThickness(TreeNode treeNode){ + return getWidthOrHeightOfNode(treeNode, !isLevelChangeInYAxis()); + } + + private float getNodeSize(TreeNode treeNode){ + return getWidthOrHeightOfNode(treeNode, isLevelChangeInYAxis()); + } + + private boolean isLevelChangeInYAxis(){ + return rootLocation == TreeLocation.top || rootLocation == TreeLocation.bottom; + } + + private int getLevelChangeSign(){ + return rootLocation == TreeLocation.bottom || rootLocation == TreeLocation.right ? -1 : 1; + } + + private void updateBounds(TreeNode node, float centerX, float centerY){ + float width = node.width; + float height = node.height; + float left = centerX - width / 2; + float right = centerX + width / 2; + float top = centerY - height / 2; + float bottom = centerY + height / 2; + if(boundsLeft > left){ + boundsLeft = left; + } + if(boundsRight < right){ + boundsRight = right; + } + if(boundsTop > top){ + boundsTop = top; + } + if(boundsBottom < bottom){ + boundsBottom = bottom; + } + } + + public Rectangle getBounds(){ + return new Rectangle(0, 0, boundsRight - boundsLeft, boundsBottom - boundsTop); + } + + private void calcSizeOfLevels(TreeNode node, int level){ + float oldSize; + if(sizeOfLevel.size <= level){ + sizeOfLevel.add(0); + oldSize = 0; + }else{ + oldSize = sizeOfLevel.get(level); + } + + float size = getNodeThickness(node); + if(oldSize < size){ + sizeOfLevel.set(level, size); + } + + if(!node.isLeaf()){ + for(TreeNode child : node.children){ + calcSizeOfLevels(child, level + 1); + } + } + } + + public int getLevelCount(){ + return sizeOfLevel.size; + } + + public float getGapBetweenNodes(TreeNode a, TreeNode b){ + return gapBetweenNodes; + } + + public float getSizeOfLevel(int level){ + if(!(level >= 0)) throw new IllegalArgumentException("level must be >= 0"); + if(!(level < getLevelCount())) throw new IllegalArgumentException("level must be < levelCount"); + + return sizeOfLevel.get(level); + } + + private TreeNode getAncestor(TreeNode node){ + return node.ancestor != null ? node.ancestor : node; + } + + private float getDistance(TreeNode v, TreeNode w){ + float sizeOfNodes = getNodeSize(v) + getNodeSize(w); + + return sizeOfNodes / 2 + getGapBetweenNodes(v, w); + } + + private TreeNode nextLeft(TreeNode v){ + return v.isLeaf() ? v.thread : v.children[0]; + } + + private TreeNode nextRight(TreeNode v){ + return v.isLeaf() ? v.thread : v.children[v.children.length - 1]; + } + + private int getNumber(TreeNode node, TreeNode parentNode){ + if(node.number == -1){ + int number = 1; + for(TreeNode child : parentNode.children){ + child.number = number++; + } + } + return node.number; + } + + private TreeNode ancestor(TreeNode vIMinus, TreeNode parentOfV, TreeNode defaultAncestor){ + TreeNode ancestor = getAncestor(vIMinus); + return ancestor.parent == parentOfV ? ancestor : defaultAncestor; + } + + private void moveSubtree(TreeNode wMinus, TreeNode wPlus, TreeNode parent, float shift){ + int subtrees = getNumber(wPlus, parent) - getNumber(wMinus, parent); + wPlus.change = wPlus.change - shift / subtrees; + wPlus.shift = wPlus.shift + shift; + wMinus.change = wMinus.change + shift / subtrees; + wPlus.prelim = wPlus.prelim + shift; + wPlus.mode = wPlus.mode + shift; + } + + private TreeNode apportion(TreeNode v, TreeNode defaultAncestor, + TreeNode leftSibling, TreeNode parentOfV){ + if(leftSibling == null){ + return defaultAncestor; + } + + TreeNode vOPlus = v; + TreeNode vIPlus = v; + TreeNode vIMinus = leftSibling; + + TreeNode vOMinus = parentOfV.children[0]; + + float sIPlus = (vIPlus).mode; + float sOPlus = (vOPlus).mode; + float sIMinus = (vIMinus).mode; + float sOMinus = (vOMinus).mode; + + TreeNode nextRightVIMinus = nextRight(vIMinus); + TreeNode nextLeftVIPlus = nextLeft(vIPlus); + + while(nextRightVIMinus != null && nextLeftVIPlus != null){ + vIMinus = nextRightVIMinus; + vIPlus = nextLeftVIPlus; + vOMinus = nextLeft(vOMinus); + vOPlus = nextRight(vOPlus); + vOPlus.ancestor = v; + float shift = (vIMinus.prelim + sIMinus) + - (vIPlus.prelim + sIPlus) + + getDistance(vIMinus, vIPlus); + + if(shift > 0){ + moveSubtree(ancestor(vIMinus, parentOfV, defaultAncestor), + v, parentOfV, shift); + sIPlus = sIPlus + shift; + sOPlus = sOPlus + shift; + } + sIMinus += vIMinus.mode; + sIPlus += vIPlus.mode; + sOMinus += vOMinus.mode; + sOPlus += vOPlus.mode; + + nextRightVIMinus = nextRight(vIMinus); + nextLeftVIPlus = nextLeft(vIPlus); + } + + if(nextRightVIMinus != null && nextRight(vOPlus) == null){ + vOPlus.thread = nextRightVIMinus; + vOPlus.mode += sIMinus - sOPlus; + } + + if(nextLeftVIPlus != null && nextLeft(vOMinus) == null){ + vOMinus.thread = nextLeftVIPlus; + vOMinus.mode += sIPlus - sOMinus; + defaultAncestor = v; + } + return defaultAncestor; + } + + private void executeShifts(TreeNode v){ + float shift = 0; + float change = 0; + + for(int i = v.children.length - 1; i >= 0; i --){ + TreeNode w = v.children[i]; + change = change + w.change; + w.prelim += shift; + w.mode += shift; + shift += w.shift + change; + } + } + + private void firstWalk(TreeNode v, TreeNode leftSibling){ + if(v.isLeaf()){ + if(leftSibling != null){ + v.prelim = leftSibling.prelim + getDistance(v, leftSibling); + } + + }else{ + TreeNode defaultAncestor = v.children[0]; + TreeNode previousChild = null; + for(TreeNode w : v.children){ + firstWalk(w, previousChild); + defaultAncestor = apportion(w, defaultAncestor, previousChild, + v); + previousChild = w; + } + executeShifts(v); + float midpoint = (v.children[0].prelim + v.children[v.children.length-1].prelim) / 2f; + TreeNode w = leftSibling; + if(w != null){ + v.prelim = w.prelim + getDistance(v, w); + v.mode = v.prelim - midpoint; + }else{ + v.prelim = midpoint; + } + } + } + + private void secondWalk(TreeNode v, float m, int level, float levelStart){ + float levelChangeSign = getLevelChangeSign(); + boolean levelChangeOnYAxis = isLevelChangeInYAxis(); + float levelSize = getSizeOfLevel(level); + + float x = v.prelim + m; + + float y; + if(alignment == TreeAlignment.center){ + y = levelStart + levelChangeSign * (levelSize / 2); + }else if(alignment == TreeAlignment.towardsRoot){ + y = levelStart + levelChangeSign * (getNodeThickness(v) / 2); + }else{ + y = levelStart + levelSize - levelChangeSign + * (getNodeThickness(v) / 2); + } + + if(!levelChangeOnYAxis){ + float t = x; + x = y; + y = t; + } + + v.x = x; + v.y = y; + updateBounds(v, x, y); + + if(!v.isLeaf()){ + float nextLevelStart = levelStart + + (levelSize + gapBetweenLevels) + * levelChangeSign; + for(TreeNode w : v.children){ + secondWalk(w, m + v.mode, level + 1, nextLevelStart); + } + } + } + + public enum TreeLocation{ + top, left, bottom, right + } + + public enum TreeAlignment{ + center, towardsRoot, awayFromRoot + } + + public static class TreeNode{ + public float width, height, x, y; + + //should be initialized by user + public TreeNode[] children; + public TreeNode parent; + + private float mode, prelim, change, shift; + private int number = -1; + private TreeNode thread, ancestor; + + boolean isLeaf(){ + return children == null || children.length == 0; + } + } +} \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java index 84c00df328..19d2bebc43 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java @@ -26,6 +26,7 @@ public class DeployDialog extends FloatingDialog{ cont.clear(); addCloseButton(); + buttons.addButton("$techtree", () -> ui.tech.show()).size(200f, 60f); cont.stack(new Table(){{ top().left().margin(10); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java new file mode 100644 index 0000000000..b8f8b387a7 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java @@ -0,0 +1,107 @@ +package io.anuke.mindustry.ui.dialogs; + +import io.anuke.arc.Core; +import io.anuke.arc.collection.ObjectSet; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; +import io.anuke.arc.graphics.g2d.ScissorStack; +import io.anuke.arc.graphics.g2d.TextureRegion; +import io.anuke.arc.input.KeyCode; +import io.anuke.arc.math.geom.Rectangle; +import io.anuke.arc.scene.Element; +import io.anuke.arc.scene.event.InputEvent; +import io.anuke.arc.scene.event.InputListener; +import io.anuke.mindustry.content.TechTree; +import io.anuke.mindustry.content.TechTree.TechNode; +import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; +import io.anuke.mindustry.graphics.Palette; +import io.anuke.mindustry.ui.TreeLayout; +import io.anuke.mindustry.ui.TreeLayout.TreeNode; +import io.anuke.mindustry.world.Block; + +public class TechTreeDialog extends FloatingDialog{ + private TreeLayout layout; + private ObjectSet nodes = new ObjectSet<>(); + + public TechTreeDialog(){ + super("$techtree"); + + layout = new TreeLayout(); + layout.gapBetweenLevels = 60f; + layout.gapBetweenNodes = 40f; + layout.layout(new TechTreeNode(TechTree.root, null)); + + cont.add(new View()).grow(); + + addCloseButton(); + } + + class TechTreeNode extends TreeNode{ + final TechNode node; + + public TechTreeNode(TechNode node, TreeNode parent){ + this.node = node; + this.parent = parent; + this.width = this.height = 60f; + nodes.add(this); + if(node.children != null){ + children = new TechTreeNode[node.children.length]; + for(int i = 0; i < children.length; i++){ + children[i] = new TechTreeNode(node.children[i], this); + } + } + } + } + + class View extends Element{ + float panX = 0, panY = 0; + Rectangle clip = new Rectangle(); + + { + addListener(new InputListener(){ + @Override + public void touchDragged(InputEvent event, float x, float y, int pointer){ + super.touchDragged(event, x, y, pointer); + panX += Core.input.deltaX(pointer); + panY += Core.input.deltaY(pointer); + } + + @Override + public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){ + return true; + } + }); + } + + @Override + public void draw(){ + if(!ScissorStack.pushScissors(clip.set(x, y, width, height))){ + return; + } + + float offsetX = panX + width/2f + x, offsetY = panY + height/2f + y; + + Lines.stroke(3f, Palette.accent); + + for(TreeNode node : nodes){ + for(TreeNode child : node.children){ + Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY); + } + } + + Draw.color(); + + for(TechTreeNode node : nodes){ + Draw.drawable("content-background", node.x + offsetX - node.width/2f, node.y + offsetY - node.height/2f, node.width, node.height); + + Content content = node.node.content; + TextureRegion region = content instanceof Block ? ((Block)content).getEditorIcon() : + ((UnlockableContent)content).getContentIcon(); + Draw.rect(region, node.x + offsetX, node.y + offsetY, 8*3, 8*3); + } + + ScissorStack.popScissors(); + } + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/power/LiquidHeatGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/LiquidHeatGenerator.java index 658a6926dc..fd7a51833a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/LiquidHeatGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/LiquidHeatGenerator.java @@ -17,7 +17,7 @@ public class LiquidHeatGenerator extends ItemLiquidGenerator{ super.setStats(); stats.remove(BlockStat.basePowerGeneration); - // Right now, Lava is the only thing that can be used. + // right now, Lava is the only thing that can be used. stats.add(BlockStat.basePowerGeneration, powerProduction * getLiquidEfficiency(Liquids.slag) / maxLiquidGenerate * 60f, StatUnit.powerSecond); }