From 83452b1e3653550d6693f927a2ac47d1822e302f Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 10 Mar 2018 12:13:42 -0500 Subject: [PATCH] Fixed many crashes, refactored block bars --- core/assets/sprites/sprites.atlas | 2623 +++++++++-------- core/assets/version.properties | 4 +- .../src/io/anuke/mindustry/core/Renderer.java | 4 +- .../anuke/mindustry/io/versions/Save16.java | 1 - .../ui/fragments/BlocksFragment.java | 2 +- .../src/io/anuke/mindustry/world/BarType.java | 17 + core/src/io/anuke/mindustry/world/Block.java | 14 +- .../io/anuke/mindustry/world/BlockBar.java | 8 +- .../io/anuke/mindustry/world/BlockBars.java | 41 + .../world/{blocks/types => }/BlockStats.java | 2 +- .../world/blocks/ProductionBlocks.java | 18 +- .../world/blocks/types/PowerBlock.java | 1 + .../blocks/types/defense/RepairTurret.java | 1 - .../world/blocks/types/defense/Turret.java | 10 +- .../blocks/types/generation/Generator.java | 1 - .../types/generation/ItemPowerGenerator.java | 7 +- .../generation/LiquidPowerGenerator.java | 4 +- .../types/generation/NuclearReactor.java | 11 +- .../world/blocks/types/production/Drill.java | 2 +- .../blocks/types/production/GenericDrill.java | 2 +- .../types/production/LiquidCrafter.java | 11 +- .../blocks/types/production/PowerSmelter.java | 11 +- .../blocks/types/production/Smelter.java | 8 +- .../world/blocks/types/storage/CoreBlock.java | 26 +- .../blocks/types/storage/StorageBlock.java | 10 + .../world/blocks/types/storage/Unloader.java | 5 +- .../world/blocks/types/storage/Vault.java | 7 +- 27 files changed, 1551 insertions(+), 1300 deletions(-) create mode 100644 core/src/io/anuke/mindustry/world/BarType.java create mode 100644 core/src/io/anuke/mindustry/world/BlockBars.java rename core/src/io/anuke/mindustry/world/{blocks/types => }/BlockStats.java (94%) diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 1b99d64c59..f021771c32 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -11,1633 +11,1759 @@ background orig: 492, 380 offset: 0, 0 index: -1 -blank - rotate: false - xy: 862, 491 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 blackrock1 rotate: false - xy: 132, 88 + xy: 713, 272 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackrockshadow1 rotate: false - xy: 844, 400 + xy: 637, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone1 rotate: false - xy: 856, 405 + xy: 647, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone2 rotate: false - xy: 659, 282 + xy: 657, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone3 rotate: false - xy: 669, 282 + xy: 667, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock1 rotate: false - xy: 679, 282 + xy: 677, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock2 rotate: false - xy: 624, 233 + xy: 584, 214 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock3 rotate: false - xy: 624, 223 + xy: 584, 204 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneedge rotate: false - xy: 519, 178 + xy: 171, 20 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -block - rotate: false - xy: 634, 225 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -block-2x2 - rotate: false - xy: 114, 90 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-3x3 - rotate: false - xy: 300, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-middle - rotate: false - xy: 634, 215 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -chainturret - rotate: false - xy: 659, 292 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -chainturret-icon - rotate: false - xy: 580, 233 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 coal1 rotate: false - xy: 270, 91 + xy: 580, 165 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 280, 91 + xy: 590, 165 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 290, 91 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coaldrill - rotate: false - xy: 300, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coalgenerator - rotate: false - xy: 310, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coalgenerator-top - rotate: false - xy: 320, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coalpurifier - rotate: false - xy: 330, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -combustiongenerator - rotate: false - xy: 340, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -compositewall - rotate: false - xy: 350, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduit - rotate: false - xy: 360, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduitbottom - rotate: false - xy: 370, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduitliquid - rotate: false - xy: 380, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduittop - rotate: false - xy: 390, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyor - rotate: false - xy: 400, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyormove - rotate: false - xy: 410, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyortunnel - rotate: false - xy: 420, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -core - rotate: false - xy: 352, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -cross - rotate: false - xy: 430, 95 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -crucible - rotate: false - xy: 440, 95 + xy: 580, 155 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 450, 95 + xy: 723, 272 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 460, 95 + xy: 713, 262 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 470, 95 + xy: 723, 262 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 113, 71 + xy: 600, 165 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirtedge rotate: false - xy: 535, 195 + xy: 171, 6 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -door - rotate: false - xy: 113, 61 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -door-large - rotate: false - xy: 747, 430 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -door-large-icon - rotate: false - xy: 113, 51 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -door-large-open - rotate: false - xy: 881, 495 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -door-open - rotate: false - xy: 132, 78 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -doubleturret - rotate: false - xy: 580, 221 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -duriumwall - rotate: false - xy: 142, 81 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -duriumwall-large - rotate: false - xy: 677, 292 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -duriumwall-large-icon - rotate: false - xy: 152, 81 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -enemyspawn - rotate: false - xy: 162, 81 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -flameturret - rotate: false - xy: 81, 2 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -fluxpump - rotate: false - xy: 117, 41 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 grass1 rotate: false - xy: 117, 31 + xy: 857, 431 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass2 rotate: false - xy: 117, 21 + xy: 620, 169 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 117, 11 + xy: 620, 159 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock1 rotate: false - xy: 117, 1 + xy: 610, 149 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock2 rotate: false - xy: 561, 203 + xy: 620, 149 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassedge rotate: false - xy: 551, 213 + xy: 191, 28 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 ice1 rotate: false - xy: 549, 194 + xy: 633, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice2 rotate: false - xy: 559, 193 + xy: 643, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 547, 184 + xy: 653, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iceedge rotate: false - xy: 565, 213 + xy: 205, 26 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 icerock1 rotate: false - xy: 557, 183 + xy: 663, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 724, 377 + xy: 673, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 724, 367 + xy: 683, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 724, 367 + xy: 683, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 724, 357 + xy: 687, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 724, 357 + xy: 687, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 535, 120 + xy: 693, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 832, 388 + xy: 556, 125 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 300, 85 + xy: 556, 115 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -irondrill - rotate: false - xy: 310, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -ironwall - rotate: false - xy: 320, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -junction - rotate: false - xy: 330, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -laserturret - rotate: false - xy: 844, 410 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 lava rotate: false - xy: 340, 85 + xy: 251, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavaedge rotate: false - xy: 533, 178 + xy: 185, 14 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -lavasmelter - rotate: false - xy: 350, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquiditemjunction - rotate: false - xy: 360, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidjunction - rotate: false - xy: 370, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidrouter - rotate: false - xy: 380, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -machineturret - rotate: false - xy: 856, 415 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -megarepairturret - rotate: false - xy: 530, 106 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -mortarturret - rotate: false - xy: 736, 392 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 mossblock rotate: false - xy: 390, 85 + xy: 293, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -mossstone - rotate: false - xy: 390, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -nuclearreactor - rotate: false - xy: 378, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nuclearreactor-center - rotate: false - xy: 404, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nuclearreactor-icon - rotate: false - xy: 400, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -nuclearreactor-lights - rotate: false - xy: 430, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nuclearreactor-small - rotate: false - xy: 482, 113 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 oil rotate: false - xy: 410, 85 + xy: 303, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oiledge rotate: false - xy: 521, 132 + xy: 993, 437 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -oilrefinery - rotate: false - xy: 420, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -omnidrill - rotate: false - xy: 430, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -plasmaturret - rotate: false - xy: 748, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -playerspawn - rotate: false - xy: 440, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -powerbooster - rotate: false - xy: 450, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -poweredconveyor - rotate: false - xy: 460, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -poweredconveyormove - rotate: false - xy: 470, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -powerlaser - rotate: false - xy: 480, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -powerlasercorner - rotate: false - xy: 172, 85 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -powerlaserrouter - rotate: false - xy: 182, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pulseconduit - rotate: false - xy: 192, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pulseconduitbottom - rotate: false - xy: 202, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pulseconduittop - rotate: false - xy: 212, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pump - rotate: false - xy: 222, 87 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -repairturret - rotate: false - xy: 760, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 rock1 rotate: false - xy: 728, 332 + xy: 785, 416 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 728, 322 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -router - rotate: false - xy: 728, 312 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -rtgenerator - rotate: false - xy: 738, 332 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -rtgenerator-top - rotate: false - xy: 738, 322 + xy: 785, 406 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 738, 312 + xy: 785, 386 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 731, 302 + xy: 795, 396 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 731, 292 + xy: 795, 386 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 741, 302 + xy: 805, 416 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 741, 292 + xy: 805, 406 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 547, 140 + xy: 805, 396 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 142, 91 + xy: 609, 231 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -shadow - rotate: false - xy: 772, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -shieldgenerator - rotate: false - xy: 545, 120 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -shotgunturret - rotate: false - xy: 784, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 shrub rotate: false - xy: 202, 77 + xy: 825, 420 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 212, 77 + xy: 815, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -smelter - rotate: false - xy: 222, 77 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -smelter-middle - rotate: false - xy: 744, 382 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -sniperturret - rotate: false - xy: 796, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 snow1 rotate: false - xy: 744, 372 + xy: 825, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 744, 362 + xy: 835, 410 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 744, 352 + xy: 815, 380 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 744, 342 + xy: 825, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 754, 384 + xy: 835, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 764, 384 + xy: 825, 380 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 521, 118 + xy: 223, 55 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -sorter - rotate: false - xy: 754, 374 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steelconveyor - rotate: false - xy: 774, 384 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steelconveyormove - rotate: false - xy: 754, 364 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steelwall - rotate: false - xy: 764, 374 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steelwall-large - rotate: false - xy: 819, 430 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -steelwall-large-icon - rotate: false - xy: 784, 384 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 stone1 rotate: false - xy: 754, 354 + xy: 721, 252 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 764, 364 + xy: 701, 248 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 774, 374 + xy: 711, 242 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 794, 384 + xy: 721, 242 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 754, 344 + xy: 867, 437 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 764, 354 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stonedrill - rotate: false - xy: 774, 364 + xy: 877, 437 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 722, 413 + xy: 237, 41 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -stoneformer - rotate: false - xy: 784, 374 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stonewall - rotate: false - xy: 804, 384 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -teleporter - rotate: false - xy: 764, 344 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -teleporter-top - rotate: false - xy: 774, 354 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -thermalgenerator - rotate: false - xy: 784, 364 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titancannon - rotate: false - xy: 456, 105 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -titancannon-icon - rotate: false - xy: 808, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 titanium1 rotate: false - xy: 794, 374 + xy: 887, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 814, 384 + xy: 897, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 774, 344 + xy: 907, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -titaniumdrill - rotate: false - xy: 784, 354 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumpurifier - rotate: false - xy: 794, 364 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumshieldwall - rotate: false - xy: 804, 374 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumwall - rotate: false - xy: 784, 344 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumwall-large - rotate: false - xy: 831, 472 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -titaniumwall-large-icon - rotate: false - xy: 794, 354 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -turret - rotate: false - xy: 820, 394 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 uranium1 rotate: false - xy: 804, 354 + xy: 733, 284 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 uranium2 rotate: false - xy: 814, 364 + xy: 733, 274 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 uranium3 rotate: false - xy: 804, 344 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -uraniumdrill - rotate: false - xy: 814, 354 + xy: 733, 264 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 748, 322 + xy: 313, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 722, 399 + xy: 251, 55 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 -waveturret +block-middle rotate: false - xy: 832, 398 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -weaponfactory - rotate: false - xy: 831, 454 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -weaponfactory-icon - rotate: false - xy: 748, 312 + xy: 594, 205 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 +conduitliquid + rotate: false + xy: 614, 179 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +cross-1 + rotate: false + xy: 723, 282 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +cross-2 + rotate: false + xy: 213, 90 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +enemyspawn + rotate: false + xy: 837, 430 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +playerspawn + rotate: false + xy: 333, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +shadow + rotate: false + xy: 689, 268 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +alloysmelter + rotate: false + xy: 713, 282 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +coaldrill + rotate: false + xy: 590, 155 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +coalextractor + rotate: false + xy: 604, 209 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +coalgenerator + rotate: false + xy: 604, 199 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +coalgenerator-top + rotate: false + xy: 604, 189 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +combustiongenerator + rotate: false + xy: 604, 179 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +cultivator + rotate: false + xy: 468, 113 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +fluxpump + rotate: false + xy: 847, 431 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +irondrill + rotate: false + xy: 724, 352 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserdrill + rotate: false + xy: 231, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +lavasmelter + rotate: false + xy: 263, 45 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +nuclearreactor + rotate: false + xy: 338, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +nuclearreactor-center + rotate: false + xy: 364, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +nuclearreactor-lights + rotate: false + xy: 390, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +oilrefinery + rotate: false + xy: 313, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +omnidrill + rotate: false + xy: 323, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powerbooster + rotate: false + xy: 343, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulverizer + rotate: false + xy: 453, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pump + rotate: false + xy: 221, 4 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +quartzextractor + rotate: false + xy: 321, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +rtgenerator + rotate: false + xy: 785, 396 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +rtgenerator-top + rotate: false + xy: 795, 406 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +siliconextractor + rotate: false + xy: 825, 410 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +smelter + rotate: false + xy: 835, 420 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +smelter-middle + rotate: false + xy: 815, 390 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +solarpanel + rotate: false + xy: 835, 390 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +stonedrill + rotate: false + xy: 887, 437 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +stoneformer + rotate: false + xy: 897, 437 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +thermalgenerator + rotate: false + xy: 877, 427 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumdrill + rotate: false + xy: 917, 427 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumextractor + rotate: false + xy: 927, 434 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +uraniumdrill + rotate: false + xy: 261, 33 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +uraniumextractor + rotate: false + xy: 273, 37 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduit + rotate: false + xy: 614, 199 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduitbottom + rotate: false + xy: 614, 189 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduittop + rotate: false + xy: 1007, 437 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduittunnel + rotate: false + xy: 793, 426 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conveyor + rotate: false + xy: 803, 426 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conveyormove + rotate: false + xy: 817, 430 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conveyortunnel + rotate: false + xy: 827, 430 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +core + rotate: false + xy: 286, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +junction + rotate: false + xy: 740, 312 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidjunction + rotate: false + xy: 273, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidrouter + rotate: false + xy: 283, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +multiplexer + rotate: false + xy: 303, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +poweredconveyor + rotate: false + xy: 353, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +poweredconveyormove + rotate: false + xy: 363, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powerinfinite + rotate: false + xy: 373, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powerlaser + rotate: false + xy: 383, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powerlasercorner + rotate: false + xy: 393, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powerlaserrouter + rotate: false + xy: 403, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +powervoid + rotate: false + xy: 413, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulseconduit + rotate: false + xy: 423, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulseconduitbottom + rotate: false + xy: 433, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulseconduittop + rotate: false + xy: 443, 47 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +router + rotate: false + xy: 795, 416 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +shieldgenerator + rotate: false + xy: 785, 376 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +shieldprojector + rotate: false + xy: 339, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +sorter + rotate: false + xy: 835, 380 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +splitter + rotate: false + xy: 815, 370 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steelconveyor + rotate: false + xy: 825, 370 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steelconveyormove + rotate: false + xy: 835, 370 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +teleporter + rotate: false + xy: 917, 437 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +teleporter-top + rotate: false + xy: 867, 427 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +unloader + rotate: false + xy: 545, 57 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +vault + rotate: false + xy: 442, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +vault-icon + rotate: false + xy: 283, 37 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +weaponfactory + rotate: false + xy: 447, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-1 + rotate: false + xy: 594, 215 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +block-2 + rotate: false + xy: 763, 426 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-3 + rotate: false + xy: 234, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +chainturret + rotate: false + xy: 727, 365 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +chainturret-icon + rotate: false + xy: 1013, 471 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +doubleturret + rotate: false + xy: 1013, 447 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +flakturret + rotate: false + xy: 504, 113 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +flameturret + rotate: false + xy: 185, 2 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +fornaxcannon + rotate: false + xy: 312, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +gatlingturret + rotate: false + xy: 251, 43 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +laserturret + rotate: false + xy: 609, 219 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +magmaturret + rotate: false + xy: 249, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +megarepairturret + rotate: false + xy: 267, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +missileturret + rotate: false + xy: 285, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +plasmaturret + rotate: false + xy: 691, 292 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +railgunturret + rotate: false + xy: 689, 280 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +repairturret + rotate: false + xy: 703, 292 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +shotgunturret + rotate: false + xy: 701, 280 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +teslaturret + rotate: false + xy: 715, 292 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +titancannon + rotate: false + xy: 416, 105 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +titancannon-icon + rotate: false + xy: 689, 256 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +turret + rotate: false + xy: 701, 268 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +compositewall + rotate: false + xy: 614, 209 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +door + rotate: false + xy: 600, 155 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +door-large + rotate: false + xy: 655, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +door-large-open + rotate: false + xy: 486, 113 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +door-open + rotate: false + xy: 610, 169 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +duriumwall + rotate: false + xy: 610, 159 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +duriumwall-large + rotate: false + xy: 673, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +ironwall + rotate: false + xy: 724, 342 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steelwall + rotate: false + xy: 711, 252 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steelwall-large + rotate: false + xy: 357, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +stonewall + rotate: false + xy: 907, 437 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumshieldwall + rotate: false + xy: 937, 434 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumwall + rotate: false + xy: 947, 434 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumwall-large + rotate: false + xy: 429, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +blank + rotate: false + xy: 231, 105 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 bullet rotate: false - xy: 240, 91 + xy: 594, 195 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 chainbullet rotate: false - xy: 114, 81 + xy: 584, 175 size: 8, 7 orig: 8, 7 offset: 0, 0 index: -1 -circle - rotate: false - xy: 862, 494 - size: 17, 17 - orig: 17, 17 - offset: 0, 0 - index: -1 -circle2 - rotate: false - xy: 495, 310 - size: 201, 201 - orig: 201, 201 - offset: 0, 0 - index: -1 -blastenemy-t1 - rotate: false - xy: 849, 475 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -blastenemy-t2 - rotate: false - xy: 849, 459 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -blastenemy-t3 - rotate: false - xy: 865, 478 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -empenemy-t1 - rotate: false - xy: 881, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -empenemy-t2 - rotate: false - xy: 865, 462 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -empenemy-t3 - rotate: false - xy: 881, 463 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -fastenemy-t1 - rotate: false - xy: 897, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -fastenemy-t2 - rotate: false - xy: 897, 463 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -fastenemy-t3 - rotate: false - xy: 913, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -flamerenemy-t1 - rotate: false - xy: 913, 463 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -flamerenemy-t2 - rotate: false - xy: 929, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -flamerenemy-t3 - rotate: false - xy: 929, 463 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -fortressenemy-t1 - rotate: false - xy: 840, 491 - size: 20, 20 - orig: 20, 20 - offset: 0, 0 - index: -1 -fortressenemy-t2 - rotate: false - xy: 92, 86 - size: 20, 20 - orig: 20, 20 - offset: 0, 0 - index: -1 -fortressenemy-t3 - rotate: false - xy: 637, 288 - size: 20, 20 - orig: 20, 20 - offset: 0, 0 - index: -1 -healerenemy-t1 - rotate: false - xy: 945, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -healerenemy-t2 - rotate: false - xy: 945, 463 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -healerenemy-t3 - rotate: false - xy: 961, 479 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -mortarenemy-t1 - rotate: false - xy: 981, 431 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -mortarenemy-t2 - rotate: false - xy: 997, 447 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -mortarenemy-t3 - rotate: false - xy: 997, 431 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -rapidenemy-t1 - rotate: false - xy: 592, 211 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -rapidenemy-t2 - rotate: false - xy: 608, 211 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -rapidenemy-t3 - rotate: false - xy: 519, 208 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -standardenemy-t1 - rotate: false - xy: 519, 192 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -targetenemy-t1 - rotate: false - xy: 519, 192 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -standardenemy-t2 - rotate: false - xy: 516, 104 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -standardenemy-t3 - rotate: false - xy: 514, 90 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -tankenemy-t1 - rotate: false - xy: 521, 162 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -tankenemy-t2 - rotate: false - xy: 521, 146 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -tankenemy-t3 - rotate: false - xy: 535, 209 - size: 14, 14 - orig: 14, 14 - offset: 0, 0 - index: -1 -titanenemy-t1 - rotate: false - xy: 99, 32 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -titanenemy-t2 - rotate: false - xy: 99, 14 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -titanenemy-t3 - rotate: false - xy: 500, 122 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 enemyarrow rotate: false - xy: 551, 204 + xy: 623, 226 size: 8, 7 orig: 8, 7 offset: 0, 0 index: -1 -icon-coal - rotate: false - xy: 724, 347 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-dirium - rotate: false - xy: 734, 382 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-iron - rotate: false - xy: 734, 372 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-sand - rotate: false - xy: 734, 362 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-steel - rotate: false - xy: 734, 352 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-stone - rotate: false - xy: 734, 342 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-titanium - rotate: false - xy: 537, 140 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -icon-uranium - rotate: false - xy: 535, 130 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 laser rotate: false - xy: 518, 126 + xy: 219, 26 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 laserend rotate: false - xy: 524, 225 + xy: 560, 158 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 laserfull rotate: false - xy: 727, 428 + xy: 589, 225 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 -mech-standard - rotate: false - xy: 537, 164 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -mech-standard-icon - rotate: false - xy: 537, 150 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -ship-standard - rotate: false - xy: 156, 91 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 shell rotate: false - xy: 545, 130 + xy: 805, 386 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shot rotate: false - xy: 182, 77 + xy: 815, 420 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shot-long rotate: false - xy: 192, 77 + xy: 815, 410 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanshell rotate: false - xy: 804, 364 + xy: 927, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 +blastenemy-t1 + rotate: false + xy: 540, 119 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +blastenemy-t2 + rotate: false + xy: 641, 276 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +blastenemy-t3 + rotate: false + xy: 641, 260 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +empenemy-t1 + rotate: false + xy: 657, 276 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +empenemy-t2 + rotate: false + xy: 657, 260 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +empenemy-t3 + rotate: false + xy: 673, 276 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +fastenemy-t1 + rotate: false + xy: 673, 260 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +fastenemy-t2 + rotate: false + xy: 641, 244 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +fastenemy-t3 + rotate: false + xy: 657, 244 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +flamerenemy-t1 + rotate: false + xy: 673, 244 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +flamerenemy-t2 + rotate: false + xy: 698, 304 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +flamerenemy-t3 + rotate: false + xy: 753, 409 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +fortressenemy-t1 + rotate: false + xy: 131, 44 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +fortressenemy-t2 + rotate: false + xy: 153, 44 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +fortressenemy-t3 + rotate: false + xy: 537, 135 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +healerenemy-t1 + rotate: false + xy: 753, 393 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +healerenemy-t2 + rotate: false + xy: 769, 410 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +healerenemy-t3 + rotate: false + xy: 769, 394 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +mortarenemy-t1 + rotate: false + xy: 497, 65 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +mortarenemy-t2 + rotate: false + xy: 513, 65 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +mortarenemy-t3 + rotate: false + xy: 191, 58 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +rapidenemy-t1 + rotate: false + xy: 532, 97 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +rapidenemy-t2 + rotate: false + xy: 529, 81 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +rapidenemy-t3 + rotate: false + xy: 529, 65 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +standardenemy-t1 + rotate: false + xy: 207, 56 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +targetenemy-t1 + rotate: false + xy: 207, 56 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +standardenemy-t2 + rotate: false + xy: 223, 41 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +standardenemy-t3 + rotate: false + xy: 237, 55 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +tankenemy-t1 + rotate: false + xy: 191, 42 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +tankenemy-t2 + rotate: false + xy: 175, 34 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +tankenemy-t3 + rotate: false + xy: 207, 40 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +titanenemy-t1 + rotate: false + xy: 375, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +titanenemy-t2 + rotate: false + xy: 393, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +titanenemy-t3 + rotate: false + xy: 411, 69 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +item-biomatter + rotate: false + xy: 724, 332 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-coal + rotate: false + xy: 724, 322 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-dirium + rotate: false + xy: 545, 87 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-glass + rotate: false + xy: 545, 77 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-iron + rotate: false + xy: 545, 67 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-quartz + rotate: false + xy: 727, 294 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-silicon + rotate: false + xy: 734, 352 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-steel + rotate: false + xy: 734, 342 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-stone + rotate: false + xy: 734, 332 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-titanium + rotate: false + xy: 734, 322 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +item-uranium + rotate: false + xy: 730, 312 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +mech-standard + rotate: false + xy: 965, 437 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +mech-standard-icon + rotate: false + xy: 979, 437 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +ship-standard + rotate: false + xy: 623, 235 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +circle + rotate: false + xy: 495, 310 + size: 201, 201 + orig: 201, 201 + offset: 0, 0 + index: -1 +shape-3 + rotate: false + xy: 1, 43 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 +shape-4 + rotate: false + xy: 495, 222 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 +shape-5 + rotate: false + xy: 698, 425 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 +shape-6 + rotate: false + xy: 66, 43 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 +shape-7 + rotate: false + xy: 495, 157 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 border rotate: false - xy: 727, 448 + xy: 127, 1 size: 24, 40 split: 5, 5, 5, 10 orig: 24, 40 @@ -1645,7 +1771,7 @@ border index: -1 button rotate: false - xy: 753, 448 + xy: 131, 66 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1653,7 +1779,7 @@ button index: -1 button-down rotate: false - xy: 43, 43 + xy: 589, 245 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1661,7 +1787,7 @@ button-down index: -1 button-over rotate: false - xy: 43, 43 + xy: 589, 245 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1669,7 +1795,7 @@ button-over index: -1 button-map rotate: false - xy: 566, 245 + xy: 727, 383 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1677,7 +1803,7 @@ button-map index: -1 button-map-down rotate: false - xy: 43, 1 + xy: 698, 320 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1685,7 +1811,7 @@ button-map-down index: -1 button-map-over rotate: false - xy: 43, 1 + xy: 698, 320 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1693,7 +1819,7 @@ button-map-over index: -1 button-select rotate: false - xy: 326, 105 + xy: 260, 105 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -1701,602 +1827,623 @@ button-select index: -1 check-off rotate: false - xy: 69, 14 + xy: 183, 74 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 698, 309 + xy: 839, 453 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 180, 97 + xy: 877, 479 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 210, 97 + xy: 907, 479 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 69, 2 + xy: 1013, 459 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 cursor rotate: false - xy: 831, 448 + xy: 185, 28 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 controller-cursor rotate: false - xy: 544, 227 + xy: 637, 292 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-about rotate: false - xy: 961, 463 + xy: 714, 304 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-add rotate: false - xy: 977, 479 + xy: 753, 377 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-admin rotate: false - xy: 977, 463 + xy: 769, 378 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-admin-small rotate: false - xy: 124, 82 + xy: 869, 479 size: 6, 6 orig: 6, 6 offset: 0, 0 index: -1 icon-areaDelete rotate: false - xy: 93, 2 + xy: 265, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 993, 479 + xy: 869, 463 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 105, 2 + xy: 277, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 1013, 451 + xy: 289, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 1013, 439 + xy: 301, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 1013, 427 + xy: 313, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-back rotate: false - xy: 562, 227 + xy: 153, 26 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-ban rotate: false - xy: 1009, 479 + xy: 885, 463 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 993, 463 + xy: 901, 463 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 579, 209 + xy: 325, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-check rotate: false - xy: 1009, 463 + xy: 917, 463 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-close rotate: false - xy: 1, 43 + xy: 1, 1 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 icon-close-down rotate: false - xy: 1, 1 + xy: 43, 1 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 icon-close-over rotate: false - xy: 524, 245 + xy: 85, 1 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 722, 387 + xy: 337, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 736, 416 + xy: 349, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 736, 404 + xy: 361, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 592, 227 + xy: 869, 447 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 748, 418 + xy: 373, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 608, 227 + xy: 885, 447 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 500, 106 + xy: 901, 447 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 482, 97 + xy: 917, 447 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 498, 90 + xy: 933, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 765, 430 + xy: 153, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 628, 245 + xy: 949, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 837, 438 + xy: 933, 444 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 837, 422 + xy: 949, 444 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 899, 495 + xy: 213, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-hold rotate: false - xy: 760, 418 + xy: 385, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 748, 406 + xy: 397, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 853, 443 + xy: 965, 467 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 853, 427 + xy: 965, 451 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 772, 418 + xy: 409, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-line rotate: false - xy: 783, 430 + xy: 231, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +icon-liquid + rotate: false + xy: 421, 57 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 icon-load rotate: false - xy: 869, 446 + xy: 981, 467 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 917, 495 + xy: 249, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 801, 430 + xy: 267, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 935, 495 + xy: 285, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +icon-logic + rotate: false + xy: 433, 57 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 icon-menu rotate: false - xy: 760, 406 + xy: 445, 57 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-none rotate: false - xy: 784, 418 + xy: 199, 14 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 772, 406 + xy: 197, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 953, 495 + xy: 303, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 869, 430 + xy: 981, 451 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 971, 495 + xy: 321, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 796, 418 + xy: 211, 14 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 885, 447 + xy: 997, 467 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 784, 406 + xy: 209, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 808, 418 + xy: 781, 432 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 796, 406 + xy: 793, 436 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 885, 431 + xy: 997, 451 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 989, 495 + xy: 339, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 901, 447 + xy: 175, 50 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 901, 431 + xy: 468, 97 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 1007, 495 + xy: 357, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 917, 447 + xy: 484, 97 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 917, 431 + xy: 500, 97 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 933, 447 + xy: 516, 97 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 933, 431 + xy: 465, 81 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 949, 447 + xy: 481, 81 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 95, 68 + xy: 375, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 95, 50 + xy: 393, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 820, 418 + xy: 805, 436 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 592, 243 + xy: 411, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 949, 431 + xy: 497, 81 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 808, 406 + xy: 817, 440 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 820, 406 + xy: 829, 440 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 965, 447 + xy: 513, 81 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 610, 243 + xy: 429, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 965, 431 + xy: 465, 65 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 695, 291 + xy: 447, 87 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +icon-units + rotate: false + xy: 841, 441 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 icon-weapon rotate: false - xy: 832, 410 + xy: 853, 441 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 713, 291 + xy: 522, 113 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 981, 447 + xy: 481, 65 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 logotext rotate: false - xy: 1, 85 + xy: 143, 108 size: 89, 21 orig: 89, 21 offset: 0, 0 index: -1 pane rotate: false - xy: 698, 343 + xy: 615, 249 size: 24, 36 split: 10, 10, 5, 5 orig: 24, 36 @@ -2304,7 +2451,7 @@ pane index: -1 pane-button rotate: false - xy: 495, 140 + xy: 813, 452 size: 24, 36 split: 10, 10, 5, 5 orig: 24, 36 @@ -2312,7 +2459,7 @@ pane-button index: -1 scroll rotate: false - xy: 69, 48 + xy: 937, 476 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -2320,7 +2467,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 143, 105 + xy: 840, 487 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -2328,7 +2475,7 @@ scroll-horizontal index: -1 scroll-knob-horizontal rotate: false - xy: 592, 261 + xy: 495, 131 size: 40, 24 split: 10, 6, 0, 24 pad: -1, -1, 10, 10 @@ -2337,7 +2484,7 @@ scroll-knob-horizontal index: -1 scroll-knob-vertical rotate: false - xy: 805, 448 + xy: 157, 66 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -2345,7 +2492,7 @@ scroll-knob-vertical index: -1 scroll-knob-vertical-black rotate: false - xy: 779, 448 + xy: 787, 448 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -2353,42 +2500,42 @@ scroll-knob-vertical-black index: -1 selection rotate: false - xy: 728, 309 + xy: 537, 132 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 634, 277 + xy: 171, 34 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 495, 178 + xy: 763, 444 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 698, 381 + xy: 560, 178 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 698, 381 + xy: 560, 178 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-vertical rotate: false - xy: 535, 192 + xy: 727, 362 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -2416,7 +2563,7 @@ text-sides-over index: -1 textfield rotate: false - xy: 270, 101 + xy: 993, 483 size: 28, 28 split: 6, 6, 6, 6 orig: 28, 28 @@ -2424,7 +2571,7 @@ textfield index: -1 textfield-over rotate: false - xy: 240, 101 + xy: 963, 483 size: 28, 28 split: 2, 2, 2, 2 orig: 28, 28 @@ -2432,14 +2579,14 @@ textfield-over index: -1 white rotate: false - xy: 495, 135 + xy: 604, 220 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window rotate: false - xy: 698, 427 + xy: 698, 362 size: 27, 61 split: 8, 8, 44, 11 orig: 27, 61 @@ -2447,7 +2594,7 @@ window index: -1 window-empty rotate: false - xy: 495, 224 + xy: 560, 224 size: 27, 61 split: 8, 8, 44, 11 orig: 27, 61 @@ -2455,84 +2602,84 @@ window-empty index: -1 beam rotate: false - xy: 132, 98 + xy: 689, 246 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 beam-equip rotate: false - xy: 170, 95 + xy: 701, 258 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster rotate: false - xy: 624, 213 + xy: 584, 194 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 634, 235 + xy: 584, 184 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun rotate: false - xy: 250, 91 + xy: 594, 185 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 260, 91 + xy: 594, 175 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun rotate: false - xy: 542, 110 + xy: 795, 376 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 172, 75 + xy: 805, 376 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 814, 374 + xy: 937, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 794, 344 + xy: 947, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 814, 344 + xy: 293, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 748, 332 + xy: 303, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/version.properties b/core/assets/version.properties index 5251026644..0cf8c9ff08 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Fri Mar 09 23:07:56 EST 2018 +#Sat Mar 10 12:12:41 EST 2018 version=release -androidBuildCode=420 +androidBuildCode=424 name=Mindustry code=3.4 build=custom build diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index 0b10bc52ef..f1fe3a2856 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -478,7 +478,7 @@ public class Renderer extends RendererModule{ if(target.entity != null) { int bot = 0, top = 0; - for (BlockBar bar : target.block().bars) { + for (BlockBar bar : target.block().bars.list()) { float offset = Mathf.sign(bar.top) * (target.block().size / 2f * tilesize + 3f + 4f * ((bar.top ? top : bot))) + (bar.top ? -1f : 0f); @@ -486,7 +486,7 @@ public class Renderer extends RendererModule{ if(MathUtils.isEqual(value, -1f)) continue; - drawBar(bar.color, target.drawx(), target.drawy() + offset, value); + drawBar(bar.type.color, target.drawx(), target.drawy() + offset, value); if (bar.top) top++; diff --git a/core/src/io/anuke/mindustry/io/versions/Save16.java b/core/src/io/anuke/mindustry/io/versions/Save16.java index 3c3930b6b7..3e9258e98e 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save16.java +++ b/core/src/io/anuke/mindustry/io/versions/Save16.java @@ -200,7 +200,6 @@ public class Save16 extends SaveFileVersion { if(tile.entity != null){ byte rotation = stream.readByte(); short health = stream.readShort(); - int items = stream.readByte(); tile.entity.health = health; tile.setRotation(rotation); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java index 601ae331cf..933cb23f8d 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java @@ -9,7 +9,7 @@ import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.resource.*; import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.blocks.types.BlockStats; +import io.anuke.mindustry.world.BlockStats; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.scene.Element; diff --git a/core/src/io/anuke/mindustry/world/BarType.java b/core/src/io/anuke/mindustry/world/BarType.java new file mode 100644 index 0000000000..3fd9923be0 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/BarType.java @@ -0,0 +1,17 @@ +package io.anuke.mindustry.world; + +import com.badlogic.gdx.graphics.Color; + +public enum BarType { + health(Color.RED), + inventory(Color.GREEN), + power(Color.YELLOW), + liquid(Color.ROYAL), + heat(Color.CORAL); + + public final Color color; + + BarType(Color color){ + this.color = color; + } +} diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index a465b5776e..9a85dbfd8d 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -1,6 +1,5 @@ package io.anuke.mindustry.world; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; @@ -14,7 +13,6 @@ import io.anuke.mindustry.net.NetEvents; import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.blocks.BaseBlock; -import io.anuke.mindustry.world.blocks.types.BlockStats; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.graphics.Draw; @@ -87,13 +85,13 @@ public class Block extends BaseBlock { public Layer layer = null; /**Extra layer to draw extra extra stuff on.*/ public Layer layer2 = null; - /**list of displayed block status bars. Defaults to health bar.*/ - public Array bars = Array.with(new BlockBar(Color.RED, false, tile -> tile.entity.health / (float)tile.block().health)); /**whether this block can be replaced in all cases*/ public boolean alwaysReplace = false; /**whether this block has instant transfer checking. used for calculations to prevent infinite loops.*/ public boolean instantTransfer = false; - + /**list of displayed block status bars. Defaults to health bar.*/ + public BlockBars bars = new BlockBars(); + /**List of block stats.*/ public BlockStats stats = new BlockStats(); public Block(String name) { @@ -148,9 +146,9 @@ public class Block extends BaseBlock { //TODO make this easier to config. public void setBars(){ - if(hasPower) bars.add(new BlockBar(Color.YELLOW, true, tile -> tile.entity.power.amount / powerCapacity)); - if(hasLiquids) bars.add(new BlockBar(Color.ROYAL, true, tile -> tile.entity.liquid.amount / liquidCapacity)); - if(hasInventory) bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.totalItems() / itemCapacity)); + if(hasPower) bars.add(new BlockBar(BarType.power, true, tile -> tile.entity.power.amount / powerCapacity)); + if(hasLiquids) bars.add(new BlockBar(BarType.liquid, true, tile -> tile.entity.liquid.amount / liquidCapacity)); + if(hasInventory) bars.add(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity.inventory.totalItems() / itemCapacity)); } public String name(){ diff --git a/core/src/io/anuke/mindustry/world/BlockBar.java b/core/src/io/anuke/mindustry/world/BlockBar.java index 3483880d43..8ece33dc40 100644 --- a/core/src/io/anuke/mindustry/world/BlockBar.java +++ b/core/src/io/anuke/mindustry/world/BlockBar.java @@ -1,15 +1,13 @@ package io.anuke.mindustry.world; -import com.badlogic.gdx.graphics.Color; - public class BlockBar { public final ValueSupplier value; - public final Color color; + public final BarType type; public final boolean top; - public BlockBar(Color color, boolean top, ValueSupplier value) { + public BlockBar(BarType type, boolean top, ValueSupplier value) { this.value = value; - this.color = color; + this.type = type; this.top = top; } diff --git a/core/src/io/anuke/mindustry/world/BlockBars.java b/core/src/io/anuke/mindustry/world/BlockBars.java new file mode 100644 index 0000000000..c68807b386 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/BlockBars.java @@ -0,0 +1,41 @@ +package io.anuke.mindustry.world; + +import com.badlogic.gdx.utils.Array; + +public class BlockBars { + private Array list = Array.with(new BlockBar(BarType.health, false, tile -> tile.entity.health / (float)tile.block().health)); + + public void add(BlockBar bar){ + list.add(bar); + } + + public void replace(BlockBar bar){ + remove(bar.type); + list.add(bar); + } + + public void remove(BarType type){ + for(BlockBar bar : list){ + if(bar.type == type){ + list.removeValue(bar, true); + break; + } + } + } + + public void removeAll(BarType type){ + Array removals = new Array<>(4); + + for(BlockBar bar : list){ + if(bar.type == type){ + removals.add(bar); + } + } + + list.removeAll(removals, true); + } + + public Array list() { + return list; + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/types/BlockStats.java b/core/src/io/anuke/mindustry/world/BlockStats.java similarity index 94% rename from core/src/io/anuke/mindustry/world/blocks/types/BlockStats.java rename to core/src/io/anuke/mindustry/world/BlockStats.java index c847532a8d..eeacc48c5e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/BlockStats.java +++ b/core/src/io/anuke/mindustry/world/BlockStats.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks.types; +package io.anuke.mindustry.world; import com.badlogic.gdx.utils.OrderedMap; import io.anuke.ucore.util.Bundles; diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index d559f6c296..941fce2c0a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -147,7 +147,7 @@ public class ProductionBlocks{ { resource = Blocks.stone; result = Item.stone; - drillTime = 40; + drillTime = 240; } }, @@ -155,7 +155,7 @@ public class ProductionBlocks{ { resource = Blocks.iron; result = Item.iron; - drillTime = 60; + drillTime = 360; } }, @@ -163,7 +163,7 @@ public class ProductionBlocks{ { resource = Blocks.coal; result = Item.coal; - drillTime = 60; + drillTime = 360; } }, @@ -171,7 +171,7 @@ public class ProductionBlocks{ { resource = Blocks.uranium; result = Item.uranium; - drillTime = 70; + drillTime = 540; } }, @@ -179,13 +179,13 @@ public class ProductionBlocks{ { resource = Blocks.titanium; result = Item.titanium; - drillTime = 70; + drillTime = 540; } }, laserdrill = new GenericDrill("laserdrill"){ { - drillTime = 40; + drillTime = 240; size = 2; powerUse = 0.08f; } @@ -193,7 +193,7 @@ public class ProductionBlocks{ nucleardrill = new GenericDrill("nucleardrill"){ { - drillTime = 40; + drillTime = 240; size = 3; powerUse = 0.32f; } @@ -202,7 +202,7 @@ public class ProductionBlocks{ plasmadrill = new GenericDrill("plasmadrill"){ { inputLiquid = Liquid.plasma; - drillTime = 40; + drillTime = 240; size = 4; powerUse = 0.16f; } @@ -212,7 +212,7 @@ public class ProductionBlocks{ { resource = Blocks.sand; result = Item.quartz; - drillTime = 50; + drillTime = 300; size = 2; } }, diff --git a/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java index aabb6a90cd..9c928c1b8e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java @@ -11,6 +11,7 @@ public abstract class PowerBlock extends Block{ super(name); update = true; solid = true; + hasPower = true; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java index d92139b1c2..d8f74fb496 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java @@ -28,7 +28,6 @@ public class RepairTurret extends PowerTurret{ public void setStats(){ super.setStats(); - //TODO remove extra crap stats.add("repairssecond", Strings.toFixed(60f/reload * repairFrac * 100, 1) + "%"); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index 0229810710..da1f1fa42f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -7,10 +7,7 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; -import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.BlockBar; -import io.anuke.mindustry.world.Layer; -import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.*; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; @@ -59,8 +56,11 @@ public class Turret extends Block{ update = true; solid = true; layer = Layer.turret; + } - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity().ammo / maxammo)); + @Override + public void setBars(){ + bars.replace(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity().ammo / maxammo)); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/generation/Generator.java b/core/src/io/anuke/mindustry/world/blocks/types/generation/Generator.java index 3e454609fe..d6ea368877 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/generation/Generator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/generation/Generator.java @@ -24,7 +24,6 @@ import io.anuke.ucore.util.Translator; import static io.anuke.mindustry.Vars.*; public class Generator extends PowerBlock{ - public static final int powerTime = 2; public static boolean drawRangeOverlay = false; protected Translator t1 = new Translator(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/generation/ItemPowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/types/generation/ItemPowerGenerator.java index 5748fe2e99..3198f72d56 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/generation/ItemPowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/generation/ItemPowerGenerator.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.world.blocks.types.generation; import com.badlogic.gdx.graphics.Color; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; +import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; @@ -23,8 +24,12 @@ public class ItemPowerGenerator extends Generator{ public ItemPowerGenerator(String name) { super(name); outputOnly = true; + } - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.getItem(generateItem) / itemCapacity)); + @Override + public void setBars(){ + super.setBars(); + bars.replace(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity.inventory.getItem(generateItem) / itemCapacity)); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/generation/LiquidPowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/types/generation/LiquidPowerGenerator.java index 72dea81622..ed723a0403 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/generation/LiquidPowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/generation/LiquidPowerGenerator.java @@ -23,12 +23,12 @@ public class LiquidPowerGenerator extends Generator{ super(name); outputOnly = true; liquidCapacity = 30f; + hasLiquids = true; } @Override public void setStats(){ super.setStats(); - stats.add("liquidcapacity", (int)liquidCapacity); stats.add("powerliquid", Strings.toFixed(powerPerLiquid, 2) + " power/liquid"); stats.add("maxliquidsecond", Strings.toFixed(maxLiquidGenerate*60f, 2) + " liquid/s"); stats.add("input", generateLiquid); @@ -40,8 +40,6 @@ public class LiquidPowerGenerator extends Generator{ TileEntity entity = tile.entity(); - if(entity.liquid.liquid == null) return; - Draw.color(entity.liquid.liquid.color); Draw.alpha(entity.liquid.amount / liquidCapacity); drawLiquidCenter(tile); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/generation/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/types/generation/NuclearReactor.java index e97cc78d57..24ea04bf88 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/generation/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/generation/NuclearReactor.java @@ -6,6 +6,7 @@ import io.anuke.mindustry.entities.effect.DamageArea; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; @@ -48,9 +49,13 @@ public class NuclearReactor extends LiquidPowerGenerator{ explosive = true; powerCapacity = 80f; powerSpeed = 0.5f; + } - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.getItem(generateItem) / itemCapacity)); - bars.add(new BlockBar(Color.ORANGE, true, tile -> tile.entity().heat)); + @Override + public void setBars(){ + super.setBars(); + bars.replace(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity.inventory.getItem(generateItem) / itemCapacity)); + bars.add(new BlockBar(BarType.heat, true, tile -> tile.entity().heat)); } @Override @@ -183,7 +188,7 @@ public class NuclearReactor extends LiquidPowerGenerator{ return new NuclearReactorEntity(); } - public static class NuclearReactorEntity extends PowerEntity{ + public static class NuclearReactorEntity extends GeneratorEntity{ public float heat; public float flash; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java index f50f7288b4..64e90f176d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java @@ -21,7 +21,7 @@ public class Drill extends Block{ protected Block resource; protected Item result; - protected float drillTime = 5; + protected float drillTime = 300; protected Effect drillEffect = Fx.spark; public Drill(String name) { diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/GenericDrill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/GenericDrill.java index d1debf562e..d01f84c4ad 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/GenericDrill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/GenericDrill.java @@ -46,7 +46,7 @@ public class GenericDrill extends Drill{ } } - if(toAdd.size > 0 && entity.power.amount > powerUse && entity.time >= drillTime + if(toAdd.size > 0 && entity.time >= drillTime && tile.entity.inventory.totalItems() < itemCapacity){ for(Item item : toAdd) offloadNear(tile, item); Effects.effect(drillEffect, tile.drawx(), tile.drawy()); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java index 4a6fd9a264..8a9f54f1eb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java @@ -1,10 +1,10 @@ package io.anuke.mindustry.world.blocks.types.production; -import com.badlogic.gdx.graphics.Color; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; @@ -34,8 +34,15 @@ public class LiquidCrafter extends LiquidBlock{ solid = true; health = 60; liquidCapacity = 21f; + } - bars.add(new BlockBar(Color.GREEN, true, tile -> input == null ? -1f : (float)tile.entity.inventory.getItem(input) / itemCapacity)); + @Override + public void setBars(){ + super.setBars(); + bars.remove(BarType.inventory); + + bars.add(new BlockBar(BarType.inventory, true, + tile -> input == null ? -1f : (float)tile.entity.inventory.getItem(input) / itemCapacity)); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/PowerSmelter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/PowerSmelter.java index ee3438595e..fe2b78b966 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/PowerSmelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/PowerSmelter.java @@ -1,10 +1,10 @@ package io.anuke.mindustry.world.blocks.types.production; -import com.badlogic.gdx.graphics.Color; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.ItemStack; +import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerBlock; @@ -42,9 +42,12 @@ public class PowerSmelter extends PowerBlock { } @Override - public void init(){ + public void setBars(){ + super.setBars(); + bars.remove(BarType.inventory); + for(ItemStack item : inputs){ - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.getItem(item.item)/capacity)); + bars.add(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity.inventory.getItem(item.item)/capacity)); } } @@ -52,7 +55,7 @@ public class PowerSmelter extends PowerBlock { public void setStats(){ super.setStats(); stats.add("input", Arrays.toString(inputs)); - stats.add("powerdrainsecond", Strings.toFixed(powerDrain*60f, 2)); + stats.add("powersecond", Strings.toFixed(powerDrain*60f, 2)); stats.add("output", result); stats.add("fuelduration", Strings.toFixed(burnDuration/60f, 1)); stats.add("maxoutputsecond", Strings.toFixed(60f/craftTime, 1)); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java index 1b06017eb9..f476c123f4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java @@ -1,9 +1,9 @@ package io.anuke.mindustry.world.blocks.types.production; -import com.badlogic.gdx.graphics.Color; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; +import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; @@ -37,9 +37,9 @@ public class Smelter extends Block{ } @Override - public void init(){ + public void setBars(){ for(Item item : inputs){ - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.getItem(item)/capacity)); + bars.add(new BlockBar(BarType.inventory, true, tile -> (float)tile.entity.inventory.getItem(item)/capacity)); } } @@ -51,7 +51,7 @@ public class Smelter extends Block{ stats.add("output", result); stats.add("fuelduration", Strings.toFixed(burnDuration/60f, 1)); stats.add("maxoutputsecond", Strings.toFixed(60f/craftTime, 1)); - stats.add("input capacity", capacity); + stats.add("inputcapacity", capacity); stats.add("outputcapacity", capacity); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java index 1fe3fcc81a..fc0ee7d06d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.world.blocks.types.storage; +import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Tile; @@ -17,6 +18,7 @@ public class CoreBlock extends StorageBlock { solid = true; destructible = true; size = 3; + hasInventory = false; } @Override @@ -31,6 +33,28 @@ public class CoreBlock extends StorageBlock { @Override public boolean acceptItem(Item item, Tile tile, Tile source){ - return item.material && tile.entity.inventory.getItem(item) < capacity; + return item.material && state.inventory.getAmount(item) < capacity; + } + + @Override + public Item removeItem(Tile tile){ + for(int i = 0; i < state.inventory.getItems().length; i ++){ + if(state.inventory.getItems()[i] > 0){ + if(Net.server() || !Net.active()) state.inventory.getItems()[i] --; + return Item.getByID(i); + } + } + return null; + } + + @Override + public boolean hasItem(Tile tile){ + TileEntity entity = tile.entity; + for(int i = 0; i < state.inventory.getItems().length; i ++){ + if(state.inventory.getItems()[i] > 0){ + return true; + } + } + return false; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/storage/StorageBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/storage/StorageBlock.java index 8ca310c8fb..f7941eb3da 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/storage/StorageBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/storage/StorageBlock.java @@ -22,4 +22,14 @@ public abstract class StorageBlock extends Block { } return null; } + + public boolean hasItem(Tile tile){ + TileEntity entity = tile.entity; + for(int i = 0; i < entity.inventory.items.length; i ++){ + if(entity.inventory.items[i] > 0){ + return true; + } + } + return false; + } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/storage/Unloader.java b/core/src/io/anuke/mindustry/world/blocks/types/storage/Unloader.java index 6247da72dd..71f651a477 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/storage/Unloader.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/storage/Unloader.java @@ -19,7 +19,7 @@ public class Unloader extends Block { if(tile.entity.inventory.totalItems() == 0 && tile.entity.timer.get(timerUnload, 5)){ tile.allNearby(other -> { if(other.block() instanceof StorageBlock && tile.entity.inventory.totalItems() == 0 && - other.entity.inventory.totalItems() > 0){ + ((StorageBlock)other.block()).hasItem(other)){ offloadNear(tile, ((StorageBlock)other.block()).removeItem(other)); } }); @@ -35,4 +35,7 @@ public class Unloader extends Block { Block block = to.target().block(); return !(block instanceof StorageBlock); } + + @Override + public void setBars(){} } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/storage/Vault.java b/core/src/io/anuke/mindustry/world/blocks/types/storage/Vault.java index 4355848106..7570917b0b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/storage/Vault.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/storage/Vault.java @@ -1,19 +1,16 @@ package io.anuke.mindustry.world.blocks.types.storage; -import com.badlogic.gdx.graphics.Color; import io.anuke.mindustry.resource.Item; -import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Timers; public class Vault extends StorageBlock { - public int capacity = 1000; public Vault(String name){ super(name); solid = true; update = true; - bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.inventory.totalItems()/capacity)); + itemCapacity = 1000; } @Override @@ -35,7 +32,7 @@ public class Vault extends StorageBlock { @Override public boolean acceptItem(Item item, Tile tile, Tile source) { - return tile.entity.inventory.totalItems() < capacity; + return tile.entity.inventory.totalItems() < itemCapacity; } @Override