diff --git a/core/assets-raw/sprites/effects/minelaser-end.png b/core/assets-raw/sprites/effects/minelaser-end.png new file mode 100644 index 0000000000..7bfed103d6 Binary files /dev/null and b/core/assets-raw/sprites/effects/minelaser-end.png differ diff --git a/core/assets-raw/sprites/effects/minelaser.png b/core/assets-raw/sprites/effects/minelaser.png new file mode 100644 index 0000000000..b6c990e21e Binary files /dev/null and b/core/assets-raw/sprites/effects/minelaser.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 4e4c56ffa9..5b2f10e3f9 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,98 +13,98 @@ background index: -1 bridgeconduit rotate: false - xy: 698, 303 + xy: 685, 327 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-arrow rotate: false - xy: 698, 293 + xy: 686, 317 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-bridge rotate: false - xy: 698, 283 + xy: 686, 307 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-end rotate: false - xy: 658, 154 + xy: 686, 297 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor rotate: false - xy: 658, 144 + xy: 686, 287 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-arrow rotate: false - xy: 658, 134 + xy: 685, 277 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-bridge rotate: false - xy: 658, 124 + xy: 686, 267 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-end rotate: false - xy: 210, 8 + xy: 658, 154 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 481, 101 + xy: 857, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-top rotate: false - xy: 501, 101 + xy: 857, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduittunnel rotate: false - xy: 511, 101 + xy: 867, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyor rotate: false - xy: 521, 101 + xy: 877, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyormove rotate: false - xy: 531, 101 + xy: 867, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyortunnel rotate: false - xy: 541, 101 + xy: 877, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -132,98 +132,98 @@ core-top index: -1 junction rotate: false - xy: 688, 145 + xy: 310, 49 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit rotate: false - xy: 688, 135 + xy: 781, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-arrow rotate: false - xy: 688, 125 + xy: 441, 112 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-bridge rotate: false - xy: 551, 101 + xy: 441, 102 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-end rotate: false - xy: 551, 91 + xy: 441, 92 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor rotate: false - xy: 551, 81 + xy: 451, 108 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-arrow rotate: false - xy: 394, 85 + xy: 461, 108 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-bridge rotate: false - xy: 481, 71 + xy: 451, 98 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-end rotate: false - xy: 491, 71 + xy: 471, 108 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidjunction rotate: false - xy: 561, 103 + xy: 521, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter rotate: false - xy: 561, 93 + xy: 531, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-bottom rotate: false - xy: 561, 83 + xy: 541, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-liquid rotate: false - xy: 561, 73 + xy: 451, 88 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-top rotate: false - xy: 571, 106 + xy: 461, 88 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -251,84 +251,84 @@ liquidtank-top index: -1 multiplexer rotate: false - xy: 576, 188 + xy: 594, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 overflowgate rotate: false - xy: 591, 86 + xy: 551, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyor rotate: false - xy: 591, 76 + xy: 581, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyormove rotate: false - xy: 601, 86 + xy: 591, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-bottom rotate: false - xy: 611, 86 + xy: 631, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-top rotate: false - xy: 621, 96 + xy: 641, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 651, 80 + xy: 561, 77 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sortedunloader rotate: false - xy: 284, 37 + xy: 655, 225 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 294, 37 + xy: 675, 245 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 801, 443 + xy: 655, 215 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 811, 443 + xy: 675, 235 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 821, 443 + xy: 665, 225 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -342,7 +342,7 @@ teleporter-top index: -1 unloader rotate: false - xy: 869, 433 + xy: 320, 39 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -356,63 +356,63 @@ vault index: -1 weaponfactory rotate: false - xy: 626, 116 + xy: 554, 107 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blackrock1 rotate: false - xy: 313, 89 + xy: 334, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackrockshadow1 rotate: false - xy: 334, 91 + xy: 344, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone1 rotate: false - xy: 344, 91 + xy: 354, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone2 rotate: false - xy: 354, 91 + xy: 364, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone3 rotate: false - xy: 364, 91 + xy: 374, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock1 rotate: false - xy: 374, 91 + xy: 384, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock2 rotate: false - xy: 384, 91 + xy: 310, 79 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock3 rotate: false - xy: 312, 79 + xy: 309, 69 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -426,49 +426,49 @@ blackstoneedge index: -1 coal1 rotate: false - xy: 451, 108 + xy: 658, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 461, 108 + xy: 210, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 471, 108 + xy: 847, 431 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 431, 90 + xy: 877, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 451, 88 + xy: 887, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 461, 88 + xy: 897, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 471, 88 + xy: 887, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -482,35 +482,35 @@ dirtedge index: -1 grass1 rotate: false - xy: 441, 82 + xy: 927, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass2 rotate: false - xy: 451, 78 + xy: 917, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 461, 78 + xy: 927, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock1 rotate: false - xy: 471, 78 + xy: 937, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock2 rotate: false - xy: 481, 81 + xy: 927, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -524,441 +524,441 @@ grassedge index: -1 ice1 rotate: false - xy: 491, 81 + xy: 937, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice2 rotate: false - xy: 501, 81 + xy: 947, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 511, 81 + xy: 937, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iceedge rotate: false - xy: 264, 47 + xy: 280, 63 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 icerock1 rotate: false - xy: 521, 81 + xy: 947, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 531, 81 + xy: 957, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 541, 81 + xy: 947, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 541, 81 + xy: 947, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 694, 273 + xy: 957, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 694, 273 + xy: 957, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 693, 243 + xy: 967, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 693, 233 + xy: 977, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 693, 223 + xy: 967, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 501, 71 + xy: 461, 98 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavaedge rotate: false - xy: 278, 47 + xy: 296, 79 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 lead1 rotate: false - xy: 521, 71 + xy: 481, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead2 rotate: false - xy: 531, 71 + xy: 491, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 541, 71 + xy: 501, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 591, 106 + xy: 491, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 571, 86 + xy: 501, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 581, 96 + xy: 511, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 601, 106 + xy: 521, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 571, 76 + xy: 531, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 581, 86 + xy: 541, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalflooredge rotate: false - xy: 292, 47 + xy: 232, 47 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mossblock rotate: false - xy: 591, 96 + xy: 551, 97 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 611, 106 + xy: 561, 97 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oiledge rotate: false - xy: 648, 192 + xy: 246, 47 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 rock1 rotate: false - xy: 651, 100 + xy: 541, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 651, 90 + xy: 551, 77 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 404, 85 + xy: 591, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 414, 86 + xy: 601, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 571, 66 + xy: 611, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 581, 66 + xy: 621, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 591, 66 + xy: 631, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 601, 66 + xy: 641, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 648, 178 + xy: 260, 47 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shrub rotate: false - xy: 571, 56 + xy: 310, 29 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 581, 56 + xy: 290, 21 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 611, 56 + xy: 310, 9 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 621, 56 + xy: 655, 255 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 631, 56 + xy: 655, 245 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 641, 50 + xy: 665, 255 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 651, 50 + xy: 655, 235 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 264, 37 + xy: 675, 255 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 644, 122 + xy: 648, 192 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 space rotate: false - xy: 306, 39 + xy: 665, 235 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 spaceedge rotate: false - xy: 210, 18 + xy: 648, 178 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 stone1 rotate: false - xy: 799, 413 + xy: 481, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 809, 433 + xy: 491, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 809, 423 + xy: 501, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 819, 433 + xy: 511, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 809, 413 + xy: 521, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 805, 403 + xy: 531, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 650, 263 + xy: 644, 136 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 829, 423 + xy: 581, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 839, 433 + xy: 591, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 829, 413 + xy: 601, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 825, 403 + xy: 611, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 839, 423 + xy: 621, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 839, 413 + xy: 631, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 869, 423 + xy: 320, 9 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 655, 221 + xy: 668, 277 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -972,42 +972,42 @@ block-border index: -1 block-middle rotate: false - xy: 695, 323 + xy: 685, 347 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 695, 323 + xy: 685, 347 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 border rotate: false - xy: 698, 313 + xy: 685, 337 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 491, 101 + xy: 867, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-1 rotate: false - xy: 441, 92 + xy: 887, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-2 rotate: false - xy: 233, 109 + xy: 781, 411 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1028,7 +1028,7 @@ cross-4 index: -1 enemyspawn rotate: false - xy: 521, 91 + xy: 917, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1042,49 +1042,49 @@ nuclearreactor-shadow index: -1 place-arrow rotate: false - xy: 601, 96 + xy: 561, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 playerspawn rotate: false - xy: 621, 106 + xy: 571, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ripples rotate: false - xy: 686, 299 + xy: 297, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 rubble-1-0 rotate: false - xy: 576, 170 + xy: 594, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-1-1 rotate: false - xy: 594, 170 + xy: 612, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-0 rotate: false - xy: 612, 170 + xy: 630, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-1 rotate: false - xy: 630, 170 + xy: 572, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1105,14 +1105,14 @@ rubble-3-1 index: -1 shadow-1 rotate: false - xy: 681, 227 + xy: 530, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 shadow-2 rotate: false - xy: 783, 467 + xy: 106, 43 size: 18, 18 orig: 18, 18 offset: 0, 0 @@ -1140,7 +1140,7 @@ shadow-5 index: -1 shadow-round-1 rotate: false - xy: 681, 215 + xy: 542, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1161,14 +1161,14 @@ batterylarge index: -1 combustiongenerator rotate: false - xy: 451, 98 + xy: 847, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustiongenerator-top rotate: false - xy: 461, 98 + xy: 847, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1238,7 +1238,7 @@ largesolarpanel index: -1 liquidcombustiongenerator rotate: false - xy: 551, 71 + xy: 511, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1266,70 +1266,70 @@ nuclearreactor-lights index: -1 powerinfinite rotate: false - xy: 611, 96 + xy: 601, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernode rotate: false - xy: 631, 106 + xy: 611, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernodelarge rotate: false - xy: 554, 161 + xy: 554, 143 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powernodelarge-shadow rotate: false - xy: 466, 202 + xy: 783, 467 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 powervoid rotate: false - xy: 601, 76 + xy: 621, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator rotate: false - xy: 641, 70 + xy: 571, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator-top rotate: false - xy: 651, 70 + xy: 581, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldgenerator rotate: false - xy: 631, 66 + xy: 290, 31 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldprojector rotate: false - xy: 572, 152 + xy: 572, 134 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 solarpanel rotate: false - xy: 274, 37 + xy: 665, 245 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1350,7 +1350,7 @@ teleporter-top index: -1 thermalgenerator rotate: false - xy: 815, 403 + xy: 571, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1420,147 +1420,147 @@ centrifuge-liquid index: -1 cryofluidmixer-bottom rotate: false - xy: 214, 84 + xy: 287, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 214, 66 + xy: 305, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 214, 48 + xy: 214, 84 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator rotate: false - xy: 323, 101 + xy: 214, 66 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 341, 101 + xy: 214, 48 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 359, 101 + xy: 323, 101 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 extractor rotate: false - xy: 531, 91 + xy: 907, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fluxpump rotate: false - xy: 541, 91 + xy: 917, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 incinerator rotate: false - xy: 693, 253 + xy: 957, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill rotate: false - xy: 693, 213 + xy: 977, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-rotator rotate: false - xy: 220, 8 + xy: 987, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-rotator rotate: false - xy: 220, 8 + xy: 987, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-top rotate: false - xy: 704, 273 + xy: 977, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 678, 125 + xy: 290, 41 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 688, 155 + xy: 300, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserdrill rotate: false - xy: 963, 443 + xy: 981, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-rotator rotate: false - xy: 981, 443 + xy: 999, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-top rotate: false - xy: 999, 443 + xy: 576, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 lavasmelter rotate: false - xy: 511, 71 + xy: 471, 98 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 581, 106 + xy: 471, 88 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 571, 96 + xy: 481, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1623,7 +1623,7 @@ oilextractor-top index: -1 oilrefinery rotate: false - xy: 581, 76 + xy: 441, 82 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1658,203 +1658,203 @@ plasmadrill-top index: -1 plasticformer rotate: false - xy: 594, 188 + xy: 612, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 plasticformer-top rotate: false - xy: 612, 188 + xy: 630, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter rotate: false - xy: 630, 188 + xy: 558, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter-top rotate: false - xy: 558, 179 + xy: 554, 161 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter rotate: false - xy: 554, 143 + xy: 554, 125 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter-top rotate: false - xy: 554, 125 + xy: 576, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 siliconsmelter-top rotate: false - xy: 554, 125 + xy: 576, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 611, 76 + xy: 451, 78 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 621, 86 + xy: 461, 78 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump rotate: false - xy: 631, 96 + xy: 471, 78 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill rotate: false - xy: 621, 76 + xy: 481, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-rotator rotate: false - xy: 631, 86 + xy: 491, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-top rotate: false - xy: 631, 76 + xy: 501, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 611, 66 + xy: 220, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 621, 66 + xy: 280, 29 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 591, 56 + xy: 310, 19 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconsmelter rotate: false - xy: 572, 134 + xy: 590, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 smelter rotate: false - xy: 601, 56 + xy: 300, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill rotate: false - xy: 831, 443 + xy: 675, 225 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-rotator rotate: false - xy: 841, 443 + xy: 665, 215 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-top rotate: false - xy: 799, 433 + xy: 675, 215 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrill rotate: false - xy: 819, 423 + xy: 541, 71 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 829, 433 + xy: 551, 67 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill rotate: false - xy: 835, 403 + xy: 641, 70 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-top rotate: false - xy: 849, 433 + xy: 404, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 waterextractor rotate: false - xy: 608, 134 + xy: 626, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-liquid rotate: false - xy: 626, 152 + xy: 626, 134 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-rotator rotate: false - xy: 626, 134 + xy: 572, 116 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-top rotate: false - xy: 572, 116 + xy: 590, 116 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1910,7 +1910,7 @@ block-4-top index: -1 scatter-heat rotate: false - xy: 682, 275 + xy: 482, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1931,35 +1931,35 @@ arc-heat index: -1 crux rotate: false - xy: 251, 109 + xy: 999, 461 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-heat rotate: false - xy: 269, 109 + xy: 233, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-left rotate: false - xy: 287, 109 + xy: 251, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-right rotate: false - xy: 305, 109 + xy: 269, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 duo rotate: false - xy: 501, 91 + xy: 897, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1980,14 +1980,14 @@ spectre index: -1 lancer rotate: false - xy: 685, 333 + xy: 835, 405 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 686, 311 + xy: 286, 51 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2008,210 +2008,210 @@ ripple index: -1 scatter rotate: false - xy: 686, 287 + xy: 298, 55 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scatter-heat rotate: false - xy: 681, 263 + xy: 494, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch rotate: false - xy: 681, 251 + xy: 506, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch-shoot rotate: false - xy: 681, 239 + xy: 518, 111 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 swarmer rotate: false - xy: 590, 134 + xy: 608, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave rotate: false - xy: 590, 116 + xy: 608, 116 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 608, 116 + xy: 626, 116 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flierfactory rotate: false - xy: 522, 195 + xy: 486, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory rotate: false - xy: 522, 195 + xy: 486, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flierfactory-top rotate: false - xy: 482, 177 + xy: 504, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top rotate: false - xy: 482, 177 + xy: 504, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flierfactory-top-open rotate: false - xy: 482, 159 + xy: 522, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top-open rotate: false - xy: 482, 159 + xy: 522, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 repairpoint rotate: false - xy: 641, 100 + xy: 511, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint-turret rotate: false - xy: 641, 90 + xy: 521, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 resupplypoint rotate: false - xy: 641, 80 + xy: 531, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 compositewall rotate: false - xy: 471, 98 + xy: 857, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door rotate: false - xy: 481, 91 + xy: 897, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door-large rotate: false - xy: 377, 101 + xy: 341, 101 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 486, 195 + xy: 359, 101 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-open rotate: false - xy: 491, 91 + xy: 907, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall rotate: false - xy: 511, 91 + xy: 907, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall-large rotate: false - xy: 504, 195 + xy: 377, 101 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 ironwall rotate: false - xy: 703, 263 + xy: 987, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 799, 423 + xy: 394, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall-large rotate: false - xy: 590, 152 + xy: 590, 134 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 stonewall rotate: false - xy: 819, 413 + xy: 561, 67 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumshieldwall rotate: false - xy: 849, 423 + xy: 414, 86 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall rotate: false - xy: 859, 433 + xy: 320, 79 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall-large rotate: false - xy: 608, 152 + xy: 608, 134 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2293,6 +2293,20 @@ laserfull orig: 18, 18 offset: 0, 0 index: -1 +minelaser + rotate: false + xy: 682, 277 + size: 1, 12 + orig: 1, 12 + offset: 0, 0 + index: -1 +minelaser-end + rotate: false + xy: 466, 202 + size: 18, 18 + orig: 18, 18 + offset: 0, 0 + index: -1 shell rotate: false xy: 199, 25 @@ -2309,224 +2323,224 @@ shell-back index: -1 shot rotate: false - xy: 651, 60 + xy: 300, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer rotate: false - xy: 678, 263 + xy: 294, 63 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 849, 413 + xy: 319, 69 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer-end rotate: false - xy: 106, 43 + xy: 783, 447 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 item-armor-piercing-bullet rotate: false - xy: 703, 253 + xy: 997, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-composite-flak rotate: false - xy: 703, 213 + xy: 997, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-explosive-shell rotate: false - xy: 667, 205 + xy: 1007, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-frag-shell rotate: false - xy: 677, 205 + xy: 1007, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-homing-bullet rotate: false - xy: 662, 195 + xy: 847, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-incendiary-mortar-shell rotate: false - xy: 662, 185 + xy: 857, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead-bullet rotate: false - xy: 672, 185 + xy: 887, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-scythe-missile rotate: false - xy: 672, 165 + xy: 917, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-mortar-shell rotate: false - xy: 682, 195 + xy: 967, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-swarm-missile rotate: false - xy: 682, 185 + xy: 977, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium-shell rotate: false - xy: 678, 155 + xy: 1007, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-tracer-bullet rotate: false - xy: 678, 135 + xy: 280, 39 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-biomatter rotate: false - xy: 703, 243 + xy: 987, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 703, 233 + xy: 997, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 703, 223 + xy: 1007, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-iron rotate: false - xy: 672, 195 + xy: 867, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 662, 175 + xy: 877, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plastic rotate: false - xy: 662, 165 + xy: 897, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 672, 175 + xy: 907, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 668, 155 + xy: 927, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-steel rotate: false - xy: 668, 145 + xy: 937, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 668, 135 + xy: 947, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 668, 125 + xy: 957, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thermite rotate: false - xy: 682, 175 + xy: 987, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 682, 165 + xy: 997, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 678, 145 + xy: 431, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 standard-mech rotate: false - xy: 654, 277 + xy: 648, 164 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-ship rotate: false - xy: 668, 277 + xy: 644, 150 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -2703,7 +2717,7 @@ discord-banner-over index: -1 controller-cursor rotate: false - xy: 999, 461 + xy: 781, 429 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2738,56 +2752,56 @@ icon-admin-small index: -1 icon-areaDelete rotate: false - xy: 655, 209 + xy: 650, 265 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 500, 177 + xy: 482, 177 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-16 rotate: false - xy: 500, 177 + xy: 482, 177 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 669, 251 + xy: 662, 265 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 669, 239 + xy: 674, 265 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 669, 227 + xy: 395, 107 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 395, 107 + xy: 407, 108 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-back rotate: false - xy: 482, 141 + xy: 482, 159 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2801,49 +2815,49 @@ icon-ban index: -1 icon-break rotate: false - xy: 500, 159 + xy: 500, 177 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 518, 177 + xy: 482, 141 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 407, 108 + xy: 419, 108 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-check rotate: false - xy: 482, 123 + xy: 500, 159 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 419, 108 + xy: 803, 441 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 781, 401 + xy: 815, 441 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 226, 33 + xy: 827, 441 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2857,504 +2871,504 @@ icon-dev-builds index: -1 icon-discord rotate: false - xy: 145, 28 + xy: 572, 100 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 238, 33 + xy: 839, 441 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 147, 1 + xy: 588, 100 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 162, 36 + xy: 604, 100 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 178, 36 + xy: 620, 100 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-egg rotate: false - xy: 194, 36 + xy: 636, 100 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 210, 32 + xy: 145, 28 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-file rotate: false - xy: 500, 141 + xy: 518, 177 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-image rotate: false - xy: 518, 159 + xy: 482, 123 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 163, 1 + xy: 147, 1 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 500, 123 + xy: 500, 141 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 167, 20 + xy: 162, 36 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-floppy-16 rotate: false - xy: 518, 141 + xy: 518, 159 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 183, 20 + xy: 178, 36 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 179, 4 + xy: 194, 36 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-github rotate: false - xy: 638, 300 + xy: 210, 32 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 638, 284 + xy: 163, 1 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 518, 123 + xy: 500, 123 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-hold rotate: false - xy: 250, 33 + xy: 799, 429 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 306, 49 + xy: 799, 417 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 654, 307 + xy: 167, 20 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 654, 291 + xy: 183, 20 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 644, 110 + xy: 811, 429 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 670, 307 + xy: 179, 4 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-items-none rotate: false - xy: 693, 263 + xy: 967, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-line rotate: false - xy: 540, 195 + xy: 518, 141 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-link rotate: false - xy: 670, 291 + xy: 638, 300 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 195, 2 + xy: 811, 417 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-load rotate: false - xy: 233, 93 + xy: 638, 284 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 536, 177 + xy: 518, 123 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 536, 159 + xy: 540, 195 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 536, 141 + xy: 536, 177 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-logic rotate: false - xy: 669, 215 + xy: 823, 429 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 395, 95 + xy: 823, 417 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 536, 123 + xy: 536, 159 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-none rotate: false - xy: 407, 96 + xy: 835, 429 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 419, 96 + xy: 835, 417 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 558, 197 + xy: 536, 141 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 249, 93 + xy: 654, 307 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 783, 449 + xy: 536, 123 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 793, 401 + xy: 395, 95 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 265, 93 + xy: 654, 291 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 482, 111 + xy: 407, 96 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 494, 111 + xy: 419, 96 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 506, 111 + xy: 274, 49 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 281, 93 + xy: 670, 307 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 781, 431 + xy: 558, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 297, 93 + xy: 670, 291 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 232, 77 + xy: 233, 93 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 781, 413 + xy: 855, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 232, 61 + xy: 249, 93 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 248, 77 + xy: 265, 93 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 248, 61 + xy: 281, 93 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 264, 77 + xy: 297, 93 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 264, 61 + xy: 232, 77 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 855, 443 + xy: 873, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 873, 443 + xy: 891, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 518, 111 + xy: 268, 35 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 891, 443 + xy: 909, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 280, 77 + xy: 232, 61 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 530, 111 + xy: 195, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 542, 111 + xy: 799, 405 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 280, 61 + xy: 248, 77 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 909, 443 + xy: 927, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 296, 77 + xy: 248, 61 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 296, 61 + xy: 264, 77 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 927, 443 + xy: 945, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 554, 113 + xy: 811, 405 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-weapon rotate: false - xy: 685, 345 + xy: 823, 405 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 232, 45 + xy: 264, 61 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 945, 443 + xy: 963, 443 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 248, 45 + xy: 280, 77 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3534,56 +3548,56 @@ drone index: -1 scout rotate: false - xy: 648, 164 + xy: 226, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-base rotate: false - xy: 644, 150 + xy: 240, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-base rotate: false - xy: 644, 150 + xy: 240, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-leg rotate: false - xy: 644, 136 + xy: 254, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-leg rotate: false - xy: 644, 136 + xy: 254, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol rotate: false - xy: 664, 263 + xy: 644, 122 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-1 rotate: false - xy: 655, 249 + xy: 210, 18 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-2 rotate: false - xy: 655, 235 + xy: 654, 277 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -3597,14 +3611,14 @@ vtol-flame index: -1 beam-equip rotate: false - xy: 685, 323 + xy: 313, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster rotate: false - xy: 312, 69 + xy: 310, 59 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -3618,56 +3632,56 @@ blaster-equip index: -1 clustergun rotate: false - xy: 441, 112 + xy: 658, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 441, 102 + xy: 658, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun rotate: false - xy: 561, 63 + xy: 300, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 641, 60 + xy: 310, 39 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 845, 403 + xy: 320, 59 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 859, 423 + xy: 320, 49 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 859, 413 + xy: 320, 29 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 855, 403 + xy: 320, 19 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 370bc2d709..a9510a763e 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/ai/BlockIndexer.java b/core/src/io/anuke/mindustry/ai/BlockIndexer.java index a7911cefad..ca430c5f97 100644 --- a/core/src/io/anuke/mindustry/ai/BlockIndexer.java +++ b/core/src/io/anuke/mindustry/ai/BlockIndexer.java @@ -21,6 +21,8 @@ public class BlockIndexer { private ObjectMap> enemyMap = new ObjectMap<>(); /**Maps teams to a map of flagged tiles by type.*/ private ObjectMap> allyMap = new ObjectMap<>(); + /**Empty map for invalid teams.*/ + private ObjectMap> emptyMap = new ObjectMap<>(); /**Maps tile positions to their last known tile index data.*/ private IntMap typeMap = new IntMap<>(); /**Empty array used for returning.*/ @@ -79,6 +81,7 @@ public class BlockIndexer { } private ObjectMap> getMap(Team team){ + if(!state.teams.has(team)) return emptyMap; return state.teams.get(team).ally ? allyMap : enemyMap; } diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 6f59a2d588..8a63d3f433 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -14,7 +14,7 @@ public class Mechs implements ContentList { }}; standardShip = new Mech("standard-ship", true){{ - + drillPower = 1; }}; } } diff --git a/core/src/io/anuke/mindustry/entities/BlockBuilder.java b/core/src/io/anuke/mindustry/entities/BlockBuilder.java index d7ffdf9984..3080f23916 100644 --- a/core/src/io/anuke/mindustry/entities/BlockBuilder.java +++ b/core/src/io/anuke/mindustry/entities/BlockBuilder.java @@ -1,17 +1,24 @@ package io.anuke.mindustry.entities; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Queue; import io.anuke.mindustry.Vars; +import io.anuke.mindustry.content.blocks.Blocks; +import io.anuke.mindustry.content.fx.BlockFx; +import io.anuke.mindustry.entities.effect.ItemTransfer; import io.anuke.mindustry.graphics.Palette; +import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.world.Build; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.BuildBlock; import io.anuke.mindustry.world.blocks.types.BuildBlock.BuildEntity; +import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Fill; import io.anuke.ucore.graphics.Lines; +import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Geometry; import io.anuke.ucore.util.Mathf; @@ -19,13 +26,15 @@ import io.anuke.ucore.util.Translator; import java.util.Arrays; +import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.world; /**Interface for units that build, break or mine things.*/ public interface BlockBuilder { - //temporary static final values + //these are not instance variables! Translator[] tmptr = {new Translator(), new Translator(), new Translator(), new Translator()}; float placeDistance = 200f; + float mineDistance = 70f; /**Returns the queue for storing build requests.*/ Queue getPlaceQueue(); @@ -87,6 +96,8 @@ public interface BlockBuilder { updateMining(unit); } return; + }else{ + setMineTile(null); } Tile tile = world.tile(current.x, current.y); @@ -153,11 +164,39 @@ public interface BlockBuilder { /**Do not call directly.*/ default void updateMining(Unit unit){ + Tile tile = getMineTile(); + if(tile.block() != Blocks.air || unit.distanceTo(tile.worldx(), tile.worldy()) > mineDistance || !unit.inventory.canAcceptItem(tile.floor().drops.item)){ + setMineTile(null); + }else{ + Item item = tile.floor().drops.item; + unit.rotation = Mathf.slerpDelta(unit.rotation, unit.angleTo(tile.worldx(), tile.worldy()), 0.4f); + + if(unit.inventory.canAcceptItem(item) && + Mathf.chance(Timers.delta() * 0.05 / item.hardness)){ + ItemTransfer.create(item, + tile.worldx() + Mathf.range(tilesize/2f), + tile.worldy() + Mathf.range(tilesize/2f), + unit, () -> unit.inventory.addItem(item, 1)); + } + + if(Mathf.chance(0.06 * Timers.delta())){ + Effects.effect(BlockFx.pulverizeSmall, + tile.worldx() + Mathf.range(tilesize/2f), + tile.worldy() + Mathf.range(tilesize/2f), 0f, item.color); + } + } } /**Draw placement effects for an entity.*/ default void drawBuilding(Unit unit){ + if(!isBuilding()){ + if(getMineTile() != null){ + drawMining(unit); + } + return; + } + Tile tile = world.tile(getCurrentRequest().x, getCurrentRequest().y); Draw.color(unit.distanceTo(tile) > placeDistance || getCurrentRequest().remove ? Palette.remove : Palette.accent); @@ -196,6 +235,28 @@ public interface BlockBuilder { Draw.color(); } + /**Internal use only.*/ + default void drawMining(Unit unit){ + Tile tile = getMineTile(); + + float focusLen = 4f + Mathf.absin(Timers.time(), 1.1f, 0.5f); + float swingScl = 12f, swingMag = tilesize/8f; + float flashScl = 0.3f; + + float px = unit.x + Angles.trnsx(unit.rotation, focusLen); + float py = unit.y + Angles.trnsy(unit.rotation, focusLen); + + float ex = tile.worldx() + Mathf.sin(Timers.time() + 48, swingScl, swingMag); + float ey = tile.worldy() + Mathf.sin(Timers.time() + 48, swingScl + 2f, swingMag); + + Draw.color(Color.LIGHT_GRAY, Color.WHITE, 1f-flashScl + Mathf.absin(Timers.time(), 0.5f, flashScl)); + Shapes.laser("minelaser", "minelaser-end", px, py, ex, ey); + + Draw.color(Palette.accent); + Lines.poly(tile.worldx(), tile.worldy(), 4, tilesize/2f * Mathf.sqrt2, Timers.time()); + Draw.color(); + } + /**Class for storing build requests. Can be either a place or remove request.*/ class BuildRequest { public final int x, y, rotation; diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 5625cedb5e..60f1f67e44 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -263,7 +263,7 @@ public class Player extends Unit implements BlockBuilder { @Override public void drawOver(){ - if(!isShooting() && getCurrentRequest() != null && !dead) { + if(!isShooting() && !dead) { drawBuilding(this); } diff --git a/core/src/io/anuke/mindustry/input/AndroidInput.java b/core/src/io/anuke/mindustry/input/AndroidInput.java index 098d5f3fa4..3d0fb0fa30 100644 --- a/core/src/io/anuke/mindustry/input/AndroidInput.java +++ b/core/src/io/anuke/mindustry/input/AndroidInput.java @@ -30,6 +30,7 @@ import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.scene.Group; import io.anuke.ucore.scene.builders.imagebutton; import io.anuke.ucore.scene.builders.table; +import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.*; @@ -386,7 +387,9 @@ public class AndroidInput extends InputHandler implements GestureListener{ //call tap events if(pointer == 0 && !selecting && mode == none){ - tileTapped(cursor.target()); + if(!tileTapped(cursor.target())){ + tryBeginMine(cursor); + } } return false; diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 4719fc2e39..aaf7972dc4 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -161,7 +161,8 @@ public class DesktopInput extends InputHandler{ } if(cursor.floor().drops != null && cursor.floor().drops.item.hardness <= player.mech.drillPower - && cursor.block() == Blocks.air){ + && cursor.block() == Blocks.air && player.distanceTo(cursor.worldx(), cursor.worldy()) <= Player.mineDistance && + player.inventory.canAcceptItem(cursor.floor().drops.item)){ cursorType = drill; } diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 90b7508ad1..cd4470ac5d 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -123,8 +123,9 @@ public abstract class InputHandler extends InputAdapter{ /**Tries to begin mining a tile, returns true if successful.*/ boolean tryBeginMine(Tile tile){ if(tile.floor().drops != null && tile.floor().drops.item.hardness <= player.mech.drillPower - && tile.block() == Blocks.air){ - player.setMineTile(tile); + && tile.block() == Blocks.air && player.distanceTo(tile.worldx(), tile.worldy()) <= Player.mineDistance){ + //if a block is clicked twice, reset it + player.setMineTile(player.getMineTile() == tile ? null : tile); return true; } return false; diff --git a/core/src/io/anuke/mindustry/net/Packets.java b/core/src/io/anuke/mindustry/net/Packets.java index 15b61a95ef..fc29d5caff 100644 --- a/core/src/io/anuke/mindustry/net/Packets.java +++ b/core/src/io/anuke/mindustry/net/Packets.java @@ -169,14 +169,19 @@ public class Packets { public void write(ByteBuffer buffer) { buffer.putShort((short)x); buffer.putShort((short)y); - buffer.putInt(editlogs.size); - for(EditLog value : editlogs) { - buffer.put((byte)value.playername.getBytes().length); - buffer.put(value.playername.getBytes()); - buffer.putInt(value.block.id); - buffer.put((byte) value.rotation); - buffer.put((byte) value.action.ordinal()); - } + + if(editlogs != null) { + buffer.putInt(editlogs.size); + for (EditLog value : editlogs) { + buffer.put((byte) value.playername.getBytes().length); + buffer.put(value.playername.getBytes()); + buffer.putInt(value.block.id); + buffer.put((byte) value.rotation); + buffer.put((byte) value.action.ordinal()); + } + }else{ + buffer.putInt(0); + } } @Override