From 917e2e40fb839b6afe1b4277bd018c2a22d3727f Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 5 Jun 2018 14:03:08 -0400 Subject: [PATCH] Memory optimizations, multithreading fixes, uCore updated --- build.gradle | 2 +- .../sprites/blocks/extra/shadow-6.png | Bin 0 -> 214 bytes .../shadow-round-2.png} | Bin core/assets/sprites/sprites.atlas | 1035 +++++++++-------- core/assets/sprites/sprites.png | Bin 112576 -> 114190 bytes core/src/io/anuke/mindustry/Mindustry.java | 5 + core/src/io/anuke/mindustry/Vars.java | 2 +- .../io/anuke/mindustry/content/AmmoTypes.java | 7 + .../src/io/anuke/mindustry/content/Items.java | 7 + .../io/anuke/mindustry/content/Liquids.java | 6 + .../src/io/anuke/mindustry/content/Mechs.java | 8 + .../io/anuke/mindustry/content/Recipes.java | 7 + .../mindustry/content/StatusEffects.java | 7 + .../io/anuke/mindustry/content/UnitTypes.java | 8 + .../io/anuke/mindustry/content/Weapons.java | 8 + .../mindustry/content/blocks/BlockList.java | 14 + .../mindustry/content/blocks/Blocks.java | 2 +- .../content/blocks/CraftingBlocks.java | 2 +- .../mindustry/content/blocks/DebugBlocks.java | 2 +- .../content/blocks/DefenseBlocks.java | 2 +- .../content/blocks/DistributionBlocks.java | 2 +- .../content/blocks/LiquidBlocks.java | 2 +- .../mindustry/content/blocks/PowerBlocks.java | 4 +- .../content/blocks/ProductionBlocks.java | 2 +- .../content/blocks/StorageBlocks.java | 2 +- .../mindustry/content/blocks/UnitBlocks.java | 2 +- .../content/blocks/WeaponBlocks.java | 2 +- .../content/bullets/ArtilleryBullets.java | 20 +- .../mindustry/content/bullets/BulletList.java | 14 + .../content/bullets/FlakBullets.java | 10 +- .../content/bullets/MissileBullets.java | 8 +- .../content/bullets/ShellBullets.java | 25 +- .../content/bullets/StandardBullets.java | 14 +- .../content/bullets/TurretBullets.java | 2 +- .../anuke/mindustry/content/fx/BlockFx.java | 12 +- .../anuke/mindustry/content/fx/BulletFx.java | 2 +- .../mindustry/content/fx/EnvironmentFx.java | 2 +- .../mindustry/content/fx/ExplosionFx.java | 2 +- .../src/io/anuke/mindustry/content/fx/Fx.java | 4 +- .../io/anuke/mindustry/content/fx/FxList.java | 13 + .../anuke/mindustry/content/fx/ShootFx.java | 2 +- .../io/anuke/mindustry/content/fx/UnitFx.java | 2 +- .../anuke/mindustry/core/ContentLoader.java | 28 +- core/src/io/anuke/mindustry/core/Control.java | 12 +- core/src/io/anuke/mindustry/core/Logic.java | 2 +- .../src/io/anuke/mindustry/core/Renderer.java | 9 +- core/src/io/anuke/mindustry/core/UI.java | 2 +- core/src/io/anuke/mindustry/core/World.java | 3 +- .../mindustry/editor/MapEditorDialog.java | 11 +- .../anuke/mindustry/editor/MapRenderer.java | 2 +- .../io/anuke/mindustry/entities/Player.java | 22 +- .../entities/bullet/BasicBulletType.java | 19 +- .../mindustry/entities/bullet/BulletType.java | 13 +- .../mindustry/entities/effect/Rubble.java | 2 +- .../entities/traits/BuilderTrait.java | 4 +- .../mindustry/entities/units/FlyingUnit.java | 1 - .../mindustry/entities/units/GroundUnit.java | 3 +- .../mindustry/entities/units/types/Drone.java | 5 +- .../mindustry/entities/units/types/Vtol.java | 28 +- core/src/io/anuke/mindustry/game/Content.java | 18 +- .../anuke/mindustry/game/ContentDatabase.java | 4 +- .../src/io/anuke/mindustry/game/TeamInfo.java | 17 +- .../mindustry/game/UnlockableContent.java | 11 + .../mindustry/graphics/OverlayRenderer.java | 10 +- .../io/anuke/mindustry/graphics/Palette.java | 12 + .../io/anuke/mindustry/graphics/Trail.java | 11 +- .../anuke/mindustry/input/AndroidInput.java | 19 +- .../mindustry/input/DefaultKeybinds.java | 5 +- core/src/io/anuke/mindustry/io/MapIO.java | 6 +- core/src/io/anuke/mindustry/io/Maps.java | 10 +- core/src/io/anuke/mindustry/io/Saves.java | 3 +- .../anuke/mindustry/io/versions/Save16.java | 6 +- .../src/io/anuke/mindustry/type/AmmoType.java | 11 +- .../io/anuke/mindustry/type/ContentList.java | 8 + core/src/io/anuke/mindustry/type/Item.java | 8 +- core/src/io/anuke/mindustry/type/Liquid.java | 8 +- core/src/io/anuke/mindustry/type/Mech.java | 15 + core/src/io/anuke/mindustry/type/Recipe.java | 8 +- .../io/anuke/mindustry/type/StatusEffect.java | 15 +- core/src/io/anuke/mindustry/type/Upgrade.java | 8 +- core/src/io/anuke/mindustry/type/Weapon.java | 12 +- .../io/anuke/mindustry/type/WeatherEvent.java | 8 +- core/src/io/anuke/mindustry/world/Block.java | 76 +- .../mindustry/world/blocks/types/Rock.java | 2 +- .../world/blocks/types/defense/Turret.java | 12 +- .../blocks/types/power/FusionReactor.java | 7 +- .../mindustry/server/MindustryServer.java | 2 + 87 files changed, 1018 insertions(+), 752 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/extra/shadow-6.png rename core/assets-raw/sprites/blocks/{power/powernodelarge-shadow.png => extra/shadow-round-2.png} (100%) create mode 100644 core/src/io/anuke/mindustry/content/blocks/BlockList.java create mode 100644 core/src/io/anuke/mindustry/content/bullets/BulletList.java create mode 100644 core/src/io/anuke/mindustry/content/fx/FxList.java create mode 100644 core/src/io/anuke/mindustry/game/UnlockableContent.java diff --git a/build.gradle b/build.gradle index f999865927..625297b66c 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ allprojects { gdxVersion = '1.9.8' roboVMVersion = '2.3.0' aiVersion = '1.8.1' - uCoreVersion = '8a2faf0' + uCoreVersion = '32c8405' getVersionString = { String buildVersion = getBuildVersion() diff --git a/core/assets-raw/sprites/blocks/extra/shadow-6.png b/core/assets-raw/sprites/blocks/extra/shadow-6.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6da0534901e2234cb5524dc95595d2ef57e835 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=h>cZHTl>Yk8&`osk|nMYCC>S|xv6<249-QVi6yBi3gww484B*6z5(HleBwYw z0iG_7AsP4H-dZTgpdi3}u;pJh8>8=s&FPD-FW>q0Ppmb=M3qQMAr6AzM2N@zx_TSy Y@2{8>{eFGu1e(p@>FVdQ&MBb@05o?uQvd(} literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/power/powernodelarge-shadow.png b/core/assets-raw/sprites/blocks/extra/shadow-round-2.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/powernodelarge-shadow.png rename to core/assets-raw/sprites/blocks/extra/shadow-round-2.png diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 66e98d7d95..3e3cd01da3 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,1113 +13,1113 @@ background index: -1 bridgeconduit rotate: false - xy: 685, 327 + xy: 189, 44 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-arrow rotate: false - xy: 686, 317 + xy: 199, 44 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-bridge rotate: false - xy: 686, 307 + xy: 181, 34 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-end rotate: false - xy: 686, 297 + xy: 181, 24 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor rotate: false - xy: 686, 287 + xy: 191, 34 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-arrow rotate: false - xy: 685, 277 + xy: 181, 14 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-bridge rotate: false - xy: 686, 267 + xy: 191, 24 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-end rotate: false - xy: 658, 154 + xy: 181, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 857, 423 + xy: 695, 231 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-top rotate: false - xy: 857, 413 + xy: 715, 231 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduittunnel rotate: false - xy: 867, 423 + xy: 759, 346 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyor rotate: false - xy: 877, 433 + xy: 759, 336 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyormove rotate: false - xy: 867, 413 + xy: 821, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyortunnel rotate: false - xy: 877, 423 + xy: 821, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 core rotate: false - xy: 93, 17 + xy: 627, 301 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 core-open rotate: false - xy: 572, 258 + xy: 653, 305 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 core-top rotate: false - xy: 598, 258 + xy: 586, 284 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 junction rotate: false - xy: 781, 401 + xy: 221, 24 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit rotate: false - xy: 441, 112 + xy: 221, 14 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-arrow rotate: false - xy: 441, 102 + xy: 221, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-bridge rotate: false - xy: 441, 92 + xy: 673, 217 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-end rotate: false - xy: 451, 108 + xy: 683, 221 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor rotate: false - xy: 461, 108 + xy: 693, 221 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-arrow rotate: false - xy: 451, 98 + xy: 703, 221 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-bridge rotate: false - xy: 471, 108 + xy: 713, 221 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-end rotate: false - xy: 461, 98 + xy: 769, 348 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidjunction rotate: false - xy: 531, 101 + xy: 931, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter rotate: false - xy: 541, 101 + xy: 941, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-bottom rotate: false - xy: 451, 88 + xy: 931, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-liquid rotate: false - xy: 461, 88 + xy: 941, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-top rotate: false - xy: 471, 88 + xy: 951, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidtank-bottom rotate: false - xy: 603, 232 + xy: 545, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquidtank-liquid rotate: false - xy: 629, 232 + xy: 571, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquidtank-top rotate: false - xy: 577, 206 + xy: 467, 150 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 multiplexer rotate: false - xy: 594, 188 + xy: 597, 176 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 overflowgate rotate: false - xy: 561, 87 + xy: 981, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyor rotate: false - xy: 591, 90 + xy: 971, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyormove rotate: false - xy: 601, 90 + xy: 981, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-bottom rotate: false - xy: 641, 90 + xy: 1001, 418 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-top rotate: false - xy: 451, 78 + xy: 981, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 571, 80 + xy: 703, 211 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sortedunloader rotate: false - xy: 675, 245 + xy: 435, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 665, 235 + xy: 445, 96 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 675, 235 + xy: 732, 257 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 665, 225 + xy: 721, 247 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 675, 225 + xy: 731, 247 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 teleporter-top rotate: false - xy: 456, 118 + xy: 411, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unloader rotate: false - xy: 320, 29 + xy: 911, 377 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vault rotate: false - xy: 829, 453 + xy: 587, 232 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 weaponfactory rotate: false - xy: 554, 107 + xy: 165, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blackrock1 rotate: false - xy: 334, 91 + xy: 183, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackrockshadow1 rotate: false - xy: 344, 91 + xy: 615, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone1 rotate: false - xy: 354, 91 + xy: 183, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone2 rotate: false - xy: 364, 91 + xy: 669, 295 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone3 rotate: false - xy: 374, 91 + xy: 643, 291 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock1 rotate: false - xy: 384, 91 + xy: 169, 56 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock2 rotate: false - xy: 310, 79 + xy: 169, 46 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock3 rotate: false - xy: 309, 69 + xy: 179, 64 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneedge rotate: false - xy: 219, 116 + xy: 612, 296 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 coal1 rotate: false - xy: 658, 124 + xy: 201, 34 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 210, 8 + xy: 201, 24 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 847, 431 + xy: 201, 14 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 877, 413 + xy: 821, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 887, 423 + xy: 831, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 897, 433 + xy: 841, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 887, 413 + xy: 831, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirtedge rotate: false - xy: 219, 102 + xy: 572, 244 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 grass1 rotate: false - xy: 917, 413 + xy: 841, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass2 rotate: false - xy: 927, 423 + xy: 851, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 937, 433 + xy: 861, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock1 rotate: false - xy: 927, 413 + xy: 851, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock2 rotate: false - xy: 937, 423 + xy: 861, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassedge rotate: false - xy: 1010, 485 + xy: 624, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 ice1 rotate: false - xy: 947, 433 + xy: 871, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice2 rotate: false - xy: 937, 413 + xy: 861, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 947, 423 + xy: 871, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iceedge rotate: false - xy: 280, 63 + xy: 624, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 icerock1 rotate: false - xy: 957, 433 + xy: 871, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 947, 413 + xy: 881, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 957, 423 + xy: 881, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 957, 423 + xy: 881, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 967, 433 + xy: 881, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 967, 433 + xy: 881, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 977, 433 + xy: 901, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 967, 413 + xy: 891, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 977, 423 + xy: 911, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 471, 98 + xy: 769, 338 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavaedge rotate: false - xy: 296, 79 + xy: 638, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 lead1 rotate: false - xy: 491, 101 + xy: 779, 339 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead2 rotate: false - xy: 501, 101 + xy: 789, 351 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 511, 101 + xy: 789, 341 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 501, 91 + xy: 951, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 511, 91 + xy: 961, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 521, 91 + xy: 941, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 531, 91 + xy: 951, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 541, 91 + xy: 961, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 551, 97 + xy: 971, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalflooredge rotate: false - xy: 232, 47 + xy: 638, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mossblock rotate: false - xy: 561, 97 + xy: 951, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 441, 82 + xy: 961, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oiledge rotate: false - xy: 246, 47 + xy: 652, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 rock1 rotate: false - xy: 551, 77 + xy: 683, 211 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 561, 77 + xy: 693, 211 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 601, 80 + xy: 229, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 611, 80 + xy: 241, 57 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 621, 80 + xy: 239, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 631, 80 + xy: 231, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 641, 80 + xy: 231, 27 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 220, 8 + xy: 231, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 260, 47 + xy: 652, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shrub rotate: false - xy: 290, 21 + xy: 251, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 310, 19 + xy: 251, 27 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 655, 255 + xy: 746, 269 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 655, 245 + xy: 435, 125 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 665, 255 + xy: 435, 115 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 655, 235 + xy: 435, 105 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 675, 255 + xy: 445, 126 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 665, 245 + xy: 445, 116 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 648, 192 + xy: 645, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 space rotate: false - xy: 655, 215 + xy: 722, 257 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 spaceedge rotate: false - xy: 648, 178 + xy: 642, 219 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 stone1 rotate: false - xy: 491, 71 + xy: 725, 227 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 501, 71 + xy: 735, 227 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 511, 71 + xy: 723, 217 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 521, 71 + xy: 733, 217 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 531, 71 + xy: 745, 237 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 541, 71 + xy: 745, 227 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 644, 136 + xy: 656, 219 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 591, 70 + xy: 751, 247 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 601, 70 + xy: 755, 237 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 611, 70 + xy: 755, 227 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 621, 70 + xy: 753, 217 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 631, 70 + xy: 753, 207 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 641, 70 + xy: 831, 373 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 571, 60 + xy: 941, 379 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 668, 277 + xy: 708, 265 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 block-border rotate: false - xy: 431, 100 + xy: 199, 64 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-middle rotate: false - xy: 685, 347 + xy: 199, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 685, 347 + xy: 199, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 border rotate: false - xy: 685, 337 + xy: 179, 44 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 867, 433 + xy: 705, 231 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-1 rotate: false - xy: 887, 433 + xy: 821, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-2 rotate: false - xy: 781, 411 + xy: 517, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cross-3 rotate: false - xy: 624, 258 + xy: 467, 176 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 cross-4 rotate: false - xy: 656, 357 + xy: 95, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 enemyspawn rotate: false - xy: 907, 413 + xy: 851, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 nuclearreactor-shadow rotate: false - xy: 549, 215 + xy: 831, 451 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 571, 90 + xy: 991, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 playerspawn rotate: false - xy: 581, 90 + xy: 961, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ripples rotate: false - xy: 297, 67 + xy: 809, 395 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 rubble-1-0 rotate: false - xy: 594, 170 + xy: 789, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-1-1 rotate: false - xy: 612, 170 + xy: 807, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-0 rotate: false - xy: 630, 170 + xy: 733, 374 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-1 rotate: false - xy: 572, 152 + xy: 733, 356 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-3-0 rotate: false - xy: 456, 144 + xy: 359, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 rubble-3-1 rotate: false - xy: 456, 144 + xy: 359, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shadow-1 rotate: false - xy: 530, 111 + xy: 787, 383 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 shadow-2 rotate: false - xy: 106, 43 + xy: 209, 132 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 shadow-3 rotate: false - xy: 755, 459 + xy: 859, 451 size: 26, 26 orig: 26, 26 offset: 0, 0 @@ -1133,1421 +1133,1428 @@ shadow-4 index: -1 shadow-5 rotate: false - xy: 66, 63 + xy: 131, 128 size: 42, 42 orig: 42, 42 offset: 0, 0 index: -1 +shadow-6 + rotate: false + xy: 627, 373 + size: 50, 50 + orig: 50, 50 + offset: 0, 0 + index: -1 shadow-round-1 rotate: false - xy: 542, 111 + xy: 775, 359 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +shadow-round-2 + rotate: false + xy: 587, 212 + size: 18, 18 + orig: 18, 18 + offset: 0, 0 + index: -1 battery rotate: false - xy: 313, 99 + xy: 183, 110 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 batterylarge rotate: false - xy: 755, 433 + xy: 887, 453 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 combustiongenerator rotate: false - xy: 847, 421 + xy: 201, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustiongenerator-top rotate: false - xy: 847, 411 + xy: 673, 227 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fusionreactor rotate: false - xy: 721, 422 + xy: 271, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-bottom rotate: false - xy: 651, 323 + xy: 305, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-light rotate: false - xy: 806, 479 + xy: 339, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-plasma-0 rotate: false - xy: 840, 479 + xy: 373, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-plasma-1 rotate: false - xy: 874, 479 + xy: 489, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-plasma-2 rotate: false - xy: 908, 479 + xy: 523, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-plasma-3 rotate: false - xy: 942, 479 + xy: 131, 94 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fusionreactor-top rotate: false - xy: 976, 479 + xy: 129, 60 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 largesolarpanel rotate: false - xy: 577, 232 + xy: 519, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquidcombustiongenerator rotate: false - xy: 521, 101 + xy: 931, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 nuclearreactor rotate: false - xy: 167, 104 + xy: 229, 143 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 nuclearreactor-center rotate: false - xy: 193, 104 + xy: 572, 258 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 nuclearreactor-lights rotate: false - xy: 162, 78 + xy: 598, 258 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 powerinfinite rotate: false - xy: 611, 90 + xy: 971, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernode rotate: false - xy: 621, 90 + xy: 981, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernodelarge rotate: false - xy: 554, 143 + xy: 731, 392 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -powernodelarge-shadow - rotate: false - xy: 783, 467 - size: 18, 18 - orig: 18, 18 - offset: 0, 0 - index: -1 powervoid rotate: false - xy: 631, 90 + xy: 991, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator rotate: false - xy: 581, 80 + xy: 713, 211 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator-top rotate: false - xy: 591, 80 + xy: 231, 57 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldgenerator rotate: false - xy: 300, 35 + xy: 241, 27 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldprojector rotate: false - xy: 572, 134 + xy: 741, 338 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 solarpanel rotate: false - xy: 655, 225 + xy: 445, 106 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 teleporter rotate: false - xy: 430, 132 + xy: 385, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 teleporter-top rotate: false - xy: 803, 453 + xy: 437, 136 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thermalgenerator rotate: false - xy: 581, 70 + xy: 743, 207 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 alloysmelter rotate: false - xy: 126, 55 + xy: 165, 118 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 biomattercompressor rotate: false - xy: 131, 108 + xy: 145, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 biomattercompressor-frame0 rotate: false - xy: 149, 108 + xy: 145, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 biomattercompressor-frame1 rotate: false - xy: 855, 461 + xy: 613, 240 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 biomattercompressor-frame2 rotate: false - xy: 873, 461 + xy: 679, 365 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 biomattercompressor-liquid rotate: false - xy: 891, 461 + xy: 677, 347 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 biomattercompressor-top rotate: false - xy: 909, 461 + xy: 679, 313 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 centrifuge rotate: false - xy: 963, 461 + xy: 463, 132 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 centrifuge-liquid rotate: false - xy: 981, 461 + xy: 481, 132 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 287, 109 + xy: 165, 100 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 305, 109 + xy: 613, 222 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 214, 84 + xy: 697, 365 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator rotate: false - xy: 214, 66 + xy: 695, 347 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 214, 48 + xy: 715, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 323, 101 + xy: 697, 313 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 extractor rotate: false - xy: 917, 423 + xy: 831, 393 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fluxpump rotate: false - xy: 927, 433 + xy: 871, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 incinerator rotate: false - xy: 967, 423 + xy: 891, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill rotate: false - xy: 987, 433 + xy: 891, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-rotator rotate: false - xy: 977, 413 + xy: 901, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-rotator rotate: false - xy: 977, 413 + xy: 901, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-top rotate: false - xy: 987, 423 + xy: 921, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 300, 45 + xy: 211, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 310, 49 + xy: 221, 34 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserdrill rotate: false - xy: 981, 443 + xy: 571, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-rotator rotate: false - xy: 999, 443 + xy: 589, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-top rotate: false - xy: 576, 188 + xy: 597, 194 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 lavasmelter rotate: false - xy: 481, 101 + xy: 779, 349 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 481, 91 + xy: 931, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 491, 91 + xy: 941, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 nucleardrill rotate: false - xy: 603, 206 + xy: 493, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 nucleardrill-rim rotate: false - xy: 629, 206 + xy: 519, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 nucleardrill-rotator rotate: false - xy: 136, 82 + xy: 545, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 nucleardrill-top rotate: false - xy: 136, 56 + xy: 571, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oilextractor rotate: false - xy: 188, 78 + xy: 229, 117 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oilextractor-liquid rotate: false - xy: 162, 52 + xy: 255, 127 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oilextractor-rotator rotate: false - xy: 188, 52 + xy: 281, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oilextractor-top rotate: false - xy: 119, 17 + xy: 307, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oilrefinery rotate: false - xy: 551, 87 + xy: 971, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 plasmadrill rotate: false - xy: 268, 161 + xy: 805, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plasmadrill-rim rotate: false - xy: 302, 161 + xy: 839, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plasmadrill-rotator rotate: false - xy: 336, 161 + xy: 873, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plasmadrill-top rotate: false - xy: 370, 161 + xy: 907, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plasticformer rotate: false - xy: 612, 188 + xy: 597, 158 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 plasticformer-top rotate: false - xy: 630, 188 + xy: 607, 140 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter rotate: false - xy: 558, 179 + xy: 607, 122 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter-top rotate: false - xy: 554, 161 + xy: 731, 410 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter rotate: false - xy: 554, 125 + xy: 753, 430 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter-top rotate: false - xy: 576, 170 + xy: 771, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 siliconsmelter-top rotate: false - xy: 576, 170 + xy: 771, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 461, 78 + xy: 991, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 471, 78 + xy: 1001, 408 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump rotate: false - xy: 481, 81 + xy: 991, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill rotate: false - xy: 491, 81 + xy: 1001, 398 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-rotator rotate: false - xy: 501, 81 + xy: 1001, 388 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-top rotate: false - xy: 511, 81 + xy: 1011, 418 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 280, 29 + xy: 231, 7 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 290, 31 + xy: 241, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 300, 15 + xy: 251, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconsmelter rotate: false - xy: 590, 152 + xy: 163, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 smelter rotate: false - xy: 310, 9 + xy: 251, 7 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill rotate: false - xy: 665, 215 + xy: 742, 257 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-rotator rotate: false - xy: 675, 215 + xy: 741, 247 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-top rotate: false - xy: 394, 85 + xy: 725, 237 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrill rotate: false - xy: 551, 67 + xy: 743, 217 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 561, 67 + xy: 723, 207 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill rotate: false - xy: 404, 85 + xy: 841, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-top rotate: false - xy: 414, 86 + xy: 851, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 waterextractor rotate: false - xy: 626, 152 + xy: 615, 168 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-liquid rotate: false - xy: 626, 134 + xy: 625, 150 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-rotator rotate: false - xy: 572, 116 + xy: 625, 132 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-top rotate: false - xy: 590, 116 + xy: 625, 114 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-1 rotate: false - xy: 431, 110 + xy: 189, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-2 rotate: false - xy: 927, 461 + xy: 175, 120 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-2-top rotate: false - xy: 945, 461 + xy: 255, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-3 rotate: false - xy: 586, 284 + xy: 913, 453 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-3-top rotate: false - xy: 612, 284 + xy: 939, 445 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-4 rotate: false - xy: 656, 391 + xy: 95, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-4-top rotate: false - xy: 721, 456 + xy: 175, 138 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-heat rotate: false - xy: 482, 111 + xy: 763, 370 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 arc rotate: false - xy: 126, 43 + xy: 612, 284 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 138, 44 + xy: 631, 289 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 crux rotate: false - xy: 999, 461 + xy: 535, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-heat rotate: false - xy: 233, 109 + xy: 553, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-left rotate: false - xy: 251, 109 + xy: 571, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-right rotate: false - xy: 269, 109 + xy: 209, 114 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 duo rotate: false - xy: 907, 423 + xy: 861, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fuse rotate: false - xy: 755, 407 + xy: 493, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spectre rotate: false - xy: 755, 407 + xy: 493, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 lancer rotate: false - xy: 835, 405 + xy: 797, 395 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 286, 51 + xy: 809, 407 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 meltdown rotate: false - xy: 234, 161 + xy: 771, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 456, 170 + xy: 333, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scatter rotate: false - xy: 298, 55 + xy: 763, 382 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scatter-heat rotate: false - xy: 494, 111 + xy: 763, 358 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch rotate: false - xy: 506, 111 + xy: 775, 383 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch-shoot rotate: false - xy: 518, 111 + xy: 775, 371 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 swarmer rotate: false - xy: 608, 152 + xy: 615, 204 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave rotate: false - xy: 608, 116 + xy: 607, 104 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 626, 116 + xy: 625, 96 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory rotate: false - xy: 377, 101 + xy: 273, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory rotate: false - xy: 377, 101 + xy: 273, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory-top rotate: false - xy: 486, 195 + xy: 291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top rotate: false - xy: 486, 195 + xy: 291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory-top-open rotate: false - xy: 504, 195 + xy: 309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top-open rotate: false - xy: 504, 195 + xy: 309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 droppoint rotate: false - xy: 897, 413 + xy: 831, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint rotate: false - xy: 521, 81 + xy: 1011, 408 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint-turret rotate: false - xy: 531, 81 + xy: 1011, 398 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 resupplypoint rotate: false - xy: 541, 81 + xy: 1011, 388 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 compositewall rotate: false - xy: 857, 433 + xy: 685, 231 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door rotate: false - xy: 897, 423 + xy: 851, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door-large rotate: false - xy: 341, 101 + xy: 679, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 359, 101 + xy: 697, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-open rotate: false - xy: 907, 433 + xy: 841, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall rotate: false - xy: 917, 433 + xy: 841, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall-large rotate: false - xy: 522, 195 + xy: 327, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 ironwall rotate: false - xy: 997, 433 + xy: 891, 397 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 481, 71 + xy: 735, 237 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall-large rotate: false - xy: 590, 134 + xy: 163, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 stonewall rotate: false - xy: 571, 70 + xy: 733, 207 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumshieldwall rotate: false - xy: 320, 79 + xy: 861, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall rotate: false - xy: 319, 69 + xy: 871, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall-large rotate: false - xy: 608, 134 + xy: 615, 186 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 beam rotate: false - xy: 427, 143 + xy: 486, 208 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 beam-end rotate: false - xy: 566, 290 + xy: 209, 152 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 blank rotate: false - xy: 401, 158 + xy: 566, 287 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 bullet rotate: false - xy: 145, 17 + xy: 631, 222 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 156, 17 + xy: 787, 372 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 casing rotate: false - xy: 644, 164 + xy: 463, 156 size: 2, 4 orig: 2, 4 offset: 0, 0 index: -1 clear rotate: false - xy: 566, 287 + xy: 229, 169 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 enemyarrow rotate: false - xy: 427, 120 + xy: 731, 347 size: 8, 7 orig: 8, 7 offset: 0, 0 index: -1 laser rotate: false - xy: 427, 129 + xy: 666, 275 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 laser-end rotate: false - xy: 66, 43 + xy: 129, 40 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 laserfull rotate: false - xy: 86, 43 + xy: 466, 202 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 minelaser rotate: false - xy: 682, 277 + xy: 607, 218 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 466, 202 + xy: 566, 290 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 shell rotate: false - xy: 199, 25 + xy: 799, 384 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 shell-back rotate: false - xy: 199, 14 + xy: 787, 361 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 shot rotate: false - xy: 310, 29 + xy: 249, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer rotate: false - xy: 294, 63 + xy: 610, 218 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 320, 59 + xy: 881, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer-end rotate: false - xy: 783, 447 + xy: 149, 40 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 item-armor-piercing-bullet rotate: false - xy: 987, 413 + xy: 901, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-composite-flak rotate: false - xy: 1007, 423 + xy: 921, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-explosive-shell rotate: false - xy: 1007, 413 + xy: 911, 397 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-frag-shell rotate: false - xy: 847, 401 + xy: 921, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-homing-bullet rotate: false - xy: 857, 403 + xy: 921, 397 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-incendiary-mortar-shell rotate: false - xy: 867, 403 + xy: 821, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead-bullet rotate: false - xy: 897, 403 + xy: 851, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-scythe-missile rotate: false - xy: 927, 403 + xy: 881, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-mortar-shell rotate: false - xy: 977, 403 + xy: 209, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-swarm-missile rotate: false - xy: 987, 403 + xy: 209, 44 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium-shell rotate: false - xy: 431, 90 + xy: 211, 34 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-tracer-bullet rotate: false - xy: 290, 41 + xy: 211, 14 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-biomatter rotate: false - xy: 997, 423 + xy: 911, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1007, 433 + xy: 901, 397 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 997, 413 + xy: 911, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-iron rotate: false - xy: 877, 403 + xy: 831, 383 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 887, 403 + xy: 841, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plastic rotate: false - xy: 907, 403 + xy: 861, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 917, 403 + xy: 871, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 937, 403 + xy: 891, 387 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-steel rotate: false - xy: 947, 403 + xy: 901, 387 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 957, 403 + xy: 911, 387 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 967, 403 + xy: 921, 387 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thermite rotate: false - xy: 997, 403 + xy: 219, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1007, 403 + xy: 219, 44 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 280, 39 + xy: 211, 24 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 standard-mech rotate: false - xy: 648, 164 + xy: 659, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-ship rotate: false - xy: 644, 150 + xy: 659, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -2596,7 +2603,7 @@ shape-7 index: -1 border rotate: false - xy: 155, 130 + xy: 651, 331 size: 24, 40 split: 5, 5, 5, 10 orig: 24, 40 @@ -2604,7 +2611,7 @@ border index: -1 button rotate: false - xy: 323, 119 + xy: 705, 385 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -2612,7 +2619,7 @@ button index: -1 textarea rotate: false - xy: 323, 119 + xy: 705, 385 size: 24, 40 split: 10, 10, 9, 11 orig: 24, 40 @@ -2620,7 +2627,7 @@ textarea index: -1 button-down rotate: false - xy: 181, 130 + xy: 745, 448 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -2628,7 +2635,7 @@ button-down index: -1 button-over rotate: false - xy: 181, 130 + xy: 745, 448 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -2636,7 +2643,7 @@ button-over index: -1 button-map rotate: false - xy: 110, 65 + xy: 679, 383 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -2644,7 +2651,7 @@ button-map index: -1 button-map-down rotate: false - xy: 207, 130 + xy: 67, 2 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -2652,7 +2659,7 @@ button-map-down index: -1 button-map-over rotate: false - xy: 207, 130 + xy: 67, 2 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -2660,7 +2667,7 @@ button-map-over index: -1 button-select rotate: false - xy: 67, 17 + xy: 965, 445 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -2675,35 +2682,35 @@ check-off index: -1 check-on rotate: false - xy: 233, 127 + xy: 407, 161 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 263, 127 + xy: 437, 162 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 293, 127 + xy: 557, 209 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 150, 44 + xy: 722, 267 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 cursor rotate: false - xy: 1010, 479 + xy: 209, 90 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -2724,658 +2731,658 @@ discord-banner-over index: -1 controller-cursor rotate: false - xy: 781, 429 + xy: 499, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-about rotate: false - xy: 67, 1 + xy: 255, 153 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-add rotate: false - xy: 83, 1 + xy: 721, 428 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-admin rotate: false - xy: 99, 1 + xy: 677, 331 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-admin-small rotate: false - xy: 1017, 477 + xy: 271, 153 size: 6, 6 orig: 6, 6 offset: 0, 0 index: -1 icon-areaDelete rotate: false - xy: 650, 265 + xy: 734, 267 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 482, 177 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-16 rotate: false - xy: 482, 177 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 662, 265 + xy: 673, 249 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 674, 265 + xy: 673, 237 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 395, 107 + xy: 685, 253 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 407, 108 + xy: 685, 241 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-back rotate: false - xy: 482, 159 + xy: 363, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-ban rotate: false - xy: 115, 1 + xy: 193, 122 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-break rotate: false - xy: 500, 177 + xy: 381, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 482, 141 + xy: 399, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 419, 108 + xy: 697, 253 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-check rotate: false - xy: 500, 159 + xy: 417, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 803, 441 + xy: 697, 241 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 815, 441 + xy: 709, 253 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 827, 441 + xy: 709, 241 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-dev-builds rotate: false - xy: 131, 1 + xy: 693, 331 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 572, 100 + xy: 193, 106 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 839, 441 + xy: 749, 416 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 588, 100 + xy: 709, 331 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 604, 100 + xy: 725, 331 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 620, 100 + xy: 193, 90 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-egg rotate: false - xy: 636, 100 + xy: 737, 428 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 145, 28 + xy: 163, 66 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-file rotate: false - xy: 518, 177 + xy: 713, 347 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-image rotate: false - xy: 482, 123 + xy: 715, 313 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 147, 1 + xy: 183, 74 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 500, 141 + xy: 715, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 162, 36 + xy: 199, 74 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-floppy-16 rotate: false - xy: 518, 159 + xy: 589, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 178, 36 + xy: 825, 433 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 194, 36 + xy: 841, 435 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-github rotate: false - xy: 210, 32 + xy: 857, 435 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 163, 1 + xy: 873, 435 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 500, 123 + xy: 291, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-hold rotate: false - xy: 799, 429 + xy: 749, 404 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 799, 417 + xy: 749, 392 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 167, 20 + xy: 889, 437 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 183, 20 + xy: 905, 437 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 811, 429 + xy: 751, 380 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 179, 4 + xy: 921, 437 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-items-none rotate: false - xy: 957, 413 + xy: 881, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-line rotate: false - xy: 518, 141 + xy: 309, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-link rotate: false - xy: 638, 300 + xy: 215, 80 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 811, 417 + xy: 751, 368 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-load rotate: false - xy: 638, 284 + xy: 231, 83 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 518, 123 + xy: 327, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 540, 195 + xy: 345, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 536, 177 + xy: 363, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-logic rotate: false - xy: 823, 429 + xy: 751, 356 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 823, 417 + xy: 761, 418 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 536, 159 + xy: 381, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-none rotate: false - xy: 835, 429 + xy: 761, 406 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 835, 417 + xy: 761, 394 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 536, 141 + xy: 399, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 654, 307 + xy: 937, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 536, 123 + xy: 417, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 395, 95 + xy: 773, 419 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 654, 291 + xy: 953, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 407, 96 + xy: 785, 419 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 419, 96 + xy: 773, 407 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 274, 49 + xy: 797, 419 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 670, 307 + xy: 969, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 558, 197 + xy: 209, 96 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 670, 291 + xy: 215, 64 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 233, 93 + xy: 231, 67 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 855, 443 + xy: 227, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 249, 93 + xy: 985, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 265, 93 + xy: 993, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 281, 93 + xy: 1009, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 297, 93 + xy: 1005, 444 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 232, 77 + xy: 1001, 428 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 873, 443 + xy: 733, 313 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 891, 443 + xy: 733, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 268, 35 + xy: 773, 395 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 909, 443 + xy: 499, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 232, 61 + xy: 653, 289 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 195, 2 + xy: 785, 407 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 799, 405 + xy: 809, 419 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 248, 77 + xy: 669, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 927, 443 + xy: 517, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 248, 61 + xy: 685, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 264, 77 + xy: 701, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 945, 443 + xy: 535, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 811, 405 + xy: 785, 395 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-weapon rotate: false - xy: 823, 405 + xy: 797, 407 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 264, 61 + xy: 717, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 963, 443 + xy: 553, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 280, 77 + xy: 733, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3389,7 +3396,7 @@ logotext index: -1 pane rotate: false - xy: 430, 158 + xy: 119, 1 size: 24, 36 split: 10, 10, 5, 5 orig: 24, 36 @@ -3397,7 +3404,7 @@ pane index: -1 pane-button rotate: false - xy: 404, 157 + xy: 93, 1 size: 24, 36 split: 10, 10, 5, 5 orig: 24, 36 @@ -3405,7 +3412,7 @@ pane-button index: -1 scroll rotate: false - xy: 401, 120 + xy: 993, 476 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -3413,7 +3420,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 769, 487 + xy: 234, 169 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -3430,7 +3437,7 @@ scroll-knob-horizontal index: -1 scroll-knob-vertical rotate: false - xy: 375, 119 + xy: 967, 471 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -3438,7 +3445,7 @@ scroll-knob-vertical index: -1 scroll-knob-vertical-black rotate: false - xy: 349, 119 + xy: 941, 471 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -3446,42 +3453,42 @@ scroll-knob-vertical-black index: -1 selection rotate: false - xy: 803, 484 + xy: 145, 1 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 207, 4 + xy: 670, 223 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 131, 126 + xy: 627, 327 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 627, 316 + xy: 721, 444 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 627, 316 + xy: 721, 444 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-vertical rotate: false - xy: 755, 487 + xy: 587, 209 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -3509,7 +3516,7 @@ text-sides-over index: -1 textfield rotate: false - xy: 519, 213 + xy: 801, 449 size: 28, 28 split: 6, 6, 6, 6 orig: 28, 28 @@ -3517,7 +3524,7 @@ textfield index: -1 textfield-over rotate: false - xy: 489, 213 + xy: 771, 449 size: 28, 28 split: 2, 2, 2, 2 orig: 28, 28 @@ -3525,14 +3532,14 @@ textfield-over index: -1 white rotate: false - xy: 651, 357 + xy: 1, 1 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window rotate: false - xy: 692, 427 + xy: 66, 44 size: 27, 61 split: 8, 8, 44, 11 orig: 27, 61 @@ -3540,7 +3547,7 @@ window index: -1 window-empty rotate: false - xy: 627, 362 + xy: 692, 427 size: 27, 61 split: 8, 8, 44, 11 orig: 27, 61 @@ -3548,147 +3555,147 @@ window-empty index: -1 drone rotate: false - xy: 1010, 499 + xy: 991, 446 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout rotate: false - xy: 226, 33 + xy: 631, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-base rotate: false - xy: 240, 33 + xy: 631, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-base rotate: false - xy: 240, 33 + xy: 631, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-leg rotate: false - xy: 254, 33 + xy: 645, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-leg rotate: false - xy: 254, 33 + xy: 645, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol rotate: false - xy: 644, 122 + xy: 666, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-1 rotate: false - xy: 210, 18 + xy: 680, 265 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-2 rotate: false - xy: 654, 277 + xy: 694, 265 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-flame rotate: false - xy: 323, 90 + xy: 810, 384 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 beam-equip rotate: false - xy: 313, 89 + xy: 245, 107 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster rotate: false - xy: 310, 59 + xy: 179, 54 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 437, 122 + xy: 189, 64 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun rotate: false - xy: 658, 144 + xy: 191, 14 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 658, 134 + xy: 191, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun rotate: false - xy: 310, 39 + xy: 241, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 300, 25 + xy: 241, 7 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 320, 49 + xy: 891, 377 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 320, 39 + xy: 901, 377 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 320, 19 + xy: 921, 377 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 320, 9 + xy: 931, 379 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index a786cb3802150dedbbefa816a1bf028ff1daddc4..c335cada75f025023673853f804f882aaf483e19 100644 GIT binary patch literal 114190 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�N?dg^6@BO!H2 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 _d&h+u9g2{?j+{C}V zQ;M-glWP0sbbvTK5}&`j4i40#&6iShu4Pimu*XyO7h@i)nn&z9;Ej>J!(!Ubb8x zy@|M?M0qbxs#LBFivftmZ??7nO4mRTb#V5B&7cINqAC}N`fF{NCkU+7VHG3ept+bz z)vAgqjf3t0Jht)v;!6t(dos0T39R*^PckbF4rC}JYiny=4A+MRolMY`(VE(A>sD5M zR?4f@B+RU63u+cxn>WgG^`kF;$FA^wi&UOAd~A+&{m~QFLN}rP9q>MznTaorzi~tE3r5{|h5{xk<6oJ>1-2O=zi7C}rZs=YcA> zkSd%O@Z(~?CyoCgoW5KSlevvN>UzBh=%;AviptQvE&p@;8h3DRDD73&6|ywfZ&V3W z@Hqc%sr;Cs4x&)c%%At-N0g5uyXR!oc(?+iF+Y-Fk-IHs1&wkvq+&2;t{ifc!e6A6 zMc@6b6Xm5eYe($~$o|q06ixuj81h7cj{l_;FlJgZ5oaQ}Yqo=p9B%Ap`ZZBHX8)%acQi3P9t{HW_{`S~`0HIs|@A(?1{ozj9JVYU#in zz=dBl$=+~NMQj<-ryE4|93nMx|AB|dLloIbMlS`4Wa-Yxxn_rex&=oNgmapwvhw(7 z?Qa!@{HWc)fULGRLOQXptIY|%t>z?>T{sLO*fziV+=KJ`V-ySO-Ch9a@b8Qe$|p_D zDwti__kGWrTcFfNUN1>ei1Fwb{8kO5`M>J^BOU{q{<%l?0fW$zg?E@B(&CfABPx}xWE|#WmYg%zvZXj8+8%Lq<(lrpo)9f5Y%@ITar2yCRmVE{aNTv{u&N20 z;i|IY?#NdxSP^zoBFdMvg#Mp#7tI4iiddqC|(ppulWx-*>?} zQcqJQwbVZe+sgRh=r{Xb9X@JWyG{GWkFiH0*>{2T&FD_3XfmbzH$vP$1Od+!x}|Nr z%`(~J`5jdG>d72U?>6G@?N)!&n*5}CM}{N}#|CcssFBizZql+nYbWl5}#V{5>qO-g)J@2;eqAd4gwG}PYOgO2EP&I>$-xP`_MZTu8$3)U(Y1XL#gY66#m0Zw4#diRvdcv zw?_shXFK=386VspCf{Fhm{B*c&}yrVWm0XV3h~iQwX0VevkzK-@8X9?{@Kmqopjx? zrnkHl8h#~hZ7;n;5dRL5q-6F$lXAiDm6A$ff+p5<)MTXwm;Ghmwhw2(tUuXLhtL?$1_?Gx%1l0<2;{UIpEs& z;2J?x7PAXmgV?vutLji6J9v{)J9SivW=`$y>5v3HkG|PUxrJRqPbS zQX72Bx|Jrso5{jRE_%){%1BzKLolVgL=@>OHCsn@(egAER5H+DB!?GXN1BjxbV0IY z2-?NT(k)6B$t7JrOfZAV%94+epoQT&LH?`AKzVB?L2Th2b0#4G+zgHcRIj&_S zyVkq@m^|-;!iheM%JGvwa$WV1hwRcNo3H4w_Ag;AaJYiEG*sGQ69uOTjEoyDH!6~d z+q<@`B<#{h-g0cxT>Y^Zr(50Dgj^E%k16nu{QP*gTa{u>>b%}2L6gST79HFR5`CvW z_qM^CccLr(tL0EwiMrE{(vjl>HYRe&*xFed!|82S@QKJ$9`K1)L?ic&Fl1;lvp=Da zl)dj_oh#-t6$yA`R^AYBtzY@CI%gcGrVYcW@onfGLh|gDIO(~Gmll!0O1W+IKo)gB z2CMlt*aGe=pf=D%=eHqsSgR$_|5ig03f$9^%k>Rz8XaXfX-rv@<_Wz&YZ*p+SLl$+H`gfhPeX@JqYBO%BPw+q6?2m5DyT zxsx04)58{HjI2&8vFa15&oD&APqFQL5C_iE3tVdx@$BcK(^KJd{)fFHb6(s$u)5_Z1{I*wrOWVDr|BB)d3_57m$Z8b^|5| zOqS9QK}n3l&HRYH*-0qQ0{4DK?;mq{wOfknGx0c9>ZtMC-7n&$g7$OzgaE~-Vl1EW z^gGz}XPnOa4bL9WTO?K1y1culcSX$A8vqd<{uR=8VeQ6C*{#d)#yoEVBdzE9O)O(* z0z#(xW=wOJ26eh{wU$>Z3Z0MkH?wJEbgM~{6j!+K%v|{?CF`w07o{71{ZHDEI@+^< zRgbK2WzssT_1(a&*u0PXU&MDT9r|`w@xVg4Y7Udy&l;Giw|l4K8qDRW2w#C zLI;`bG~R*@D1t~J&tYFaK^#7hpqf~vX@~S+*og$4D%V9G+9=L0g%QtTb8_3ZFqL|t zU+*Ns^w%ARecWWJya2wc@epp$Nr+hS_oFe;(?br3xv(M#< zZ|03hNv5sk%0r*Cp=a)NBP$sn<_n)$yklO|#O@QS1){0z2&o`TG6Wf^0u8o=F;Kq3 zPNsU#;V2F}#w$i1ZC*(Tkwl%7k;c0_Q-Iwex}rGib9#Dl>qgn~kN3}fvufPdV0wgl zBE`Niv9AAntAEJxwZ~l-{eJ0r!P>Jjt@bm}mmTl2W1Ko{%5SM5r`bPl*F>bL(}J@G z#~$%+i$ZNLxEkYCI?5iFH|5mkzr3opz@>#5`$bCqB!Tq>6HWEGdtk^yxW7Etr_slW zkai7mRnV^aQ6IT?Z+;8zt#FtV*|)#rw5Wh)wEq@btf%LEam&HTNVBY7hx|5k1G#`# z`qRtu`S)s$(Jrj-6s*u#c`^pwOS-|bW^@Uk$&YDaO9Ldu^s-|gzC%KymRpQ<3M{HZ;1QfUC|Z(Ui57QiJFO` zh*ZUJoFheKCE49xJltBb6O)NXveD>UCiH_ODFT=f=qM+Cw~_@M$Pmf?6{;if%Tqce zk197rN#h!~32Z6nnXIw(jKGMCO?$;TqamAAF=}gk)0yP5*lK=HFvT4UV0xkzlvmS@ zU$TyhKP{GL5V7q!*8z6hK+V`Y)h~H+Mvl4}ZU1IzSjs$U5hFGH1#$CuX)-uWiNQ_2 zTXjMbMOACuWU;i)x6WGij5D!%_4&=7=*|qW(ul_Ns$g=piqkMw zR@5AEE6 zQisC!rxZnwhV|T!lF^`A?JI|VWXMEa`SZrDGE2kaVPBO{UhkH>fVtzZbtx6Ub2b_xvKPAZxJ|Eg?yzo;)Ox)&am(He_zp$^N z@0VFR6U#o%OJHm(JUvR1!`+ZFQBX3noo;Mbs-5{LuZ^>eQW~jwLc6UIYeZ=t+JYY$SCRYJoAz}=N+zR?ClhGI$&k4 zhwiT}S#G-QR<7*fy8|ZDoLfalza6?%G)8tXg#^-ja#xp$TAtAs3ceVK>z>wHb52UO z+bY7R1yY^2f3*?uI!eB)5xNf@VKrn0!>nCC#b5HVU*=P^d3D3Ljz9M8FWq;m=yrR* z2Ticf;dPJ`5gE)1*;vu(SK|ldk9Rj(mAXWB1#ga|bzc6})pbr?>unxIG#KT-ro`XO zNN%S}ezb9LcaXr)r~SV!nOb#rotPC0B>o!JYjJ7CADy#3Ybkgc0) zfNY~1?V?it2Mn#!z7r%ih~1vLiCW%#JSG0mMJsOSzRhIY!uvwUApvR|T=C27GErI^m&i4dq4+9TYNfJ&{o zWGsxd_w`S%{%_R6-B;1ggmuPTC5%kmt_rkBMo3}bqhoP}^E6FH13zpo5zT;EeO zayc`lBEXP$TMd;An(g@cDy)S5w0U({+Kr?rmi!0jjuK`8kM>}kv+TSr!oT-2V>e=D zEd=r7dr0;l@X$yXJyl>hyfN8;4v3pZ)d^G(tNsRPLFr{yu!0<;ZxJ>_)K)+uQahU* zWh0geQ&Tpfv9fSCH5BJ8Uwo`&=5Js9K3NZ}rYpIR#vr%Oprk?T(%Sm*fJWgR@Pind z(LAkBlwxJl#g9-!k9hft1geGj4)2?P=#j}(+WjU`{Sy&KV_NV2<{X_zvNw^W61+k` z89WOHVggN05#Tu%uWfC|G-g)f3rl_em#Ue#^Y(#P+h`Z4i=&4wvTHf}p1@q&^MX!g zjG;}Dp?<4@*?DDvM2H~k06ua#Z}q05OIJ!u(sn(xNeN@%e*>szBka*m0{(Hr4*DdQ zc~xGVv$#_|)Sq$Xv$0;@S!FOzt{9%sHQafv&5kIG829%Ioptd!>uMo5m0n&Y^%a^- zg!cQIsD}S6H9+AFKi!pfLWK(3-u*6-Or&~=T3(y=&uI;Qddvu^uv@3%k`d67e%wK9 zMWBGSNev(Qt}^CmvmV{^Ye4G08qeoyuxzYW2OUNRiO_Y(7@euHGVx(W!Uxom$uDV5 zyMy&|_*#Wl0Cf3uYyl(~bm(drx1;*yDvbLuk-psmizfViy_GLD&Y2e05qs?1nDm_e z)j7s?LpvH8Lsgv&-Hy$`Z-VGG-XcHecc!e%@wm;bSS|59Kp{?W~2T8u#P(+sxu< z=}lKR&ve+79mBI2_E#I?sRWk@EHiYaq0z0w6S%jY|H@n5QCwD#d7rm(*lMv$ZrKu; zYcln1%`m8TB&V@-{;bBgd+D1ATVj_bdv8Xzkh0Q(XF<9#1K&O`AVVJ4A2;~mI^GTr z5pK3ex8H8P1|zKy>E4>R4ti3#=V&U_#3GU?JEpx^f1INDPJi4iaf@cd-jvcuyr@~^m&hlhCgry`2(-21cGG#d`tg6;hhqC$gil9p;2M+@hZz< zVVT(KL95LvkzjlZ<@u8cNwwsDu~I{8tfQ8T>Y(CDtI5jafd`ws26cw=-Mh@`Uemjt z4UxWCX;2lqF8?f^li;?dc@w40uhz?O8D3%}GVOcRvq&$iEZqCrVLg(b{^Lu;@N;$y6KO^( zk-7!Gg!CB19sZ7l^#l*HgL%S}f)-B#S-LC*k97V`|7XIJXjEfmMx-k2P`MSgMMvi2 zE&WIQS!$`u)=BNEhs=okIvYa_(UH~yXMCTuoN_R21p%Rn1(b2SSugpKmuv2q`26V0 z;a%;QV$(3o7q?Y5FSUh;Dnyd*_uLX$Qi+hzD#Z8G$lda5rU<|g^vW4&@%)>aPgdQC%BjUB?+`k1e&nAIi~)mF6XniEYo0-GBh*ET)zDI|iA?=a=do>QSDpg4T`pP?Voj^xpZgPu zi_>4yQh5#*6!{5^d`5dDdOd-VRUNw7GEsf~2mjV2zPdTns6T5{?(nNJy@bRl^z_%7 z#sJfIyG~HLgm+sUh}`0duv$>wX@`8gV|c2&F7>|_%Wl&;bK_7|-1;^Xy#J{2qYaJe z0Ng*r*h4oNZJ8g?&XnZ>-ww))(8cBGF9pMwAJ78@wnre{=9fXIhcA&cL% zlT@Uzg|(Dl{kWv1nQCmuKclgZbQSeK4BS+z@n})z%k>H~l2y=xa{~(XNcIZ`Ir&U= zy_ap&g35D26pu=);$x3So7&!5BAWNmjEimNK}_tob747sR;9e@Zy%}H{@~v=cVmWZ zPi*yAfC36-ogzD>QA`VMLI@}h-jn&tcmvQTBMem!=tDnWBq>WF8-CgGz_SsFduZaI zQuEWLv4F3rYTzr00oquG4)vJB_(>!56}pO92(EcXk2(e&QqCK*KbL`HvMyn4l|TW> z;n^m?Q25#Sz5*RVLFu&WvVj@J6u+);{^6FfWxipiJ&i*tD)ZxrR06Akxo4hvSm#7~ zP}t*xALQ_~_ahq(Klk~$&6#(;B>#R->-DxhIYcJ+&2;UTpF|I1FFr<);7VXJ0}T}1 zZ3`AHt+e;y#4ZH8w)x6Hpn z>mU3v?}D!WiqN6x%rz!1rGBi?pb=k7->?GegH6cx`BN|#tBaAmj0K1t ze1jlz!vNj09WYUK*1L#23N89_YbAxH*6V-vs|uVVHqh`M8Hv}lImE-!ayxhxzjI28 zz_KBLXv!PxeA6>9{3eXwBv}mAUevRFa&vmN*N7QyVN*lq2>n-u!>n!JSH@ax?Qqaa zd;vly`-`=s%ZSt)8GCK%RvT3ni!x*VG%RgGDH)h{} z(Q#zNS|VtzSR5xabrV!%%*3c~g$7`gbExdEG?96XpF^lcwxM0LDK^N%lylg zCdcM$CsL{&-8+FUM1IcNE8b4&8V8C8j69pQB513mO%q0mteXkt9^CQj8viUcwpwx2 z5W~L*TEy_De?g2q#B#rmY8IjivsDDv9w}=1<0mlMRb#CpqsJrbci97#gBX!douB(T zPB>FImUhouksI>)M-kUY;bnaSrG)0ZcB>xx*umMek(e}7KdI{UViSz(LqH(_#w4jM zUc;x<=%RqhwC3n}hkwrRI$$9StS+A;it27E zff|q66t~QeDI@!2ltY?}u3l_Aw?Bn<%?4bjF|%d3mCZL}&5y12vHu@i{~btm|HhBw z&)0EqP*$Xp?4pDwS?5Heg_2tlN0UgDm3a;gEh800oKq=j(6X{lQ$t1yS?5SOB%CtN z;jHgjhi?+qd-@=Qr`D@`ZO=Vo(NqvaM^;?yPUu2{@}KE@2~shhlSw zFCh|#3WCiV4Pw*pgl1TY0Uw%+WJ8Oi2?7V}E+*54vbE15=!!+z?q?1IQ!UDYTck<2 z_HE(Ph5>iCFEav;`kJ=oIt3~}?{cee>)yuV`+fXGy0#WG?QYS{U&3aQ=;`lU^JWW# zAJ^1Kdg=B5dqDf~sNp;RE$D;j^lNQ|w}Ztc>{D5RD)z)f-W zFnM27d;E$77p||T{coF?yvw&w*p^7_7+IqFHVA)dxVXd<=&%FSuyY&_k5|Rc{sgt( zeZ#6cb%qZ*Tz~M7Eh93mPEEVxs25TDdTjm1JZtH3U7XJ69!F%JmV#JTKQrX1#cvnH zX9{?6trax8*2YF|LcZG7`x|dJd+xg^-oiiYw{h|8j10$mzIA{j3Z8^*J74;L+jb>J z0&{_fD4umq6|E7LNT3gZKx6!=tFBh7U9H(ZmuS^VzE2ygcoCgr;9#_2_;p-stKpQL z*E^c3!kinsWbh~L`FpkG(6v?Tlkj%>MnJiz@B5rTce|p*mb$mau+e%nD~xK}+K`qk z7~|@nWZaeK@ei=#DU^8_0~p#>CQtj6l4j5)Zxu8R|J_@CV616tgy+K+mE$?JVZGP( z7=J`*`=I}uv5a=>YC??}ZJ7Nh4irqAcdQO6K91-vkgErmx$Q#eL8uqj!a?d}lIS73 zjDeNA9$2voS}(u3x__bBbQyD<|LyZ;7j%LYbC~kLmRtAZjppsr4ZtQ*6AF;dTM%(@ zCf$sPv_d6Eg(jh8Q{7o{&D`)jT)L|1(jSw_jGE6-@OtgIFq?e-0mgV)@F z8_bVJ8x<04nU}uCk-Y;zOG~O7_975#YHJ9yhlN@!HQ+X$JU967vPs#Fqqadrg^e_4 z`)aqlm|JOWtFNOxN=GaSybLLIchg-qAQQcXAKS-b?aNw(@qFwp_ahyKey?4#l(Q&N z=!P*M-d>Tn4OCbM+zfS`pb~GW_-9}7T|ronZz;j==durZ{vM93 z6t5!;pm%G2U*EC~OV`^0Z^B-MF*U{pT8nIZm&Zulf}gt z{arnlKK{`%dD;bNuLr~9f;hYEMl;U?4>j6~g~C8#G+v>q(s*=~{ucR$O{kBg#>Yw; zSIwROdtqxWvc1zxH*mLRO>ZBps7u36a~$S8UtuLJ)}{IYd&P4E_UhEsvq>qhvl4qv zM6^1Ks6k>xbK;Kdazb-rL>)5%>!*0BOf%B{A^jjNrp4f>MJDTego)AfTaJwHmI)f9 zmAGSHM>7n|x_&K);arh)1BNsG5CJv+Mc096Wvvl_i_ScC#c#FnvH7BFP%0&pjGj*2 zKmmExqjgJh6IPvJ4gt%YXza0;`9iDkeus+b>v0LDeHyX3*OdpMi?)?8X#Ik?y3weB zlBKegcjAOWrul7VfU(PX^^fILFZ||_sj+!d+wQKd=Qbwg6h)-j3gEgta6oDuI@IyB zkn=IeqEbqszkF{?!L#IoT|XC8^gn)~eI+`#GU}^dS=4AxskY6rrd*roPt{OTjd<2h zt9wowm9EwNCB^?#^XRaoKF{>Cn@jZ7B)#udddK_ml)V5vZfbG%n)Q=M8BP@5x6L+( z6x4g~-Sc^0UFYWKb%Ay~4*!avdTc8x`zCF1*zAjS!%G_K2TO}82-L`>^ z=7(J?VHXeHsl(|e#7UKxp4WY9E+B9FN{3M?9%n|4x-;itRB8MNU#MK~{HgwyXBY8F z(zhGVq-*05uQa%`3ufNkKvrNN7u?jx++_ZzC4!8x#eH>Hf=lekZ)1#+xX2JGp9n*Q z;T^lhiBIg@EtA4$Xw*$=vExerY6l*zAo^Iw-PU0iNR8a{9ju@+NG~cAO4A($IYVA2-Ei z4{*M>PDPs$(3xN9&KJNuk}WLw4sW&e{$At4NH=gyQJmK7eBB1(m1D!_o=L`=`*;7T zkQC5*&Q#xy_m`I_So|ef4qbvYZBXYE8iN~c6XY?H;rOxt2>ma^^V%og{Q-EtUN`ev z0hF9m`}Ys#cZrnSvpS;XNi)7a=Z@WiBlFp$U~op^E!6&)yb8rpYO9oRab8lSC4W5q zXQDyA;leMcDPoxSd0_Q1JVP)wra)V^cfFKNCV`VEly{cYOz>x0%JGBQ$IY-K@{Gbm zv`c;DQd=(1MjDQ^)1biHaAE_h`8nA%!%v>d!N6;0baRF4+E|Y#;%kVbK6TF6zW*E| z<%T~X&{tLl!h`swjww&`Q;czU-t7upg^q$YzkZru-914pSPcVIS;A6J*|8SmW z5^^J@FmkMLM|b?OQ`KpNp5E@V!1@^T(F>>S8Gc3QuP8~f`j=Vt>z;WHYSPCYg#gLP z+OC%|zl4+6L*%cg#xD@?7KZr`c?g7WoPYmVhqfC^?U>}Be2-wB$br>6@FWF6nH+M# z^90r0o}tj-N=QumYvE&*zgl4Vu^?-{e|~ZKH~D1--WemC=90sL;bYe*wYmoK+)QoS&1$I1+&GRnZH!w~s3lgOKB^Vtjc z)J{Csv`J5A9SRKv8_vA7$~gXia1g{(Z?*z1Tv#>Mu!ONnx;kh& zaQf-?om!oH@>Ga+Ss`N+3ME+&>RqyC2NEA=>82|MR|rdLl^#&k+XywW+{2O=zupL= zJ7OnFr~bDN7B4Ss%7bDgDOCPp1q3Dix$?UtQt}-3g!vifMw8WJ7WYC)es|jatC^g0 zOW*H4XOGdrN4Hj+u2|?p%eU0==wJgQ-01lo4Y`}6K0+NRNFomQ_fg_lbTz) z2~W-MOf?;Rc5|V12zSDf&CM%iQ&(uOxnNzi{%|`_JH^$%GkT_qNvN@HY|+tgL&d`Q z0HH%0qtQ^(j9#7TyZG+`df>p#^N8^7*AW~;_Aw0ox%|5iPrBoyNw%)Nw7A`Czi4@| z?j9YPfr5>=jZ|MfrELut8XEZ18{2OA$ZC6kS}O}^VoWGhX4JUT0nXiRQ3)A0 z)+&O+@kXOo)~1fHyl#n{KA(VKb!uX6ndqTpqcuArqu0|Ja>zIXDk_l*Vu72)1Djm5 zCHs3elPj?c$^?g#p^{N?h9c@%K%^}|-zmih0q$?#TY=p7~S<&G(SAnLkB6CXX@v?FX$wvZi^2 zGs+vNb&qyUU#Q-^1#=z-scL#Q4yhVRjh+Z@4*Qj-p{)_WT@~3l(cVu2E=_nk=nv-} z?&q@qcF>o?<4aX=HIvHCtRbS&rh{+nCTjvZS80VCpeC%nk9}7kfi?SM=&3;DXHAp) z(t7K+!;?SPkIZmR6X;Rx&;oC~`DYsNqmJe!BFVN*@x}S|R7FcUq4{tpyTyFOlY%0N zXThlEWQ}oNT};kFWBWAboCpclrBenlP4y8OK5HLXP{#kn*Y z&gN4g4)P>|ug%`h^Ow7UG;vj@c*F z*d%~;3f>CQrUOG)`ki;n#G`w;bN^X2O zvt!=6+&;}LAH$gAg~wJVJanFf$>~DbNJagDkf&AEGr3aq+Wiw-@xqkMva;WO31U7| zBX>lKBtEWPdzxO`{AaQ>^>-fA#ELkwq_|4YiaA>Uq_+P}uEisc9J#t&IJZ=zZ)KwB zUUBtt$#?g!s$wUI#%N`AJFAX88t`enK8VJZ;<?c&RFBJP`|w5U;2>yN^?maij};W?x8VjIP8z4^Ib)AY8RVr^&L zj*O=ZBC^xSZ%TfbOv1l>vTWs4P>OAs*%CW)=yPeU&i;nnPEi3y8?-uBpY}@`t<#Dj zERt0^_^EBMrcVjy+&n@~O=b`cvG?my0N0{4SDRQu`N}44v*C&+`=-N~-8+~^N4GXB z*~TnC%eebzRO99*9y7V|o|UYm?AJ$%+IG7vaTEY6sLx!1h)||ay>XNz2h1(MvUb#XPzvX7xLYHd;HKK{)v=06<|B(kHrCQeA4L-1B^yeIANH*X@CBYU^3z62_ zphbM7Ab7bt;AL&MMvZN^kau~F4@0%XN6nPQ@hH(vf!wp z!#hWc%Ex1(#%3;2pw}LGZ5xcEPkasbjn6-hpVJXTi{(8U4Ns)Nud(^kOA&k+`ulYu zZ;@Ha25Pd>(oi#-QZGXc&7j2z3V~AVq^BfN#)}h#sul?^^7qIMF{}Q_l*J4Ok6ftB zTgni7hY0Cgkbsjss=AW2&y>i0Ht(CP3?3z_sLBEh$Miy3 zWm4AR*3Cj0=V?mk`!?H1PuL_AKf~rJkz&<~`*h!Z6ewn@vm`ODAJddcNt6o(qV=NE3;EjS2fF2q8A zel|v8Js1O7*l37C4-IxuChn2vZY*x5f1=!Dk#i8M`M`K(<>2A2@*{zY@%P1bXI6AB zc%sB**6z#V&CTryDz0wDXM|LgF%vq4kf0b&oNi9rHDGw4t z>Dl^O^{ZH6LEbsYa_pBKNjOJc>`g!_}ddp65-m z^8&fSZ1AFhVe{;j+mQQ0(H4jfGKn2rMd9wf!15fERHRC3Skt{Au>97-)UK`RkBMGm zT49S^t{FK~qnPn!p-9|l$G=|*y|OmHw|xJSNW==!!4PeCXOXR} zJPrwdjM}bu5L-LL2wIrl{$r*+3QtF&)j4HdiGH<-c+!yXY&fZ4Wsxn1ui+r)mTG`> z(L9!#07e1GY76p_m^k&$wOeAqPO<12D9?uh*=2`(-Qk~naQzi@oZ^D>GeErHWZKas z7W1Y4`|PDDm9&FS7-QmB`Th#)s+io^J%X%xDFW=WEeUsNGQ{AQ=OMJNS4KbsWarb%25-X z(Dyj;iJGW^XIHO&WkH^x3Tfte&^~HNr3%uXOLhO)NE8cjmuO)PYoxCbN2|uVENXtw zWT2v{N}G1ijTlSX&wU%3qZ~qDRjI6hQDm8pUWb%Hu0ut!T`Q=_R_9)d~Hs5)z>BSI#-Vb z*>G9hd7QbWpr(|SqsnZFpc^0`*$niYsEW=L0%jqW!w|PTc5;50^NsnneWE>@5SG(4 zE|V(+BO8k#FrJGB5y(JXC7yXCur{r9*#OFyCKC4o+A#|b^xIl#k+v3adt5?BH`e!? z247s@)T$VX;E}a_sFvv%Y02NU-Syya_>aWpQqZD@38a3=2XtK;gENV-+yUreDx7=6kN{BQF$y z1!IOio*FLRQ%kXDTJwBh+x#u9zQAWUx2C+A>t7C%HB0mpiB>_xn;sQ+I>e|mjz#Wr zMdF#-6+k^)pZU@m2b$3UUt)P>ytvmC=lA38un(iSSg~q_0DZFiQ-r5ZS2WOEIrL)b;AzhUF`|CHI==g%)3bE0Wd|k;m=D-*0c?O(!EeS-w{+NGVv9 zCVj-pTPvKg;7`aZ=>EWvvJJ@`M*%T?Pg`7;R88dUGDLSXvF!)`IIwC}AXt9C93l+K zvT7rR!G~Wzlk&kcIKzv&d#qDSTM&A}) z?Po#S88Z$~-H+CjBb@=ZsnpbaX$HDPp#Rs0heGO>Pjw9vGp!=>ci4$voH12Jt=`{B zy~faA$x9oeV``{X`ieE>vNNv98J->By*rRLfx0tjHn>!LXQadFGHlzNa5$=)pRWM8 z4_9Y34iTt@7Yk?nC;^W9=CWFgC9g;Ji59gnwfw2(PHovPhJ?4K&A z4{Y<0)hQt7t|O^WD8x0^1}arE3DXh>#&!kQac%P z)G38iRTpsWZwORHRaV}0@2v~cXCW;E#-AzcYwOT`?^VCdaemy)%FfQ++Gw&M?^*FV zJavCiwT|3^*w9T*@Zex2lg`m~@T43(BKFmfS%1c05Z?t=&bKIXNE?DZvj{sI?6wFx z9xY?6%r@e_4?c8Mzfl8e{}EOe^}T#1v5)6(UGn9*6S7=A#`M5*etsyD;gFSKIxICL z=gHU0dJtw#Vr|jF)|ePWunzU#Lht5xZOgdzPCH52IVYZo!)@0mZOnN-DZ!)zW1a1T zKz;Zna*O>T<$Y-HC=()D)JG~Q+bU(~enf2q97dC#+MZA5adpXTi|m&_osM($tQ_^x z(Ll6)f~)X{LPFG*S|!>#T`R5R2A3-kr116aBD7g1^r0Lw@~Vp;YJDIL;}!%UeOR;q z{Uw~h%;(wmU*7dG6oN=W_A#;-c(20XMLv9>Zs^AQ^V`3o%}(ff!(SDGqugj45w-6Z zk*66_wbmV-H9}Q&UcrePzQ?Y=r6nhYt?+L+@*%T$ID?`&ujBiHhU}I@v_U|`ejKiu znjNz4dCHU774O_70PRvd1q-+8#<{8iPt ztjq?VpRFdo-&#$)S^pI87(8{jdj^ZCRo&P7f)>k(J$!8Ja1`rjP`4&+`cjY}OZ-hV z;Vv%YKmUG4YY-|*@z2kjy51GXH$0$4Kl830{SALs_|o0>`Cv?y4e=-gYqtTwVLq0ht`4z1>Kspf+%i7t+*pMW^l_Hf{|cK zgS^BU9b1i)Yl=KZF{}8VaijnBtu~+G+a|dmp*$ShQf7Ljt>M~8QSPJmkKT`8#%ej^ z%yFdfL}c_Ct%I()28kAtZ7O!y8!)!C^~@MVCr9%v<~yO#Gq$vG-;LHExn_Oav)$xd zno^4=+B#%0Qkxv3gs)^EmmsH?XfNIn#H|g~`g3U>q;0bKIc%7Eb~wCUhD~-%!7=NX zQ7OZ`mC4WU;v)7o50#62lf>;^l%KrRpaps=4lZ)*bWoGK$S&GC9sFQuzFsh6YRz9H zwH(iwo)}W7>w^C8#8Do+8Yg8=u-%^C@9!=ug6?>(;5fkc%3(rH8yvl4B=T2#?{FG@ z!GVeA*e@w(Tm>viv?Wph6T!#g7K)z-;(dDj~I_;lV)H@kwvpoHt{Y!WIW%l zZ!(QQ%{dOKQ50+ch^EHceMca9h|*Xd@qztpX^@77B5k*3)Y0J^QapC*NsPR6<&)~+ z?*$^IvVDL2yF6E?C`=y=YCKBwKJv^uSh#cKemA>vOo`mp%kEzBE~Pg1M&&8;O(g zQBB{eP5*ssd@Xx&6rmA3M{kuC}jtwE*6gt`a=bob6y9c(Ky@A!?4 z2VDQDn;TQO^cF>nRhd;+JT(2`_H`Ze0@RabuXBsTikZQ4{k^lK0C z{!RR!i!_s}p=$+O(rqWjiQ5BQ7c;UxjV!?dHO=cVCUM`Xo%;KXOSBo=BlTxrNggk9 ze^ZDf1#!tsZrtgnkiUdfwcZUfcME+Zheq~;4uRFEAu84)I_{@?ZpBp>Ni{85^ZZg@ z-RyA%^}(BYF+Ka`s7?HwqD;5>5`y zQ9(Z-uH1q_gL2@7O1;A+Jj~Qto#zd<(R-f7rqj<8s>mjoGA7d8IFtH*mkvtef6}9p z=+s(BntUBW6ppu?9D|vGQoTu3a+pATNBvETAu?E{KUk*rAZ7K`19GILFlR5GQVh-)Vx2S>pAIy&K+O4S2pzxY~ zZdwCBUUtrJTk?@K(`N-}dNd?XjY`ptCBR|xR2M@cHbulvZS~7=roOybF zfe`dyIsv`63>>zjE?DAz2hQfb;rHFqgWFNLRxau)=sF)dEw`+*R5MU$SVn9_+qX*T zz>ZAS-ULcv=CdKGS8o+3bGq&<5fe`#XWN9!pkFMmh1X#q;#7XrlaLn{nDYB6GY7vcHT}P5DA?#UU;zX8j%)4sQ z^w7wUEOKO;-SnMU&U4vwL0?|HZN5&ls_IO$`Ey!|0(#(%A@iQgp1y-%)7>Lx>-#x2 zr8U=F!ygO(woZlPZto|2O*@JNDuQI_6_A0dPA2jjSwQ(+Ny4pUV7$JJ4799JlO#!7 zqS7`sC_EAS;#iCq!ozJ#V=<0JI-*JdS|g0XplHaURZ@p5`(w(+&ffb!U-P4ZSVlL! zuq62adoQe0%7b{5&xp`1zM@8bCP(d>hpIw#XRo|}QwHt#G{#ugHF)Zt1J4}z`QxLW zxALN|n|7bgc3X^0tEBM_@?TXfb_<+bAjDcV(t0fNm@9 z?^eAD)p8+-ZN-m3KFzJo0x>)>2izd?l&b`)8)iAEpe}#yU|n+jwgV5`y@s}Nx@<59<@GOL2ITh6s#R-|Bj>09~}kHMm(z4|HMqLH|C2wKC=laf~SOpu%}5lYJ`1 z5g+Ef0iiXvmV z^lTYrNVVTZyo{OfxmUfVB$Pz`dOM7Jm9;&;xkL@skTz3o1VmqS@3bh`1_SV`6zV*yzgfw)iZsr$nP zdWdmwE$N`i!OdUHf8{>AJyui_WHshRS^TjrZLDwe93{33%-d%B)(vS9iFlOWkf*dvxuO+TQ57Ie2=)#PbGih)o_(MWD4K<6)ViS-T$^O zAD4eZIL1wnnE_!7CG-8>PrT%Ha6RF|t4Z4-B{4`mX?8^?t~HGF^^iUOxsE!9S0+Gi zWL(+4cdBIvKF%vk5XN}8SG&lXC$VV%Olv%c%=mO?)I-)oM;Wywbmz%H;#J{#0JV%{ zPB$)~@rAOpD?GKc|FMjF!^TD(YR{p-+T4MC+GaRsN*3hWU6QaB#~}EATLfCFm!XQ3 zYQ{INMesnU$3m*EZpTAE406q9ipD5w*U=5C*u#iUtS#>mG4yjZ0cO)Zy^I-Q508GC zEIOUkTDlTP%J@2#c<_Nw%hk4NkhdgUqs_(@3sDcS9>p$}Pk;P>J;UBjX^Rc=`v;O? z%+~mc9q-mNf8TQ+LwXFZXsx#y3@&|o;%*(+qiku8ezA&Nd7iu|dX-lS{#gI@r6(iXDfj?>VOh;+jqs&X*CyhWM%1_OeLY;(t7_TT^N@L` z>jumVubjW?sw$~h!zWy2qx|fIiA#frU%u(Y1eH$O)*i=ZJ*||IP33`#=)&e5p&ycs zr2$^E)PZ^0`dYzvr}j_$6Q#;KL=dWc)VPa5mnYaK6vPCco0$&9i8$da52z;H3q8&eTW>n_HUvMa>VZ=SE| z*5LNm6+BKGpHo%4a<-v^!5(~W0s1U0xc86Doh4i*H{sG;;%w?m>;8M|&y5~7l4fYk zbt~EIr-&)f!blsIkU`1wFZ1gHqD6ioi>!wOSyMkeLWDEaX?F!I@%?2jNA$Z)b~bm& z4b$lrLsC#T_$=?^1fJ`_*f#bR&v1Yo!;j2?UZN3dLnAt zjO92IPJMw;Og~@mJD0lU&z{0#0MnxV$ddN0oYrxLAtdE6po5 zlGd4B@0pF`jQ1sXoifY{S4JGZx;}tJbAs`VW~s{Vmlm6YjwftHjH8VfrYdre)*2v& zh@&KacpUNC>+D)Zo&Clt9xBM(bc@zE7#~LvkV{3oqIz$vI4jIM_UB>jk1rShHVWQk zP^UYe#~3wV*}m7vhfc?A#3L|lR)`=HP>qrN_fZ(53P4>6=wPX~mK;u-RChX2c{d|1 zt#5-0VVRUhXPfQuIKR5m zkHJlp#-fjk^O@C<0T-dNN0N}zS!2fAsgKINpxwEKx9ltZeG=6AX0zY^z#Vy6}dkO4A6W0HXOa8XRF1DW03s!r)a+qt5$Bh^TVd(hKP%q z6kgGSXI#ayur?PYm}!7mD-Inm-G@VK^ZwsDE5W7OjyR~0TU56Wxe><)-la}-4Yf76 z4i)=Q4pTrTHez;J+bP2NF}!;xYMcs7mxU-a2C&ieu2MRUusO{46vO*AH>koM;oQDZDK3%VJ1n z=&`kQI>rT(&UNa?)@9dsQXp@19gZ#q0S!0>Cu-x(YYuQwzG4`mP;8*A1!_Sw39K(o zSiq{?VJbYE^YqWls0gRAJZ1#9#&j+TO8c$M=NYM$x7}&?_7+bN`_8YJM;89{tj>e~ z)FOJaeTTHCF~y=>@m2r4uXC~mC2#U7veaq4(ltw~&D??TW8X;3!Cc;X&VGO(8eP-ItQ1PZU?$a)s$HdMd_! z>oX*4PInyiSG@Mw^E4eQN*+ce2(HCN31;BYHT?&VQ&R^qkNmkOGCS-dw3(SgpXnEZ zHEUT?+zuWuS67v&p4+ebG5T!i#uk1mdpg$td!eMIqvz>q^3sc)?8 z|CB--JNeD0Dq=WOPx4b3y^?KuXVizbne1F(=UL}Fq=X03^|LW#HU4i&Dd{k??!Ayh zgCOxSRI*NVMh__6!xf{++jY`5oo$|f?2Ha|LKzHT8S%a20MA|8d)Xen>Td?Di+eI} zMRln%-4;DBDzpQ~^O0;I3=`0PHadnSCpVVA&i=guv%~{~JH62-7C{T_fNr=>>WGCu3vjVY&e-EeewQA4nRb_`|IHRS9ty$)P*CgJ2y*l6nG;Vi)1zG*^ zqG$t1K`Kg(pL>;|mK*zk_!&=lhYw_@?G|slBL`^UzuQzb^j7c4{HI|kZ3uRN!$4t+ zGg@5C)`!H)ude}?QvbaS3{+>XykJR*#zn07mdstLZeDLvzkGP)P&eoM*yYq!0qk=W z&A8jJmyT^mV((k)W~XlYB(n`mzWViwlsF=32y){cai5PAL4MJ9FB2>jn(o<-Dmk^7 zr3!2E*PNr)WhRF&B2VAw{n$PgfzpGj=3wU2Pe+;>wMaA2F{7rAU8@=1G)L~R23Goo z>l`?CN1FF0$e@Pl$cOn9xtE4!4u;xj#O1$5I620ml^5m!EpFRsp>BYzwhXpc9dSN? zK0Pq*HxxSnQn_Bn)~S**aP=3k{AiGdUs)!UDGML`q<41T>$B>?$#2h=1hvhkkQGiH zHeD=~V%5#1a5OVrkCffd>H8;@y2JrA&$!m1Y-tmjfUDwU%XQz7CcF z0j5R18kq8uK8;zDrA-E0u(_gbn!gVR>fBaDH=94xLQVy>*N#kfarIZL?ab)8iC+un zoVxMNH51_nx}DGon?=%$tjd#ks#*!DIHi%tch0!7|9nB}*K_~ZL-)>vX)+s*94~Um zvEE+LmmCHYiRcaza8KapkZ=qI(eBP0j_2fc5LIit(%%iZnoM-TL9izJfWH3({qwvU* z#f6YCXkMCi1;?Poy@D}W=hKW4pF1kKi%rm3Q!7EvT4|B3E^Z}`l_ut;J*fuTsC8|P za;Ev1({mJeDma{`h9g}dm{k3qeEh9Be#^GING7@zl65_4_s>!6E)cS3Of ztfiWA4{so|)U10tFuA2vy6nM`Ef1MLNb+j~W$PcmtUq$-dXIG2fr|c+H}qofBj+|5 z%KJT@bq-g0?QoDu?1bN?KIY~Nft&#|>uWV3kJhb~$3j0etsjlrFg69|56gV1&>Qs2 zdaQ+@iO#=9iCYw~n{lPq_2-t*;)=?lR*#X_3N_z+YX@d<%{;FSiP)?9eD-#nNVDnZ zUq0>ue)EEVZ*s^7D{laF^~UfI*4fR_!2EY8RD+mD1tzKKq%CHF z5?&v)(8`~#kK_y0P3<6Mp^>RKbGya{zp{M`F< zq9=hr+>A$R5!aRlZ^Xuv3ld&-$M#Io?ku8QgXHVl^_@+hfke)(Ao9Hz2I5c zo0KJb7z0-0BIMP1RxLY06>%FYnr)YfHjVI^mLG)QbJ*cY;!KFFRC^d`HBn(T34yMH zj4&Mid}?(h40(!uP`gm-PA+kyDDkC#_$BGj({0^({Dg6PnI;WLh#U`iyCO>xo6Nnt z4cV_k#|Rd9v|L;F?FrBcq-igOvcOV?=XWA*j>sN2;sw-p>ERmms>%AZA) zjNuAAs_%cX`qIWRAqR@we5qHeXng+9g^1o^jiMKP)6Sj>86KK#=DSOsR}6Xfj{0}- zXp1xnxRm3`^0Y_e%`c8izBd z%%xuyygxO<-?DB|>U014D_f7@m$^~Jo(uD^59??Ba!*@?474J*)cJ;OVds9BKGGKc zJ*?4;D=3MSOid$jRGRi4CLV5?4r+^PSi@%g%5DoQHY@Y7PB?9Yg{C%Omca^Z{&Bz6 zJH~sh=>TSTHxH;#5hqY|jgfx#Ua!g0^O)iwo>lG(GPzB|%Nm{ZoAxl%9v5lt9qd{n z({ZrGZ$wpD>Esvydv2+F&Rf(jk{{kJsStnaqZsoca?nbK^J!ELWJz~Kn-4qSfss6{ zDNv0mi*h%jrbp3d7yoltDPB=+?x9&|2chX=pV@6G9gK89toi;>?B)Q9r?#Oqed`TV zQkymZwOK;*Rz}(;F9jsL5p;OTe9SxwU*jV& zwqbcLv*m<7==!#RY5e3F>WqT5LiEySO9>W<3@B zQt`h;#W%s@=H4=kFFcNCogj@&{3s2oy0&$3Mzn7606v8;h6wLd_qC+dD*O$%EwUcZKSGw_oG9G9R#z374=JtaRnvJ{Y6TimF{jLzGYZ{x zt+YlX?Ms6ApWIvnwe*8W>Bn?7bQi>{$;Hy__)! z{DA2KX=F#W3GkW=(<_L4lWkQ92>);wdn<&CGjd%L0q#RqCl3m%|f`| zre6}5%J=U+G%XHalgPGKDWiB9(dAqC06b$<*fY96))Wh! z`jHj2T_fwjz+5@EJ5rZY5KAX7c`CV8U6pPM!{?6Fs^RFp3WFgA?_p>!+K3A^q{6wW z%c1Q1^z|?}0h^7{aeK7=0uBUPZg30ifB{$Ki@nVxLcnx*QQ^NzBDb)iT!G!Z{fcgid?h`euwsAgt5@OZE+lmpm$}%SZXZS;!+n z%`4`W@_l$JAF#WA1IfgsxVwku$Sv2?L*`vxEsrF45cdj!x*ezU-@{M{Jvb9--&6yv zn?{416RPUsVpB;O*n}2PD#1+_em&a01u=+xA1BIgiE~d$j*7{MZ*8DnfTF}0>C$sA;z)ARU1`a@ zvG_-}_B$Cq))RL>Iil-g=Y?pt>8>m5QTp5?9EchI?kK)fyz^+7C;S=$JkUfuBkGYO zAzU3>N7weoD`S*91o|aD?EFm2c@8CrYDLvI zPm1!JV3+G`$A{LXYB@_JbhLl)O|m);I@=_>DE^5UpszLTtXPp(>AO0hYk&iA!MEH^sA(Qzc>w(z|NK*FQ^IzcbQqfS8Kr}pye}(d_G!5Y zHlF&bX&P{m2#HoM|NEchj`+?GUHZeKzzcHw^-;bW@@1K=miGJErLT3=8D1osFS#zh za{%M?!z1yhbqr@6NeqUsAWdWR!%`fL_gfU%i$usD5 zCY7F#Jo;1*sgb7t z-Hf?T$n6YKQtkcUw?(o&#csWvgq0tj1`lQgSr$@% zBpQmF7vO&ZN~V&)y8L7$a29r5kIFia%vBln2gI`oR272gqO)Y3hR$UuD;w!co%Ykl zh>Ik$L)>&VZ7zu7o-=u^cZ&p+gZ)g<8N?^H4?rW;cis88WVm3i<&hVXyWP>p(-Js1DFhY6s#+Y(jRGhNCp=Q1gjwa*Oh43rORoFB!BTW)VzLZHs( zX~`lsuv=ij04;ZM`<2qT3}WtM-@kZ z*&hW%MgHP#8FBry8v*M74@;QoTSv21dM%y z2zjJ51|Z)SX;$Y!d8mwi;{vYlK+5)lWroyZ$b+%rwiBfQAn<>rb^Q$XX@fDTP zgSu^a(MbC{ZgnF?I4h^S+?E{WKhxEy3XopA;XLoIes`z&)Y$O?rubmzVC4AYM)l!Y zG~PPvPf~i=YI5vV@9362Q7w=AW`+v3NRKG6oeKCj%yvF0*2%o{GU^4m*Uzn-7pn8= zZIu0*xpOwi=6(1hDO#~RK5@Ta`?kGl3~meWKWG;>7Y5dph$3jT$vC*e**UR7uh`3y z+#m>0*P3et>Z#0y=^LH#a?~wjc6z9Y`P203vaW?_ zL@=^i9>G_$u0G>>`+EwAv?Yo(I^j>rbg!7KZR1LJ319g###HfdlWJp6W59+VQV#id^3h&(j`c zlH0a*I&H$5-Y8wbH?3Ego2Y=NUO)#{^8t=uugg=)K#-S3(oq^jZnMyVw`;YK#NM`9 zJ$?G}7L5KxJbZ(a7g3(-CJ&conQ6^qg#lW^^x)Rc20Q*Qz!Gqi+q?(j3zLwW+?oG} ztT&H`@{Rt+&pk63yDU**MxnIOBH3r6g(RXRgz`yBcFH#9)<(+GsuV^k6{2j(Hp)^_ zv>}8LMYhCDhMDK``Fx+>^Ln1&|5NV!y07b8=e*DR{XP~1ZH;>wk4@Vh-*4!}0`DKU zmQ{=$SP^7mvPvp!s?p@E+ljB&g^>nFwtAtM;7Cn0G3(s!&9~VvV>6Iby)5Q*Ey{Yk zDl8Q`ue|!$f6G+4G^~6Z-9i(M)XJO6>^e$FDQmx6#YKvZv1J}Ip`VOGhnKQA@|Il zO&ewZIKmR&R%}jrNn16#0^jmuj)(N?33icNP3*2*7F6~ufq7=p)91VSovF4 z|DqcB&vs6)Uw=y3JqG1t;Rrz<%rZ&uJTdZjz_qGH6%D&b;-5Vrvjut6C^gTER-!e~ z^hh$?{*G3{Yynh={j^b&x!SwN5+Tf4d5E!Kuy8g@RvqQ;x;p6#e@^aw&l#x?nq{zW zC!G9#prQS2xS59~vQY_PBH{Z7u@#7n9G!sD@`ZfCEk}a;&Lp*Y;4=x#9{Anu)`Fgt zxgn$EkkA(w$EmV#dNE3Q+pL#@F(>1FY~#JA*|bM-TeO^yKlPrq%5$~TN6E0C1yOLD z#O~hrQlxU2{V-a0g}#j%d!z`7y%6Opb}j)dgxYjn4xmKq|HLv6gakiEz&`ct`F;C| zIKfLD3U7`XUH}69#cWi{V3RkTK|cxkkxk|y1ELz^Zkdc_-@EtiMg1aV^h#Spfa(+2 zD`zXwi_3cI7@2eK4~r%z?yK%!CJVu1Dc!1pe`${T75KWhi0&kTjjC4 zWq)pcRJq2vC?vQ_Vpmn<8YMp8IPAM>NS}Vt_Q8VnN8Tx;;ZwupXBin8r%1R3TwZCL zh5*A>1Q;&DU!k}0eOrhE$EB?I9ZT`*MI6=ba8>Bx z-g5#}qDX#UG!+LAmWETmrv(>|bQXz-hoe>%JgBc?sDpc?86g-+5iQRwJ7wg=jc>}g zKX1AVS+4$;r+&DnL%ioZ z{~%D66SCbV1njg-psKjtGH8t>+9A;Hce)di_0AAYRKNFzd)8P}k}7Y>I{M~%si`WO zuHdF`PIHI@yO`m5zyLG$dvQiP-vgBxX9dXi+>1oVNnU$IXAQW?cA$@{H(N9asZVFh zD9S&T*vh7f>|DH{`A4DztF7fF8CM?fvPg~2ivwE-TNb>Fh&bsh%PAuaDHX##iWvK2 zaHKlejGaf$1}dSXPnYe{yn|(lusd)EaR0lPwdmgy@Qt4yqtVrK!=|*6zx~DDO`A9~ zMJINFt^YY{mk2wCL$P=?AC$=P3k;(awBRa>wE#{dzrT07Xl8mMo1%Oddj8@9zDC(% zkuf90SUcy#jXJ}ol{5XN=e>9X{gxP3y4fC29Qd4NF){Tq`zn^Xkr?X4F51-D^SFY4 zP6l&V$G_Y_UDA~xnT<8?Bhb~bl|iVGE}hfA)x;~g0LAS`7vqDDzO6n>p8MB)5lkg+ z>7gtotbBKK-!eeylEKM(m6OlrhZ)CndN1faucwrDn?(I{m&f<8>dfmlm1k(%m`q(Q zo15;~>h~!*yX%2g997>T9;tPqa)+$DI~k@q2b4vS=W_oTEdi4L9oka5nsPE1p%Fi8 z&=v^cw2mU_+ny8|ntf|s>kOytYcc_(s8WIqwIAE+ZJ){DI*1X@t5>G&<=bQ<1Ihcy z@Nxl~`(r!6U53gMJBIx1X`R%FtsY;V9!68k2MTbFxpLIb@8Jpgpiz6ra?oh4VJ9O~ z%Ias^Cuc>3`eTmC*MvTJrKUppNcl0fY;!^Q%WWn9Of5zQ7E1UD?lm$Hav3ULL{)n9 z>0K0#Js_PVDb$lhhMApFVcq|{*Ai{^CiDpW#u`tLJ$S^Z5)`c#Oi1VU(i-fBocQ0b zeGsHoW=*~MJ@ZI8Zh3M<_ud7M7iuo0df@aIH`Z#%SiTB1w;(9Jkdci&sEL)H(~_wp zAG9UJ9a3KLKI+KEBPy-?kK|TNH#6>ck3QO)Wi!@Q#tTmW$@}8{V|KK)Wjy-m9&8JIAw2q$@;>upH%c*ziAi!#%dprvoX5Wo4 z6?4)K&E-3k?Ok3uGU;7b6*8CGY7-=HyDq*dcOsX6*O&7h;2Zt?CWY?Bkn{%bheM4r zt@x_zPASOUNi96!|L&*fgU!cJ2=4PH9U~|tR?|;Ym)T{YKlRDJ0$}=mf^;jT+>zdI zB~0i(mPJ@3H~OBpVF!nq5<{08Z&6Z%jHr>!WAHW_2bPELmv-+h)%H~S{x~kOv)Zs? zk-N>#i_1Xi-0pzU)6!3XJ+Ai(X|KsLHz=(2EqjLvcsPNz?A_jBG9&NrjBK_E@zM0t zPsqkOaFxu(B@k;l+vXyLd*`V*kzr$+(pp0_qNq2`S)}XD2fwM3_FTgWpLDm5x!hsD zil{Y~YC_1deEzM`RFBRcbAopFLWrFJ*1CSR`qspu58i~&8*4@7wPp%-s`!`+BMxB*ZlShxHW;|BL&%(jCu8wrrJQfMKN zrywbiY75{1^!MZ*juJCltO}s-$~iRO}UoPV-zC~w);DD%4Xv-)Um4) zYIHkUx+L^}if$!o$GK!zefB+k-j6riKI(UXIXvZkSgce8*Q@-@{50YuOJB*J*q)pG z=bUDtC>cYK+H>=Vd1Cs?@^vKoB(M%c0A&=DAwu9wQi{X|3k89$G{iq2X^cIFz9KdHATx1Knz*UFAxZUJWz=sPVgG; z45I%A$KvBR6=AJ3UZ78Ua4{0m4@1Y@eL^R@!v<9XR5(|zmj(^C2#-@5MX(3Wtu4!d zzIUVIq}$$ak9pVBP6budFR~~?@M0UxY(~|85ri4T0+rEW>8~`(TE!BBqhfih5Yhz%YzbVi> z%Uc2TA2AUAmcnMl%Rl7HKWY zaHEgjFi%lIE3`__bx^@nh;a4r{R>PY(jQf5qhr+bOc35L5Le*u{?f{zy0_%)pGxQV zCDL4PDIAvoTR*~$gT|AM8)C%3HR|tSnZG6(0_5>=emGzH*QzxKCTIZMMh4o8GeUrC z)_VULymvN0QxeWVQYJ6tm!%b2JPfxb(>*xnw`V#B*$W~Txl@$#dZRlE0CM|Kq)2P> z|0v6Fp<2!5p2*%6*)iC9f;l|noR^-gkvXgk7Jbfh+rK_O3+@UqTiv^#Yi|rcR+sf- z?BQ4S%H1hbEkmz7q##(3MR0qAu}y$pbFT4u$)awXJcD1ShaZN)Gj8h(@RFs=&jzam zfmgksp$M+~(o_mq59b$%{fGd1J(&MX&5~d3lK<@^0@N)8{NV9fgdZ(meBQdmr8uG^ zBT-LvaWugkgVedNm$s`Ke3HQ*a|c`G<~k2yU^*y6|1H5XOP^kHM}&<8ADVUNRho*9 zTh{-K6R3hd?}JLE@nWLfY4>Ikf%uv-zJ|y)MY0I%Ja+U2&CALu6HO2f>Dk@9W1G;^ zmhNLELp3FgC?8JAkxGB-EO4`jY_s6#f zHc1PaN)pHSVk}kg7qA~YR@5B`p9-{}l_%R?zqy*P0c-Ca1Y$4K4%q2}*}-2DV;V?Gq*lk z=J)w#NxPfz__nFRs(p_po}TR7MVkxG+aJ=Ki{?%_kCe7H9V>aq{4^I-za3-U{4OR% zShAIK%dc|(5>w83rkesZX8N6l9;M2@!Pp}tP`U%XY3H33;{U#v0B`Jojy}rA69?)f;dVgX zqM}RBI~l?RgX(snHv9BY5>0>N!N}2nyUBow{K~wwTVHhhLt4tf|EG<}g zaz1B_K4oVeP-UW_a9p8@#Ib__NGd)o z_j_Emt%}L?V>-t8EF?DwfqSap#FWAAgVKkpgkg~KKoWzmF`E&(NU!fKy)d>!67q){ zokz;jqCA1nJotm3a4MY`Jr+4=GY{NG5= zeSwoLJLP&DRKm1GAdkRqAn&-Z;wIOcVRmZ(SZZR%B2a8UhBvF@A4+Ra!BL5afv1{6 z(N1bQFc*-T{P!bbw**Q0I4~P()1U9$Vdi@4aMmC@gA}h=P}ejuj?`*<71%*F%Az-x zM=#%h6$sZ2k%Qsn+}^QEi;urFP4)iy`1#Ddn+{5jJRfn>j{>gKCk)T@qkZzK_=d5O zEB~Y(syOlEZhXwJxjf%hMn(*{zi4Phkg4>Es>$xx?=zXIB{N-yp#*m(3G(Mgo%0m0 zz_9{eWuw5(t-aE_BT%F+`F@S_-KGAq4Il1V@rGJXcD*FlDITR9Vx&uQJ7<5|FzsII zuq3Ce=ZplKWZ=OyHNzKGO_84|vCHW`A%SepBjPJzpD_*T;N`cA-lv}6uaT;uEk3XU zT*^-5c03EX+fg1C)O2~F)}`Bfk8~Xq0bB;+U%)DHQ?iBprOs#cWZByNXt$TN2j!)I z_DvN$;0-2719j`{B;y&B%y=7s|8(~t#x_T)xaPj+?;MHY~E8}_u7i52C#11 z6}WSYW=%jBeX~O;?fKW`)Axq!dEPhYij^#H9 zKY8U8;o_5=vG1a+hP3R2kwr~II$^@xGirH@@qGC8T}1nYd*scknN!$%sSZyua4huN z?c+m0(<&Z)>kBsVK|$qeBhgz7O|1qCi8dn8^nGn-Ulwb_4aS?_D59g`5}E*adyx?a z{RoS(e<1gS&@5Oou3%4wwMajKzT1AXK&-X&z4r#pj3^RvU6+EZTVK%ItPQN~VS3|&xCxGE_ z0IOCL7UNpo0&_{T-rA{e_TW~N$%BC&Aud{UqpCm?_(5!`d0_YXCdR99XhfqO=8 z*Yeq;zp4;AAf&9iu7lP%x^LUUu*=J-$ZDU|TuzMi6$DF&f#CrESwt6mqhUnI_Hn`S z%{rHs^o@N;+8;wl z3dQZxU>IT3F#BzF6dAb>rmI8JVnUDHc;$q-38(|8p$oH_=#GNmLtxSIr#my*KC-ZL z_j>y7*~C?l)H`+W471Y5rL*}-J(?6irY>>|CDR9a-6qp*9;085r0*@@3r0^?O?vv( zn}Q_VN0z8YQ>K2VQOV{LHd{><1(mYVDT+{x_J3XS2EDgIK`o6TlhUrP(ba~>F9?IT zj{js{**JxoQ6SY($H1O^oy++H5Qk>t>dW+?@v@+5lA*`Q*w~hJcY95z%q%0i*R8!? z1nB*OnbxYu@fVoSO;8pyUSIzN6##^B88|wf9uC|sng2Tkn@XTM=D+n*0Nq6dls$P# zfhbrU(rY2Y5qm~Kv91VQpSfEwt7ZT!3HMz)nU7j=X|O;w?1tnsRRb7ZsJtIRhTu4N zOAO7W^<7C~Kd)-xHOQic^e}-32M^IZ6+Jf^w(9O6D*#F+^mxd8p)=F%7J7lpT+UU3 ze943?-u?`Q+Cz%3(Wk>?pjnP%s)HQi(bM9wcMAmLu|6rQ^u?m&{}$$Uh?PhW?Qf%Ye6%s zxwUe-s9o2Vih;~@Uit4GbL3{RoC4SAOM?}RLjVf|dr=51G@NuWQV>KQ_zf(Lag^sT zu&h;2&1fB}asGc}XF356nL~~`-bsW5zsw&&4FON$hDm{K(tBfgVt^FAk~cqdL@mQ} z4^nyZfXUC;PsO%xP1fQH*o3qO;b8TbxlLW6 zcNg*_qkX;>hr9Vi$0>14xH)AL1L+S{fzv5?5Ycp zAI+|2Rw97l{}&|d3GlYajR{;8GLShKYZy}h5?K>EFu}X z#prlvORzq>HTXrl<7PsJ<~B!08HeFvM*iR&qi+)u0m_ZHbJ5Se7SWH{En;sNNWUdM zUluofdd`mlT#HP!6{^(-e0h50Qxr;9taiV@;B5Fc$NLg9FO+V`!PZ@yj^nP$0T}F_ zvonJSm;CW3;#g>C2l5+P)f8}q-)i7nonqB_&s(t+`O{zc(u1 zSpRl^@piX^seoX)8x6iF{ay+oMlR{gy6%G z69`%>QUlh+Uzgb+GM!Va_h9i8zi!jz@ptE>dk*XSwfWz=GHMhz7cw}P(WFks8LTZ- zrMU3hQ}xZN#)=ZW&3>RI-}A|e^QrjvOvOghGv9`fqjk=si^ky@FM9dc=>t{SwSxOb z%rR}Ji2UOI^|()Kbcw{7Kb%UA$>$t?p)N&mMfAFJR@bp6lYdbQA2%iiV%G@0!f=iC zw|;}y66C^n3Z-UYgmc%3)c(qTI*1G7a8~CZ^hKmmL&U@z_fLv;@-ogDXH&7U!M_JoLX+<6!!d9$#3J6??MJS zqZ{312y}gVDy64FJ(_r8=JJN&34TyV;;|*;VstWmgR$=-;{*Wp1J&JSrvILU-Lv~l z$zZ@>pJ}p6=MHX|b9vTxC%!NGSg$^9wq$S7=G!RY%a89qc?ONT1P8JsDoI4n1@I5h zKg$W2ypHZ;cV)mF(*+Rj75p7c&odlWFkTAa^L_zuY8f5m1^bcQ)NtH^hfMY2yDl2W zMa^^$*?9bUsPug=!EX2yDoN@~W)h!Qj11>txYC3Uh9?>RQQHf?r5+I{$e?JGVHS^W zw8MZx%%}=o$Yp4PG3fVIXU0XmI)5~ggn8+M4)Fm7uBQ^8ccTRCG92sssJDhhJsGKb zS0@@q_(9UJ0`vNgWcaJcB%W;_PHx(O5z(CCQe+l-dv)CW;n*o75Q2-SM21UeVs)2j z)lOPX%vJ8U(i@F9ou~@xQ-bM|DitwU>6!AXNt?JL8r;s)b0w&rKgVK2Qp1u!Hv0nv=V9B>^Q9LJLDF`$qK^|oR)sF^}Cy{ z*WI<&1aQ}HknYfzx#J4YXj*bVTC_uNYVw9FbarzKrXJl=WQ#!f3rgz(z`5H2AKr~J zO2a>;BLFK%J!{!Rc^W_a4E~?>>~@f4C#?_uLGc!i+b@U(?*Y$mhD-Y0&+LZpGIO z6ZzF%9EnJNJDhZYN&)t8-A(2h)be~UheNb3H1AQF=|p*G5W^5j1TL-U{lu*|C@hex&4S=ezZZgZ zU!lTYoV9wx!D$)>&kzua25iGWiIX>*BI`n;COZ}Oxx6QW%;f4)p7%M+Up;nsPmGUF z)oh?NbUqo;d(wGJzKJ3R7iU3(mxC zhuF>|=wnv$Q{diVLeS8sECSyA|GlyiiM=nz72#k)aeIWtYNRlkfpAo&6CjsHk3cwM215_m?Ucp|*qiloHG)DScrTIz z+vV6VP4%Ek1XvHe#%!AoT@F~T3f${56IDzB|M_o%`et)7JNYqJ5rZ5n%Q>%mko#-N z^fh4b%}$m=pz-KNbzwBFH&zCBN>%bFS;DGim%e8%$F}I>dcV|h{XPl-&JAEm_99)! zS^?f-J;P(S7}KS!O`;H(;5S7HiRfr`BY;{jO_M~=Hm5iVQ8N=vXi;AK^|E&vq1ap? z;Jylinou~SOxuJZSB0dQ?Ck!mqz(HWE$e6v;f>!v6hdH2GM!Y3~HW@0t zJo`sr5e9`a@dv}?F|G1uEDC#m!Qs3+Cru9;`#3< z56#=th;+1TNBY+N_`i4UcIc6tbCNY^SCu0)2P@zxLCTnzQU+YF@3B6v0d7(t|0_7v0ZRg~COnu*T<{}u_Wossf-B!o{ErViF8MK4U)+Hjzz3m0Q?|F7~NSnxXybw5fGP}d+=jkZsET?Z$?lJN2 z-XG)hL_Cxb{1O`~2XukdF%Z~i3iPl13C6Czxe0@>i3B`itfFM$Z-gO)AHeRc8Xt}# z>-`8q|K(XzR9whmP?f%7mZ3qd&c7@Y?pXf&&8iAp_#@2T&kUZcXXpa10OKhjK?mFb zLH3YKk|`|Q9b;Oeg5m!lcyvyq30r9v^ncwPe&2zt5NiMk6K+N>}gb=(hgMeh&*oj^&cr4{dS*?C@{0^=IV;tvTxh!v00=68_b29f>Ot)FF z7h_d0xhCH_%#2~&F?DPaXRLe1q3_Vc`C9u5R|njKq38DBLCLEd?`pixRE8g#I}buP z3bbosVS>Sc(x$iIKKL%xQ8Rxi<+&73PY84;r?wt!`eX7Pjz1WI7Qcz{=wR41*UQGEqI=>3e0Dh@v%5&7M$#N+#+lBn7b zJ>`^6*4P~Fz+hT?_-Wo)hu&0CE;4@e>3sG+q=wmaVvK(_Vs>JC=SyjtW5)%Z(IDpE z2Dieoznn@p`=LTB(eX^Bu-vbUDf8VUUwOz>rEz9$W#ncYmY_B$-^a~ujVMI~+W$I_ zv`m;kbH@iqkFEIa?Wdq-NhQFL z7Ttt+$QTZF(a_oMFXg@2SNTB?R-l6|H#~!iSxu@0)p0g)F|Y&5&>S8DxgdPSdTNVO z4G+P|-tTIT3NsE$C|Ox)x7q6P5wLLJ5`_fpI)q3yu5l`Su<;v0>ijf2=ka`LU=N~+ zGHDMAtRX+F)}~WD8^PQ_f5hE>dR=56TE{M*FM$PRgJ~*6VPH?1jEO*{;YjKJ-?@YDxxK*h~OyNavb!AFzxlYvV%b>3l+jRm}zM<;y zrJlaDmhs|WW7&f(btPFT8(p{m66AU-6lp_JrL*9P+Pz&7O9;0T^1|REQvWN%6Tqka zcr(WU9{?pi@OqI#f)w}9kI+b!A9_K6)9JK56({WEsPtR2K&)v{UeSd5zA~lhdTK87)FAQ2-HR5xgiY&;Ih$( z%^$`6)-D6?f9d6Q0N1q-w66sHzx7A{p#3O#lB4HH`+Ekt#NIZzLI&Zg`fgHz4B~&8VDL{&sbOY;bW4kv{Pqd(JA>OO{ zRj`|Nb^t6UwvkJtGDegMHL*-xbgZUO>4Q4uv7#9JMDW}oa(e#QR>n&_QvN7pqx!$7-jch1WkMr%k_3Afm? zmy(`{f!ENp!&(hn)~LkWFX7ks%D9t&UWkklypcp))<-R*J^G} z!}=zZsw8#%->{LJ{TK=P>`IE-p6mkP{N4c z(b5y4UkQUlZqL-8{PSJeh!SzY`|gOEB{1gJ0PC~*eV+_KZZ5i_?mJP2 z#j!aqg?>VADGr^#^{=evA29@Ox7*Ac3k;OgiJ;xJZaL&yYJb+sDtdFYIM8%J7sG8L zd*!A$k%NMV&QJfbY|;!n+RHd_eZpmaE>>^%dx68Bs!!44yB@~dukE>E3i!69J@X*|xeAKG z{lkAL={&chcx3PS#2j$DJB=j>9L5_|PRH>r(H6vW3G{P8u1^{)$IdhB1y%vo@6H;h zzaOky?vXixP)2n^XEE=@Pug4eMfBH&hQCWk%12E~It@7v%wcYOqoY^q@$7dMA+s)% zDiIBHMyL6BR;8&DZBJ)(+x?cS+!)?e>vDd<^5^f}of*<5^IHFa7sx0QSAlAY)?_IM$MglGrQUL>ko%2`&%~!EBhA=MKZ&5%+tfjnQg9=0r*{7dKpBc0%OJw}= z_?$19AYPAZ6R{JQmHg@btNdA`cjGsCqOx{c@H@Hc;;E{odecCCaqAwlE~NaO&p-7l zdP-ium9_s?KS7cdddg=`=@hS%r{RYkHI@XI;65`>yu$XD;sB1#9N=~5okRMAIs)$B zigQpUrrQs84f&~b2S%6hd-^1v?HQ74&p}*f-l6e~w}yh|R>dWKO=qW<_z5za?9?EB zQ_Q-aD70itmD6JgkVeESqkidp-YjzIuu3-p?BYWVqkN?x?IoRnIi;QyMeRzpk+lmM zZatH2ymz%UX>1%#k_auDd3i*VivL4~NQfuGXs>jA)}6Gt2)9~P)l#2Oy2M>*Ll5qv zc}t8c%M8gF)o`y6L_`WRr+AUijLkUBO*pAA{=Anue#7k1e5g#}rvF49V*Hg!FhZu!rTVd9 z0g{~VCPC5Je6mJgY~p%ey=^p|dc)E%CPZa|`7y`iYZ`^mGP~k3qj9k6Z&qtr z#mTOrsIs7J9`C@CV-bDttf%z6uF#|9*VDgM_if7gb&X&4dtlY(@qIPnO=U7H!Ib6s z-kkZ(=_G567T@W=#ouvCalQHD&!wm)Gm7#p(-Ef;aF_Y|DXOINNkx0XSaMPHc>Q)s zf`#aS83w3SZAS0FVz(H>1BBhq2_j!29 zZWTvah)P)hC38jl`C{&JjbNt;+I(dW@$4ZF=kIS>Tii=b!`yrVz034ePl5jQ5gPAH zyXo&siG@;NIvy?k47Jl=-r4NDL!iU>X~jT;zFkeUUQ~(Arh0AtBOFd4rQ5u0-D23X zwrSa)6kRc}&Hwmi&Zs3Xq>S>czGAvj?(xisx5AUINruhri;=eC+Um+qD^wk~PrrC1 z{xwcg@sB5OBj6+ZzE+h_lM(pnrunz?gmt+cB-sy|-fN_oRPGgSnmIidbQ^T?}pTrO%q9C?o@W;QJ6`YeKR zi)8u$pqfzz9|ZQ=bBGYsPo9+r)>me>1a-~ab}PcUt61U8rf(QM2yE4)J06|{1q2o} zkbdW5;?O*{UVb|G7V7lS@d#nZ)=k2I$D7&y8wTe2WEW}BR(4Y7x?1*)hlm&>1h%s$ zbHtuVGk%y?3{O{bDx^uF8-1t$HZi-RtzYFZ75*;CIP6K;rexO4aU2LcVi%C)a>* zdjRFj^Ifjj=2T(m7vr_@*Kxiilak(beO!<0UqBl!a_-h2$VV9yw)Qx%FicALKI)&% z2f+C^|3kzN#vtqr94?fv&nd~<=(`#PUulE>r1rT=BcfY;#^=`HMnwM!yi#SgSfAqU ztgv1@EkN~&t91Nka-Z=^=?4K%=v#IWENTsmlV1?Jx+3E{f*PiL|6X2|&rBb2VO)#w zetT$nDQ~hLmxtR$y|-;AXk<(m8_Py3@VGR;9-y162JDlwNiz7SMS*T)P~aMjRIZQo zL3!|}fI%}OMX*psfU1S%MsycYMO|a_N)nnp#yvdS*O6eW>=dEL09H`*jls0l z-^J#(@hgm7*}VsOysVfH4Ts) zhb^Xw6ZQL}Qi$+UQJ;;kJLEYM)W^Gb=9IitwO+0mKE}5?2)d$Fu@nF0Mb|X3PxD7( zzNDhkE#`Th_&rVRVp!p0zn!w|G0BG#?*AnNh`;(kGxPW&3`~dzO?Qg#S0b%l(~kyK z$s9)Y=m6Fea(I(x*VkAK_g(-G2+t+SNtcgM6=D(gn*GkCV`TqRmQAyV7d|bp5LaQ} zMqOv9WdiAeFo5DGClwSMR=Sr~rw{*6YEZdk31Utrm-Kn6&`Rd7dlCHlmUo+`+pRb0 zwM&T-tIc@J0Qv~!n>LIsa{CSJoxFAP9Z0{W$du)8a^O4?DDm;o8$dG6I6>B4u&qJ) z&|8O_hS^ounZ#=PaRop~_*rMh!Sp_eF(Jj^?IBlqJTcH6AcJSo`{k8VCSw1JxUQkEC7idKq%8G~`!Meew=L zZF!{(W@0a~wLdd;Q{3pL?#KeYNY%;bVG2l>mG>4mFGHpr6K@gfZLpN}%>dM;@!bSi zwOd_U;gZDk+8AR*!6I@t}u*)6!-!EcOjLv;SnjGmfv$I+S|kuT8E;x{>L-KQFy6x#OR^ z;}$f9Tw0SjLOVt<&ZMPp9#jM4b8ZBzeZs!)`_WhoMYu@U~ylDdh%zYvN>$P}_=Hx2wUNT1L}RBkNNu&la-Y|C9Wu;G8Hy z3$TnPlTB>y$q^II@qm+GD|~*{IEad_&=w$mNagrhof{6&4H8D_0M1U+$i-!y&QP zjUEuVRlI?SvGSsQi`OoM&==V4E3)7BhYS>{M;h1BiV_&3Tss2$M(dH!=WP~b>h5w5 z-$e;?+4T7CDpLifTK)C~!yRsj0DmPt&(FBBDtNYSa?q^RkQw?;=-C+e!_@to(;Cvy zAe=C^;B`j8G#N67WmAaMdlCob!oY6F_L)Xh5Z;_U`fsP_vSBt8rH0~Q@fiy(W{RV3 zN;O4P6l`rU{>w8XE}v)z?h8b1P+N*h@1H`@ zUXdCINvU5d*CdBD8QhQS>bw~dkW;hn(S0?u$DvIUN6ErS+s(hfzus`|>d#tXyM8~y zPQ@H%NRYszXI~>OJd9 z0ufVY7O_Sx-g0%O{H*>DR#GUz%4053MN|zjFcxLW>%qA^>36*7m$ZFL%s@hf&WYM7 zWl@q5&8j~UsdJi}HFmU3WM=n7;z;R;Gki?O$;Na2o zO;@8@l&&07YhB*IcnN0<@?O)omw=}mItDdwTHOw7T2NuFKHh-P*u&#ZLhz+03nh^2 zI6cQzVEl5FGNIY_ls5P?tGrL^T%=Y=xIduZAN`#|&pONx9GYJkgjY!6_st=6TNvL( zwtUa570-LlJYkHeU{`gc&x*Gxgs-dGZOGJSGwPEcZ<->o_y4(%dRJ+=%JAum8mg8P z@@;-n_k%Uo@uT!YJsM>~>J3f(NK?zd<5{e7H{)Z+|Ypmy%lA*}#b07vjB zjsv!}!(^aeLsXF8+bo`+T!ZrFZNL&k*5TV`BT%WU&hs2(XwPKKhr@rLL_>rfY#fNG ziY?ArGfQv}@Jp)p`*r+u}~1*T)968F^@QnJx+_M(ZLauTn8Zo-Ll2^j1Hf6A`<-|-&E6kx5t*fj| z>(T$+`)MBfgz}i*&@5pkIO{v8DkKl%t%{dP<4=R$DFLE**>dl42Q9U=NXV3}8<<^I8cHp(8Tn-n(( zlfi}%>YK&*QY&7gjzhP7W;P?*qCGO0m{<{|tBjz#}b+s?&5B8e=lkS3e4Y$M~b6pUI z>uQQX3OftfC5h4yN@af{;>8WHvNu2O?Eq!`R?^6{sW4DAv<}%Dz@0~+RQ2)oVW{@K zv8n!R$&WkH>+yDy{M6F6;MwCPgV%?>Cj{*qY(g90P8PO0^19p8%B?Gj7Jc6|PSgBN z3uc@(uZ>fm$bTGFsa1gxcA z2Z4JmybWsBh5UCk4SDMJ*^f;tayK?fZh4y5m>wdSXRc(^2+FTnYf9$EUrO&=(?4f@ zWFARb0cr$5jA^DALIY|5y=0jTFGf9yFNGRyD>wh~{J!(mg7J*= z3LW|}?1;-^aE#o%;E$IA0d%$bT2ur_C;ItS-WP`Xl5=-;9)^o+KVzo`|9m)lreRlL zciExqylI<+hmtKvbY^xp?F4+ow>^744p!3qn>~>vE8xEByREX5rE|G7mZ{=D@@7U;PQEP6e=b3!2bzV%{a$}&8%^T{p^7$}{y04dQ zTM`o0!094Qa$Yk~DT5cgGQC!Ssq|dAZK87egcz2z>R-XuVZJUPduRtT{0c%d;-+U* zLq6@U2$A{bShsts~ zqBjS}m(Fe%g+pIo{#3GlmdkS)^EfbzHrp82?uA*ph`GfNT*vaz4*jk62USt-ErykU z8Fv;2?fwYuZR3d9wX$K^-G`H8hPA$HPlZ3aoz3vS^=|`d=@Ez4@Za0^ZFN2){ zFP?+j&r!#!7R!tjd06dM*?Hi^m%|%LCfq-nb5p@-w zv9l2C&luW6=bq&0Y#+Bu*Li3MZx`S<`A5$&QGzv$>QP&6kU6SD_2p5K=PwcEBBq|h zQJlpsRUw27uNSbdOn;NMj}@W68f0>Ys{&}usaE@CAH>KjUNH9n)$_y+BJNTWVtppY z0gDYOYf8=K_*`+{vI4x8-oEp2Z6X1lPJ;S(A=?)sPUll?6a_$tq|hT<%x|C; zyY^fsRhdqNX3eQ@1p--kHZznxJa*ekyOeY$N+VVv);?Zli5_)**h1tq zSrXZrutIb;i94;?0H`NnxGb*-sS3HJTr&|}pr5S}hD?STfE>E%5$og8#W5enRfcj@ zIyv^$LIGyUeFS5%J<4K|=9g9q)!gpK=2^q>>HAaV@I4|w3Mw}F1pDRgH%22;yy@AC zfw9l6LcZ$OBW-wqS{p;`af3n)A_69<>S$)BUl9WPZ}1V6fv7C{#0!hseo8#oUG@+W zmRt5GqU#i?B0oiQN*Rc@=yEV+6}x_di_VNB#^$(RF@SbqqSlyS_rJjBpKenHp& zn(IKhY5SDTzZ!)eSNHw)GQUx`CtqhQ4+AX;ysC2R{gj6f_luposO2n)xci<)ZQFL;PE1~ z0=M~E2UyGeNZBQ(DDDzC{3!@aU<3|#W}TyEsyFuW=%Qx9 zSXM8k`!wP*yI(w5&Tnf)pipKLL4lt#A9}8ffU5v$5*NqVU?BMoHFr{o^dX(I;6Kqc zlCpJh@21C&dk$3e+^&=XDa`B3VmC4}A_Y(1*6ci+icl;6-K(v7D6fw)$4CTNKtK?Y zHG2opJC-Yg_aA7|=o!BByQn7jx%nz;&8Fl2wliaof|^eJ z*ou3+ydf(O5eGk?_3e1GYIrPdZ?=Ph%&dE&>-bbV+G*cRH>2d>OJ$o3xG}R+uaESZ znfA}-%x^f9Hpx5MrG{vcsLMsEGiSlc=we{4} z{M<&kvr!*-KDFPF@^0m5^|*=B6(Vb-b?nwu>!{zaomEW_#htFz0%I2u?cKD9*bZ8`o{RvnNJ|)&#iK3Z);PN2K+k@Q%c1f^3+6UB za=n2qg59_Y^hFIFnx*XeKLvGOhq{}CtVa~X8D@`B6S|Q1DBd2}wnv^jEA)t-7dUBM zQ@VAaD!y-fKk-330kPl7$Q^Gi+E>u-UNOA8hs$3ptcYS+Tjjt?8UARB_v43>p1f@D z#K)2?0Y;-AogY}#ZC{y>kQX;sJ?TS+KZB5-H(_wgngO(4m6L9~g0fR@etn}jk-$L; zKe*ps6`aoJBht*V%$A6R`1Qh7=Vfpi>ObFsrMd#0r)>w<9R_<0*O~7opMgk~9i(%J z(=0(nF~{p3w@3BhE8#A4t-ASHagQab_@`awWUsQk8cJjoqMlT$<4S$^uVH7VHBG=% z7FMif#qu>VdXB$#!#`^bIK}9&y~OUw^%kutcb03nei6GnZTqjKXQ3xkGzQGV*m21D zP6zc@j_yn|mO)&E{bf%Va(;}WtsQKF4b6p%^Ur5$UVC?UTi=LAAK})mji!uCc8#Y$ zCoC zq>JZYBb8{I-!UdcPk5djha zBd)WSG=4ybAGl4tj6jV0(S$*U*^|{DMWOH>s-$I}_f_sBT#P-CIUluI>v-}cbS%|i ztiE23Ur;LP-TDW$)n@-!0M7z2{o?=tx2XW&xZ{qi4c2j{9K@a^263jHihe0afK=)U z+N|;6B7F0k->eNU3O>g_puTqaqX}ZCtw-w*?k#t0Z={ZSN<1_O#N6v=-5;$^x)oLt zlKnrXza>ml0YFF{`;amC@ni2RKL@6=Kg9SI8r-^ zdY{`rPX-9j7Z7GW**3cImkU08+1?b$_%na=GH4?i12KHVI#wv;85*j|D<}TnYei zhMyYE0TAK=Fbr$!{ei+!68Dz)M+?m-LAO%?kn;V5-zz+HNXr3`(jE!`eBTcm0N{e3 z8WsOd*z@}ycVI=}Wx)V9>4LwA{sI8XQUE|%$}$N6z~|PVVi@bsJq-{5TzTbt2>_QY zSps6;Yp_oc0EjKaM*)DZ&NBi4-}vY*0gqT(if*&on*acO_B6%=ph*A_S_hqn0OVXh z>;7m0GIgfk692vs0H1IV0RU|X{}=$E-Cr$BK865jRVZi~K+OYSR5<{edVg^7pK2-h z9{~Vez)b<_}8zfoU%Pun+X1;-BxAY6o80<6e9D zxgzkI2Lhu215xKz?q>l2WhnrlEM+MGU=RRMEqC$77dtRZ{G;_P1ppKPPyj#y00jUP z05EO2 diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index af57148619..8a818d2fdd 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -2,6 +2,7 @@ package io.anuke.mindustry; import io.anuke.mindustry.core.*; import io.anuke.mindustry.io.BundleLoader; +import io.anuke.ucore.core.Timers; import io.anuke.ucore.modules.ModuleCore; import io.anuke.ucore.util.Log; @@ -15,10 +16,14 @@ public class Mindustry extends ModuleCore { debug = Platform.instance.isDebug(); + Timers.mark(); + Log.setUseColors(false); BundleLoader.load(); ContentLoader.load(); + Log.info("Time to load content: {0}", Timers.elapsed()); + module(logic = new Logic()); module(world = new World()); module(control = new Control()); diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index ad4d3acb42..aa7def6b1f 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -25,7 +25,7 @@ import io.anuke.ucore.util.OS; import java.util.Locale; public class Vars{ - public static final boolean testMobile = true; + public static final boolean testMobile = false; //shorthand for whether or not this is running on android or ios public static boolean mobile; public static boolean ios; diff --git a/core/src/io/anuke/mindustry/content/AmmoTypes.java b/core/src/io/anuke/mindustry/content/AmmoTypes.java index 547914b18c..afeaded09a 100644 --- a/core/src/io/anuke/mindustry/content/AmmoTypes.java +++ b/core/src/io/anuke/mindustry/content/AmmoTypes.java @@ -1,7 +1,9 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.bullets.*; import io.anuke.mindustry.content.fx.ShootFx; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.type.ContentList; @@ -160,4 +162,9 @@ public class AmmoTypes implements ContentList { cryofluid = new AmmoType(Liquids.cryofluid, TurretBullets.cryoShot, 0.3f); } + + @Override + public Array getAll() { + return AmmoType.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/Items.java b/core/src/io/anuke/mindustry/content/Items.java index b0f7252325..fbefb1b7ea 100644 --- a/core/src/io/anuke/mindustry/content/Items.java +++ b/core/src/io/anuke/mindustry/content/Items.java @@ -1,6 +1,8 @@ package io.anuke.mindustry.content; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.ItemType; @@ -80,4 +82,9 @@ public class Items implements ContentList{ explosiveness = 0.2f; }}; } + + @Override + public Array getAll() { + return Item.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/Liquids.java b/core/src/io/anuke/mindustry/content/Liquids.java index 32942b9905..0aa164c6c2 100644 --- a/core/src/io/anuke/mindustry/content/Liquids.java +++ b/core/src/io/anuke/mindustry/content/Liquids.java @@ -1,6 +1,8 @@ package io.anuke.mindustry.content; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.Liquid; @@ -43,6 +45,10 @@ public class Liquids implements ContentList { effect = StatusEffects.freezing; } }; + } + @Override + public Array getAll() { + return Liquid.all(); } } diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 8a63d3f433..b922c59efa 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -1,7 +1,10 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.Mech; +import io.anuke.mindustry.type.Upgrade; public class Mechs implements ContentList { public static Mech standard, standardShip; @@ -17,4 +20,9 @@ public class Mechs implements ContentList { drillPower = 1; }}; } + + @Override + public Array getAll() { + return Upgrade.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/Recipes.java b/core/src/io/anuke/mindustry/content/Recipes.java index e9940a5b30..c9c2c466a9 100644 --- a/core/src/io/anuke/mindustry/content/Recipes.java +++ b/core/src/io/anuke/mindustry/content/Recipes.java @@ -1,6 +1,8 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.blocks.*; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.Recipe; @@ -127,4 +129,9 @@ public class Recipes implements ContentList{ new Recipe(units, DebugBlocks.powerVoid, new ItemStack(Items.steel, 10)).setDebug(); new Recipe(units, DebugBlocks.powerInfinite, new ItemStack(Items.steel, 10), new ItemStack(Items.surgealloy, 5)).setDebug(); } + + @Override + public Array getAll() { + return Recipe.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/StatusEffects.java b/core/src/io/anuke/mindustry/content/StatusEffects.java index f660cffaeb..f6456a1f6c 100644 --- a/core/src/io/anuke/mindustry/content/StatusEffects.java +++ b/core/src/io/anuke/mindustry/content/StatusEffects.java @@ -1,7 +1,9 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.fx.EnvironmentFx; import io.anuke.mindustry.entities.StatusController.TransitionResult; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.type.ContentList; @@ -124,4 +126,9 @@ public class StatusEffects implements ContentList { freezing.setOpposites(burning, melting); burning.setOpposites(wet, freezing); } + + @Override + public Array getAll() { + return StatusEffect.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/UnitTypes.java b/core/src/io/anuke/mindustry/content/UnitTypes.java index d74d592d71..e7a8af4dd4 100644 --- a/core/src/io/anuke/mindustry/content/UnitTypes.java +++ b/core/src/io/anuke/mindustry/content/UnitTypes.java @@ -1,10 +1,13 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.entities.units.UnitType; import io.anuke.mindustry.entities.units.types.Drone; import io.anuke.mindustry.entities.units.types.Scout; import io.anuke.mindustry.entities.units.types.Vtol; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; +import io.anuke.mindustry.type.StatusEffect; public class UnitTypes implements ContentList { public static UnitType drone, scout, vtol; @@ -36,4 +39,9 @@ public class UnitTypes implements ContentList { setAmmo(AmmoTypes.bulletIron); }}; } + + @Override + public Array getAll() { + return StatusEffect.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/Weapons.java b/core/src/io/anuke/mindustry/content/Weapons.java index f7a840a19d..057c991d48 100644 --- a/core/src/io/anuke/mindustry/content/Weapons.java +++ b/core/src/io/anuke/mindustry/content/Weapons.java @@ -1,7 +1,10 @@ package io.anuke.mindustry.content; +import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.fx.ShootFx; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; +import io.anuke.mindustry.type.Upgrade; import io.anuke.mindustry.type.Weapon; public class Weapons implements ContentList { @@ -18,4 +21,9 @@ public class Weapons implements ContentList { setAmmo(AmmoTypes.bulletIron); }}; } + + @Override + public Array getAll() { + return Upgrade.all(); + } } diff --git a/core/src/io/anuke/mindustry/content/blocks/BlockList.java b/core/src/io/anuke/mindustry/content/blocks/BlockList.java new file mode 100644 index 0000000000..9bf7eb92ee --- /dev/null +++ b/core/src/io/anuke/mindustry/content/blocks/BlockList.java @@ -0,0 +1,14 @@ +package io.anuke.mindustry.content.blocks; + +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.type.ContentList; +import io.anuke.mindustry.world.Block; + +public abstract class BlockList implements ContentList { + + @Override + public Array getAll() { + return Block.all(); + } +} diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index d4d274cd23..9f584a43c6 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.*; -public class Blocks implements ContentList{ +public class Blocks extends BlockList implements ContentList{ public static Block air, spawn, blockpart, build1, build2, build3, build4, build5, build6, defaultFloor, space, metalfloor, deepwater, water, lava, oil, stone, blackstone, iron, lead, coal, titanium, thorium, dirt, sand, ice, snow, grass, sandblock, snowblock, stoneblock, blackstoneblock, grassblock, mossblock, shrub, rock, icerock, blackrock, dirtblock; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java index 1c39ad9ebc..a5af6c2f52 100644 --- a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.types.production.*; -public class CraftingBlocks implements ContentList { +public class CraftingBlocks extends BlockList implements ContentList { public static Block smelter, alloysmelter, siliconsmelter, poweralloysmelter, powersmelter, cryofluidmixer, melter, separator, centrifuge, plasticFormer, biomatterCompressor, pulverizer, oilRefinery, stoneFormer, weaponFactory, incinerator; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java index 138ce21d7a..f1b6bfd02c 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java @@ -20,7 +20,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -public class DebugBlocks implements ContentList{ +public class DebugBlocks extends BlockList implements ContentList{ public static Block powerVoid, powerInfinite, itemSource, liquidSource, itemVoid; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/DefenseBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DefenseBlocks.java index f250b6522d..1edb9021fd 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DefenseBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DefenseBlocks.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.world.blocks.types.Wall; import io.anuke.mindustry.world.blocks.types.defense.Door; import io.anuke.mindustry.world.blocks.types.defense.ShieldedWallBlock; -public class DefenseBlocks implements ContentList { +public class DefenseBlocks extends BlockList implements ContentList { public static Block stonewall, ironwall, steelwall, titaniumwall, diriumwall, compositewall, steelwalllarge, titaniumwalllarge, diriumwalllarge, titaniumshieldwall, door, largedoor; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java index 90aec4bf89..20910ed60a 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java @@ -4,7 +4,7 @@ import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.types.distribution.*; -public class DistributionBlocks implements ContentList{ +public class DistributionBlocks extends BlockList implements ContentList{ public static Block conveyor, steelconveyor, pulseconveyor, router, multiplexer, junction, bridgeconveyor, laserconveyor, sorter, splitter, overflowgate; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java index 11fa206a66..ac616eb4bb 100644 --- a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java @@ -5,7 +5,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.types.distribution.*; import io.anuke.mindustry.world.blocks.types.production.Pump; -public class LiquidBlocks implements ContentList{ +public class LiquidBlocks extends BlockList implements ContentList{ public static Block pump, fluxpump, conduit, pulseconduit, liquidrouter, liquidtank, liquidjunction, bridgeconduit, laserconduit; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/PowerBlocks.java b/core/src/io/anuke/mindustry/content/blocks/PowerBlocks.java index b5cb9c926c..843a37d635 100644 --- a/core/src/io/anuke/mindustry/content/blocks/PowerBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/PowerBlocks.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.world.blocks.types.defense.ShieldBlock; import io.anuke.mindustry.world.blocks.types.distribution.Teleporter; import io.anuke.mindustry.world.blocks.types.power.*; -public class PowerBlocks implements ContentList { +public class PowerBlocks extends BlockList implements ContentList { public static Block combustiongenerator, thermalgenerator, liquidcombustiongenerator, rtgenerator, solarpanel, largesolarpanel, nuclearReactor, fusionReactor, repairturret, megarepairturret, shieldgenerator, battery, batteryLarge, powernode, powernodelarge, teleporter; @Override @@ -95,7 +95,7 @@ public class PowerBlocks implements ContentList { powerSpeed = 1f; maxNodes = 5; laserRange = 7.5f; - shadow = "powernodelarge-shadow"; + shadow = "shadow-round-2"; }}; teleporter = new Teleporter("teleporter"); diff --git a/core/src/io/anuke/mindustry/content/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/content/blocks/ProductionBlocks.java index 6324135fc9..62108599ba 100644 --- a/core/src/io/anuke/mindustry/content/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/ProductionBlocks.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.world.blocks.types.production.Drill; import io.anuke.mindustry.world.blocks.types.production.Fracker; import io.anuke.mindustry.world.blocks.types.production.SolidPump; -public class ProductionBlocks implements ContentList { +public class ProductionBlocks extends BlockList implements ContentList { public static Block ironDrill, reinforcedDrill, steelDrill, titaniumDrill, laserdrill, nucleardrill, plasmadrill, waterextractor, oilextractor, cultivator; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/StorageBlocks.java b/core/src/io/anuke/mindustry/content/blocks/StorageBlocks.java index 6669b3419c..abc9582a78 100644 --- a/core/src/io/anuke/mindustry/content/blocks/StorageBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/StorageBlocks.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.world.blocks.types.storage.SortedUnloader; import io.anuke.mindustry.world.blocks.types.storage.Unloader; import io.anuke.mindustry.world.blocks.types.storage.Vault; -public class StorageBlocks implements ContentList { +public class StorageBlocks extends BlockList implements ContentList { public static Block core, vault, unloader, sortedunloader; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java b/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java index fde38ee208..6ec0595bc2 100644 --- a/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.world.blocks.types.units.RepairPoint; import io.anuke.mindustry.world.blocks.types.units.ResupplyPoint; import io.anuke.mindustry.world.blocks.types.units.UnitFactory; -public class UnitBlocks implements ContentList { +public class UnitBlocks extends BlockList implements ContentList { public static Block resupplyPoint, repairPoint, droneFactory, dropPoint; @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java index ace2a144f1..c1049e119f 100644 --- a/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java @@ -12,7 +12,7 @@ import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; -public class WeaponBlocks implements ContentList { +public class WeaponBlocks extends BlockList implements ContentList { public static Block duo, scatter, scorch, hail, wave, crux, lancer, arc, swarmer, ripple, cyclone, fuse, spectre, eraser, meltdown; @Override diff --git a/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java b/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java index 4309f59f84..e89ef0048a 100644 --- a/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java @@ -5,80 +5,74 @@ import io.anuke.mindustry.entities.bullet.BasicBulletType; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; -public class ArtilleryBullets implements ContentList{ +public class ArtilleryBullets extends BulletList implements ContentList{ public static BulletType lead, thorium, plastic, homing, incindiary, surge; @Override public void load() { - lead = new BasicBulletType(3f, 0) { + lead = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - thorium = new BasicBulletType(3f, 0) { + thorium = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - plastic = new BasicBulletType(3f, 0) { + plastic = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - homing = new BasicBulletType(3f, 0) { + homing = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - incindiary = new BasicBulletType(3f, 0) { + incindiary = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - surge = new BasicBulletType(3f, 0) { + surge = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; lifetime = 90f; drag = 0.01f; bulletWidth = bulletHeight = 9f; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; diff --git a/core/src/io/anuke/mindustry/content/bullets/BulletList.java b/core/src/io/anuke/mindustry/content/bullets/BulletList.java new file mode 100644 index 0000000000..dac973f2e0 --- /dev/null +++ b/core/src/io/anuke/mindustry/content/bullets/BulletList.java @@ -0,0 +1,14 @@ +package io.anuke.mindustry.content.bullets; + +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.entities.bullet.BulletType; +import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.type.ContentList; + +public abstract class BulletList implements ContentList { + + @Override + public Array getAll() { + return BulletType.all(); + } +} diff --git a/core/src/io/anuke/mindustry/content/bullets/FlakBullets.java b/core/src/io/anuke/mindustry/content/bullets/FlakBullets.java index b151fd75f8..fdcec72362 100644 --- a/core/src/io/anuke/mindustry/content/bullets/FlakBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/FlakBullets.java @@ -4,34 +4,34 @@ import io.anuke.mindustry.entities.bullet.BasicBulletType; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; -public class FlakBullets implements ContentList { +public class FlakBullets extends BulletList implements ContentList { public static BulletType lead, plastic, explosive, surge; @Override public void load() { - lead = new BasicBulletType(3f, 5) { + lead = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - plastic = new BasicBulletType(3f, 5) { + plastic = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - explosive = new BasicBulletType(3f, 5) { + explosive = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - surge = new BasicBulletType(3f, 5) { + surge = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; diff --git a/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java b/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java index aa86e87c37..591b12f8e6 100644 --- a/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java @@ -4,27 +4,27 @@ import io.anuke.mindustry.entities.bullet.BasicBulletType; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; -public class MissileBullets implements ContentList { +public class MissileBullets extends BulletList implements ContentList { public static BulletType explosive, incindiary, surge; @Override public void load() { - explosive = new BasicBulletType(3f, 5) { + explosive = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - incindiary = new BasicBulletType(3f, 5) { + incindiary = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - surge = new BasicBulletType(3f, 5) { + surge = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; diff --git a/core/src/io/anuke/mindustry/content/bullets/ShellBullets.java b/core/src/io/anuke/mindustry/content/bullets/ShellBullets.java index a93c2e1fd0..d94817abc2 100644 --- a/core/src/io/anuke/mindustry/content/bullets/ShellBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/ShellBullets.java @@ -6,13 +6,13 @@ import io.anuke.mindustry.entities.bullet.BasicBulletType; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; -public class ShellBullets implements ContentList { +public class ShellBullets extends BulletList implements ContentList { public static BulletType lead, leadShard, thorium, thoriumShard, plastic, plasticShard, explosive, explosiveShard, incindiary; @Override public void load() { - lead = new BasicBulletType(3f, 0) { + lead = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; @@ -20,12 +20,11 @@ public class ShellBullets implements ContentList { drag = 0.01f; bulletWidth = bulletHeight = 9f; fragBullet = leadShard; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - leadShard = new BasicBulletType(3f, 0) { + leadShard = new BasicBulletType(3f, 0, "shell") { { drag = 0.1f; hiteffect = Fx.none; @@ -38,7 +37,7 @@ public class ShellBullets implements ContentList { } }; - thorium = new BasicBulletType(3f, 0) { + thorium = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; @@ -46,12 +45,11 @@ public class ShellBullets implements ContentList { drag = 0.01f; bulletWidth = bulletHeight = 9f; fragBullet = leadShard; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - thoriumShard = new BasicBulletType(3f, 0) { + thoriumShard = new BasicBulletType(3f, 0, "shell") { { drag = 0.1f; hiteffect = Fx.none; @@ -64,7 +62,7 @@ public class ShellBullets implements ContentList { } }; - plastic = new BasicBulletType(3f, 0) { + plastic = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; @@ -72,12 +70,11 @@ public class ShellBullets implements ContentList { drag = 0.01f; bulletWidth = bulletHeight = 9f; fragBullet = leadShard; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - plasticShard = new BasicBulletType(3f, 0) { + plasticShard = new BasicBulletType(3f, 0, "shell") { { drag = 0.1f; hiteffect = Fx.none; @@ -90,7 +87,7 @@ public class ShellBullets implements ContentList { } }; - explosive = new BasicBulletType(3f, 0) { + explosive = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; @@ -98,12 +95,11 @@ public class ShellBullets implements ContentList { drag = 0.01f; bulletWidth = bulletHeight = 9f; fragBullet = leadShard; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; - explosiveShard = new BasicBulletType(3f, 0) { + explosiveShard = new BasicBulletType(3f, 0, "shell") { { drag = 0.1f; hiteffect = Fx.none; @@ -116,7 +112,7 @@ public class ShellBullets implements ContentList { } }; - incindiary = new BasicBulletType(3f, 0) { + incindiary = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; @@ -124,7 +120,6 @@ public class ShellBullets implements ContentList { drag = 0.01f; bulletWidth = bulletHeight = 9f; fragBullet = leadShard; - bulletSprite = "frag"; bulletShrink = 0.1f; } }; diff --git a/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java b/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java index d0a9dd2e7e..7495ddf317 100644 --- a/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java @@ -4,48 +4,48 @@ import io.anuke.mindustry.entities.bullet.BasicBulletType; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; -public class StandardBullets implements ContentList { +public class StandardBullets extends BulletList implements ContentList { public static BulletType iron, lead, steel, thorium, homing, tracer; @Override public void load() { - iron = new BasicBulletType(3f, 5) { + iron = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - lead = new BasicBulletType(3f, 5) { + lead = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - steel = new BasicBulletType(3f, 5) { + steel = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - thorium = new BasicBulletType(3f, 5) { + thorium = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - homing = new BasicBulletType(3f, 5) { + homing = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - tracer = new BasicBulletType(3f, 5) { + tracer = new BasicBulletType(3f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; diff --git a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java index f845c768fc..fa7c235420 100644 --- a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java @@ -24,7 +24,7 @@ import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.world; -public class TurretBullets implements ContentList { +public class TurretBullets extends BulletList implements ContentList { public static BulletType fireball, basicFlame, lancerLaser, fuseShot, waterShot, cryoShot, lavaShot, oilShot, lightning; @Override diff --git a/core/src/io/anuke/mindustry/content/fx/BlockFx.java b/core/src/io/anuke/mindustry/content/fx/BlockFx.java index 40d6019086..14e77406c6 100644 --- a/core/src/io/anuke/mindustry/content/fx/BlockFx.java +++ b/core/src/io/anuke/mindustry/content/fx/BlockFx.java @@ -15,7 +15,7 @@ import io.anuke.ucore.util.Tmp; import static io.anuke.mindustry.Vars.tilesize; -public class BlockFx implements ContentList{ +public class BlockFx extends FxList implements ContentList{ public static Effect reactorsmoke, nuclearsmoke, nuclearcloud, redgeneratespark, generatespark, fuelburn, plasticburn, pulverize, pulverizeRed, pulverizeRedder, pulverizeSmall, pulverizeMedium, producesmoke, smeltsmoke, formsmoke, blastsmoke, lava, dooropen, doorclose, dooropenlarge, doorcloselarge, purify, purifyoil, purifystone, generate, mine, mineBig, mineHuge, smelt, teleportActivate, teleport, teleportOut, ripple, bubble; @Override @@ -48,7 +48,7 @@ public class BlockFx implements ContentList{ redgeneratespark = new Effect(18, e -> { Angles.randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> { float len = e.fout() * 4f; - Draw.color(Color.valueOf("fbb97f"), Color.GRAY, e.fin()); + Draw.color(Palette.redSpark, Color.GRAY, e.fin()); //Draw.alpha(e.fout()); Draw.rect("circle", e.x + x, e.y + y, len, len); Draw.reset(); @@ -57,7 +57,7 @@ public class BlockFx implements ContentList{ generatespark = new Effect(18, e -> { Angles.randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> { float len = e.fout() * 4f; - Draw.color(Color.valueOf("d2b29c"), Color.GRAY, e.fin()); + Draw.color(Palette.orangeSpark, Color.GRAY, e.fin()); Draw.rect("circle", e.x + x, e.y + y, len, len); Draw.reset(); }); @@ -86,14 +86,14 @@ public class BlockFx implements ContentList{ }); pulverizeRed = new Effect(40, e -> { Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> { - Draw.color(Color.valueOf("ffa480"), Palette.stoneGray, e.fin()); + Draw.color(Palette.redDust, Palette.stoneGray, e.fin()); Fill.poly(e.x + x, e.y + y, 4, e.fout() * 2f + 0.5f, 45); Draw.reset(); }); }); pulverizeRedder = new Effect(40, e -> { Angles.randLenVectors(e.id, 5, 3f + e.fin() * 9f, (x, y) -> { - Draw.color(Color.valueOf("ff7b69"), Palette.stoneGray, e.fin()); + Draw.color(Palette.redderDust, Palette.stoneGray, e.fin()); Fill.poly(e.x + x, e.y + y, 4, e.fout() * 2.5f + 0.5f, 45); Draw.reset(); }); @@ -128,7 +128,7 @@ public class BlockFx implements ContentList{ }); formsmoke = new Effect(40, e -> { Angles.randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> { - Draw.color(Color.valueOf("f1e479"), Color.LIGHT_GRAY, e.fin()); + Draw.color(Palette.plasticSmoke, Color.LIGHT_GRAY, e.fin()); Fill.poly(e.x + x, e.y + y, 4, 0.2f + e.fout() * 2f, 45); Draw.reset(); }); diff --git a/core/src/io/anuke/mindustry/content/fx/BulletFx.java b/core/src/io/anuke/mindustry/content/fx/BulletFx.java index 901cda1070..08b50674de 100644 --- a/core/src/io/anuke/mindustry/content/fx/BulletFx.java +++ b/core/src/io/anuke/mindustry/content/fx/BulletFx.java @@ -10,7 +10,7 @@ import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; -public class BulletFx implements ContentList { +public class BulletFx extends FxList implements ContentList { public static Effect hitBulletSmall, hitBulletBig, hitFlameSmall, hitLiquid, hitLancer, despawn, flakExplosion; @Override diff --git a/core/src/io/anuke/mindustry/content/fx/EnvironmentFx.java b/core/src/io/anuke/mindustry/content/fx/EnvironmentFx.java index fdf5f0720d..d1eb624141 100644 --- a/core/src/io/anuke/mindustry/content/fx/EnvironmentFx.java +++ b/core/src/io/anuke/mindustry/content/fx/EnvironmentFx.java @@ -10,7 +10,7 @@ import io.anuke.ucore.graphics.Fill; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; -public class EnvironmentFx implements ContentList { +public class EnvironmentFx extends FxList implements ContentList { public static Effect burning, fire, smoke, steam, fireballsmoke, ballfire, freezing, melting, wet, oily; @Override diff --git a/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java b/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java index fea870d73e..78f4a7e4fa 100644 --- a/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java +++ b/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java @@ -10,7 +10,7 @@ import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; -public class ExplosionFx implements ContentList { +public class ExplosionFx extends FxList implements ContentList { public static Effect shockwave, bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke; @Override diff --git a/core/src/io/anuke/mindustry/content/fx/Fx.java b/core/src/io/anuke/mindustry/content/fx/Fx.java index 33586e7ac3..693a412742 100644 --- a/core/src/io/anuke/mindustry/content/fx/Fx.java +++ b/core/src/io/anuke/mindustry/content/fx/Fx.java @@ -11,7 +11,7 @@ import io.anuke.ucore.util.Angles; import static io.anuke.mindustry.Vars.tilesize; -public class Fx implements ContentList { +public class Fx extends FxList implements ContentList { public static Effect none, placeBlock, breakBlock, smoke, spawn, tapBlock, select; @Override @@ -53,7 +53,7 @@ public class Fx implements ContentList { }); smoke = new Effect(100, e -> { - Draw.color(Color.GRAY, new Color(0.3f, 0.3f, 0.3f, 1f), e.fin()); + Draw.color(Color.GRAY, Palette.darkishGray, e.fin()); float size = 7f - e.fin() * 7f; Draw.rect("circle", e.x, e.y, size, size); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/content/fx/FxList.java b/core/src/io/anuke/mindustry/content/fx/FxList.java new file mode 100644 index 0000000000..f1fd467602 --- /dev/null +++ b/core/src/io/anuke/mindustry/content/fx/FxList.java @@ -0,0 +1,13 @@ +package io.anuke.mindustry.content.fx; + +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.type.ContentList; + +public abstract class FxList implements ContentList{ + + @Override + public Array getAll() { + return Array.with(); + } +} diff --git a/core/src/io/anuke/mindustry/content/fx/ShootFx.java b/core/src/io/anuke/mindustry/content/fx/ShootFx.java index d47a94e7aa..b0a83f7f80 100644 --- a/core/src/io/anuke/mindustry/content/fx/ShootFx.java +++ b/core/src/io/anuke/mindustry/content/fx/ShootFx.java @@ -12,7 +12,7 @@ import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; -public class ShootFx implements ContentList { +public class ShootFx extends FxList implements ContentList { public static Effect shootSmall, shootSmallSmoke, shootBig, shootBig2, shootBigSmoke, shootBigSmoke2, shootSmallFlame, shootLiquid, shellEjectSmall, shellEjectMedium, shellEjectBig, lancerLaserShoot, lancerLaserShootSmoke, lancerLaserCharge, lancerLaserChargeBegin, lightningCharge, lightningShoot; @Override diff --git a/core/src/io/anuke/mindustry/content/fx/UnitFx.java b/core/src/io/anuke/mindustry/content/fx/UnitFx.java index af9cdcaddf..25008ef533 100644 --- a/core/src/io/anuke/mindustry/content/fx/UnitFx.java +++ b/core/src/io/anuke/mindustry/content/fx/UnitFx.java @@ -10,7 +10,7 @@ import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; -public class UnitFx implements ContentList { +public class UnitFx extends FxList implements ContentList { public static Effect vtolHover, unitDrop, unitPickup; @Override diff --git a/core/src/io/anuke/mindustry/core/ContentLoader.java b/core/src/io/anuke/mindustry/core/ContentLoader.java index d129fb0d49..17734bdf17 100644 --- a/core/src/io/anuke/mindustry/core/ContentLoader.java +++ b/core/src/io/anuke/mindustry/core/ContentLoader.java @@ -1,22 +1,28 @@ package io.anuke.mindustry.core; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.ObjectSet; +import com.badlogic.gdx.utils.OrderedSet; import io.anuke.mindustry.content.*; import io.anuke.mindustry.content.blocks.*; import io.anuke.mindustry.content.bullets.*; import io.anuke.mindustry.content.fx.*; -import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.entities.units.UnitType; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.Liquid; +import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.world.Block; import io.anuke.ucore.core.Effects; +import io.anuke.ucore.function.Consumer; import io.anuke.ucore.util.Log; /**Loads all game content. * Call load() before doing anything with content.*/ public class ContentLoader { private static boolean loaded = false; + private static ObjectSet> contentSet = new OrderedSet<>(); private static ContentList[] content = { //effects new BlockFx(), @@ -73,7 +79,7 @@ public class ContentLoader { new Recipes(), }; - + /**Creates all content types.*/ public static void load(){ if(loaded){ Log.info("Content already loaded, skipping."); @@ -84,20 +90,30 @@ public class ContentLoader { list.load(); } - for(Block block : Block.getAllBlocks()){ - block.init(); + for (ContentList list : content){ + contentSet.add(list.getAll()); } Log.info("--- CONTENT INFO ---"); Log.info("Blocks loaded: {0}\nItems loaded: {1}\nLiquids loaded: {2}\nUpgrades loaded: {3}\nUnits loaded: {4}\nAmmo types loaded: {5}\nBullet types loaded: {6}\nStatus effects loaded: {7}\nRecipes loaded: {8}\nEffects loaded: {9}\nTotal content classes: {10}", - Block.getAllBlocks().size, io.anuke.mindustry.type.Item.all().size, Liquid.all().size, - io.anuke.mindustry.type.Mech.all().size, UnitType.getAllTypes().size, io.anuke.mindustry.type.AmmoType.all().size, BulletType.all().size, StatusEffect.getAllEffects().size, io.anuke.mindustry.type.Recipe.all().size, Effects.all().size, content.length); + Block.all().size, io.anuke.mindustry.type.Item.all().size, Liquid.all().size, + io.anuke.mindustry.type.Mech.all().size, UnitType.getAllTypes().size, io.anuke.mindustry.type.AmmoType.all().size, BulletType.all().size, StatusEffect.all().size, io.anuke.mindustry.type.Recipe.all().size, Effects.all().size, content.length); Log.info("-------------------"); loaded = true; } + /**Initializes all content with the specified function.*/ + public static void initialize(Consumer callable){ + + for(Array arr : contentSet){ + for(Content content : arr){ + callable.accept(content); + } + } + } + public static void dispose(){ //TODO clear all content. } diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 7f29696b76..b18bedabc6 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -10,6 +10,7 @@ import io.anuke.mindustry.content.Mechs; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.TileEntity; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.game.ContentDatabase; import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.input.AndroidInput; @@ -19,7 +20,6 @@ import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.io.Map; import io.anuke.mindustry.io.Saves; import io.anuke.mindustry.net.Net; -import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Recipe; import io.anuke.ucore.core.*; import io.anuke.ucore.entities.Entities; @@ -59,11 +59,11 @@ public class Control extends Module{ Effects.setShakeFalloff(10000f); + ContentLoader.initialize(Content::init); + Core.atlas = new Atlas("sprites.atlas"); - for(Item item : Item.all()){ - item.load(); - } + ContentLoader.initialize(Content::load); db.load(); @@ -91,7 +91,7 @@ public class Control extends Module{ } }; - Gdx.input = proxy; + //Gdx.input = proxy; Sounds.load("shoot.mp3", "place.mp3", "explosion.mp3", "enemyshoot.mp3", "corexplode.mp3", "break.mp3", "spawn.mp3", "flame.mp3", "die.mp3", @@ -255,7 +255,7 @@ public class Control extends Module{ } public void triggerUpdateInput(){ - Gdx.input = proxy; + //Gdx.input = proxy; } public void playMap(Map map){ diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 5d762fbb44..295bfe8b34 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -82,7 +82,7 @@ public class Logic extends Module { public void runWave(){ //TODO spawn enemies - for(int i = 0; i < 10; i ++){ + for(int i = 0; i < 100; i ++){ BaseUnit unit = UnitTypes.vtol.create(Team.red); Vector2 offset = new Vector2().setToRandomDirection().scl(world.width()/2f*tilesize).add(world.width()/2f*tilesize, world.height()/2f*tilesize); unit.inventory.addAmmo(AmmoTypes.bulletIron); diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index 2139a336cb..0de2681d55 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -14,13 +14,12 @@ import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Unit; -import io.anuke.mindustry.entities.traits.BelowLiquidTrait; import io.anuke.mindustry.entities.effect.GroundEffectEntity; import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; +import io.anuke.mindustry.entities.traits.BelowLiquidTrait; import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.graphics.*; -import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.BlockFlag; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Core; @@ -29,8 +28,8 @@ import io.anuke.ucore.core.Graphics; import io.anuke.ucore.core.Settings; import io.anuke.ucore.entities.EntityDraw; import io.anuke.ucore.entities.EntityGroup; -import io.anuke.ucore.entities.impl.EffectEntity; import io.anuke.ucore.entities.impl.BaseEntity; +import io.anuke.ucore.entities.impl.EffectEntity; import io.anuke.ucore.function.Callable; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Hue; @@ -113,10 +112,6 @@ public class Renderer extends RendererModule{ clearColor.a = 1f; background.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); - - for(Block block : Block.getAllBlocks()){ - block.load(); - } } @Override diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 434ce1f4ef..16a60decf1 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -190,7 +190,7 @@ public class UI extends SceneModule{ } @Override - public synchronized boolean hasMouse() { + public boolean hasMouse() { return super.hasMouse(); } diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index c28f09f978..c945ad8a81 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -18,6 +18,7 @@ import io.anuke.ucore.core.Events; import io.anuke.ucore.entities.EntityPhysics; import io.anuke.ucore.modules.Module; import io.anuke.ucore.util.Mathf; +import io.anuke.ucore.util.ThreadArray; import io.anuke.ucore.util.Tmp; import static io.anuke.mindustry.Vars.threads; @@ -32,7 +33,7 @@ public class World extends Module{ private BlockIndexer indexer = new BlockIndexer(); private Maps maps = new Maps(); - private Array tempTiles = new Array<>(); + private Array tempTiles = new ThreadArray<>(); private boolean generating; public World(){ diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index b2a2dea648..aaf400b3c7 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.editor; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; @@ -33,13 +34,17 @@ import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Stack; import io.anuke.ucore.scene.ui.layout.Table; +import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.utils.UIUtils; import io.anuke.ucore.util.Bundles; import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.io.InputStream; import static io.anuke.mindustry.Vars.*; @@ -377,7 +382,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ } public void build(){ - float size = 60; + float size = mobile ? (int)(Gdx.graphics.getHeight() / 9.5f / Unit.dp.scl(1f)) : 60; new table(){{ aleft(); @@ -537,7 +542,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ int i = 0; - for(Block block : Block.getAllBlocks()){ + for(Block block : Block.all()){ TextureRegion[] regions = block.getCompactIcon(); if(regions.length == 0) continue; diff --git a/core/src/io/anuke/mindustry/editor/MapRenderer.java b/core/src/io/anuke/mindustry/editor/MapRenderer.java index 553a4c5bbd..e3c6006e27 100644 --- a/core/src/io/anuke/mindustry/editor/MapRenderer.java +++ b/core/src/io/anuke/mindustry/editor/MapRenderer.java @@ -50,7 +50,7 @@ public class MapRenderer implements Disposable{ PixmapPacker packer = new PixmapPacker(512, 512, Format.RGBA8888, 2, true); Pixmap pixmap = Core.atlas.getPixmapOf("blank"); - for(Block block : Block.getAllBlocks()){ + for(Block block : Block.all()){ TextureRegion[] regions = block.getBlockIcon(); if(regions.length > 0){ Pixmap result = new Pixmap(regions[0].getRegionWidth(), regions[0].getRegionHeight(), Format.RGBA8888); diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 657ba79ddd..ef76c2ae4e 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -28,10 +28,7 @@ import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Fill; import io.anuke.ucore.graphics.Lines; -import io.anuke.ucore.util.Angles; -import io.anuke.ucore.util.Geometry; -import io.anuke.ucore.util.Mathf; -import io.anuke.ucore.util.Timer; +import io.anuke.ucore.util.*; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -69,7 +66,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { private boolean respawning; private float walktime; - private Queue placeQueue = new Queue<>(); + private Queue placeQueue = new ThreadQueue<>(); private Tile mining; private CarriableTrait carrying; private Trail trail = new Trail(16); @@ -239,13 +236,13 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { } for (int i : Mathf.signs) { - Draw.rect(mname + "-leg", + Draw.rect(mech.legRegion, x + Angles.trnsx(baseRotation, ft * i), y + Angles.trnsy(baseRotation, ft * i), 12f * i, 12f - Mathf.clamp(ft * i, 0, 2), baseRotation - 90); } - Draw.rect(mname + "-base", x, y,baseRotation- 90); + Draw.rect(mech.baseRegion, x, y, baseRotation- 90); } if(floor.liquid) { @@ -254,13 +251,13 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { Draw.tint(Color.WHITE); } - Draw.rect(mname, x, y, rotation -90); + Draw.rect(mech.region, x, y, rotation -90); for (int i : Mathf.signs) { float tra = rotation - 90, trX = 4*i, trY = 3 - weapon.getRecoil(this, i > 0)*1.5f; float w = i > 0 ? -8 : 8; - Draw.rect(weapon.name + "-equip", + Draw.rect(weapon.equipRegion, x + Angles.trnsx(tra, trX, trY), y + Angles.trnsy(tra, trX, trY), w, 8, rotation - 90); } @@ -413,11 +410,15 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { if(ui.chatfrag.chatOpen()) return; float speed = Inputs.keyDown("dash") ? (debug ? Player.dashSpeed * 5f : Player.dashSpeed) : Player.walkSpeed; - float carrySlowdown = 0.3f; speed *= ((1f-carrySlowdown) + (inventory.hasItem() ? (float)inventory.getItem().amount/inventory.capacity(): 1f) * carrySlowdown); + //drop from carrier on key press + if(Inputs.keyTap("drop_unit") && getCarrier() != null){ + getCarrier().dropCarry(); + } + movement.set(0, 0); String section = "player_" + (playerIndex + 1); @@ -549,6 +550,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { placeQueue.clear(); dead = true; respawning = false; + trail.clear(); add(); heal(); diff --git a/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java index d92de27231..3a3a02b980 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.entities.bullet; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import io.anuke.mindustry.graphics.Palette; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Angles; @@ -9,16 +10,26 @@ import io.anuke.ucore.util.Mathf; /**A BulletType for most ammo-based bullets shot from turrets and units.*/ public class BasicBulletType extends BulletType { public Color backColor = Palette.bulletYellowBack, frontColor = Palette.bulletYellow; - public String bulletSprite = "bullet"; public float bulletWidth = 5f, bulletHeight = 7f; public float bulletShrink = 0.5f; + public String bulletSprite; public int fragBullets = 9; public float fragVelocityMin = 0.2f, fragVelocityMax = 1f; public BulletType fragBullet = null; - public BasicBulletType(float speed, float damage) { + public TextureRegion backRegion; + public TextureRegion frontRegion; + + public BasicBulletType(float speed, float damage, String bulletSprite) { super(speed, damage); + this.bulletSprite = bulletSprite; + } + + @Override + public void load() { + backRegion = Draw.region(bulletSprite + "-back"); + frontRegion = Draw.region(bulletSprite); } @Override @@ -26,9 +37,9 @@ public class BasicBulletType extends BulletType { float height = bulletHeight * ((1f - bulletShrink) + bulletShrink * b.fout()); Draw.color(backColor); - Draw.rect(bulletSprite + "-back", b.x, b.y, bulletWidth, height, b.angle() - 90); + Draw.rect(backRegion, b.x, b.y, bulletWidth, height, b.angle() - 90); Draw.color(frontColor); - Draw.rect(bulletSprite, b.x, b.y, bulletWidth, height, b.angle() - 90); + Draw.rect(frontRegion, b.x, b.y, bulletWidth, height, b.angle() - 90); Draw.color(); } diff --git a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java index 972139a050..ecc0d97bb4 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java @@ -3,11 +3,12 @@ package io.anuke.mindustry.entities.bullet; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.StatusEffects; import io.anuke.mindustry.content.fx.BulletFx; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.StatusEffect; import io.anuke.ucore.core.Effects; import io.anuke.ucore.entities.impl.BaseBulletType; -public abstract class BulletType extends BaseBulletType{ +public abstract class BulletType extends BaseBulletType implements Content{ private static int lastid = 0; private static Array types = new Array<>(); @@ -46,6 +47,16 @@ public abstract class BulletType extends BaseBulletType{ Effects.effect(despawneffect, b.x, b.y, b.angle()); } + @Override + public String getContentTypeName() { + return "bullettype"; + } + + @Override + public Array getAll() { + return types; + } + public static BulletType getByID(int id){ return types.get(id); } diff --git a/core/src/io/anuke/mindustry/entities/effect/Rubble.java b/core/src/io/anuke/mindustry/entities/effect/Rubble.java index 51506d2516..7b414f9678 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Rubble.java +++ b/core/src/io/anuke/mindustry/entities/effect/Rubble.java @@ -25,7 +25,7 @@ public class Rubble extends TimedEntity implements BelowLiquidTrait, DrawTrait { @Override public float lifetime() { - return 7000f; + return 8200f; } @Override diff --git a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java index 1b6007ebbb..25dd103e6d 100644 --- a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java @@ -113,7 +113,7 @@ public interface BuilderTrait { }else if(current.remove){ if(Build.validBreak(unit.getTeam(), current.x, current.y) && current.recipe == Recipe.getByResult(tile.block())){ //if it's valid, break it - float progress = 1f / tile.getBreakTime(); + float progress = 1f / tile.getBreakTime() * Timers.delta() * getBuildPower(tile); TileEntity core = unit.getClosestCore(); //update accumulation of resources to add @@ -164,7 +164,7 @@ public interface BuilderTrait { //otherwise, update it. BuildEntity entity = tile.entity(); - entity.addProgress(core.items, 1f / entity.recipe.cost); + entity.addProgress(core.items, 1f / entity.recipe.cost * Timers.delta() * getBuildPower(tile)); unit.rotation = Mathf.slerpDelta(unit.rotation, unit.angleTo(entity), 0.4f); getCurrentRequest().progress = entity.progress(); } diff --git a/core/src/io/anuke/mindustry/entities/units/FlyingUnit.java b/core/src/io/anuke/mindustry/entities/units/FlyingUnit.java index e43efeaba3..78ad87562b 100644 --- a/core/src/io/anuke/mindustry/entities/units/FlyingUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/FlyingUnit.java @@ -76,7 +76,6 @@ public class FlyingUnit extends BaseUnit implements CarryTrait{ } } - @Override public UnitState getStartState(){ return attack; diff --git a/core/src/io/anuke/mindustry/entities/units/GroundUnit.java b/core/src/io/anuke/mindustry/entities/units/GroundUnit.java index a078f89e23..325e5a97be 100644 --- a/core/src/io/anuke/mindustry/entities/units/GroundUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/GroundUnit.java @@ -10,7 +10,6 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.Floor; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; -import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.util.*; import static io.anuke.mindustry.Vars.world; @@ -67,7 +66,7 @@ public abstract class GroundUnit extends BaseUnit { Floor floor = getFloorOn(); if(floor.liquid){ - Draw.tint(Hue.mix(Color.WHITE, floor.liquidColor, 0.5f)); + Draw.tint(Color.WHITE, floor.liquidColor, 0.5f); } for (int i : Mathf.signs) { diff --git a/core/src/io/anuke/mindustry/entities/units/types/Drone.java b/core/src/io/anuke/mindustry/entities/units/types/Drone.java index 7372a11665..5347a52e07 100644 --- a/core/src/io/anuke/mindustry/entities/units/types/Drone.java +++ b/core/src/io/anuke/mindustry/entities/units/types/Drone.java @@ -3,9 +3,9 @@ package io.anuke.mindustry.entities.units.types; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Queue; import io.anuke.mindustry.content.Items; -import io.anuke.mindustry.entities.traits.BuilderTrait; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Units; +import io.anuke.mindustry.entities.traits.BuilderTrait; import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.entities.units.FlyingUnit; import io.anuke.mindustry.entities.units.UnitState; @@ -25,6 +25,7 @@ import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Geometry; import io.anuke.ucore.util.Mathf; +import io.anuke.ucore.util.ThreadQueue; import static io.anuke.mindustry.Vars.unitGroups; import static io.anuke.mindustry.Vars.world; @@ -35,7 +36,7 @@ public class Drone extends FlyingUnit implements BuilderTrait { protected static boolean initialized; protected Tile mineTile; - protected Queue placeQueue = new Queue<>(); + protected Queue placeQueue = new ThreadQueue<>(); /**Initialize placement event notifier system. * Static initialization is to be avoided, thus, this is done lazily.*/ diff --git a/core/src/io/anuke/mindustry/entities/units/types/Vtol.java b/core/src/io/anuke/mindustry/entities/units/types/Vtol.java index ed8795ff62..c681b1d661 100644 --- a/core/src/io/anuke/mindustry/entities/units/types/Vtol.java +++ b/core/src/io/anuke/mindustry/entities/units/types/Vtol.java @@ -1,43 +1,31 @@ package io.anuke.mindustry.entities.units.types; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import io.anuke.mindustry.entities.units.FlyingUnit; import io.anuke.mindustry.entities.units.UnitType; import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.graphics.Palette; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; -import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; public class Vtol extends FlyingUnit { + static TextureRegion + booster1 = Draw.region("vtol-booster-1"), + booster2 = Draw.region("vtol-booster-2"), + region = Draw.region("vtol"); public Vtol(UnitType type, Team team) { super(type, team); } - @Override - public void drawUnder() { - float rotation = this.rotation - 90; - float scl = 0.6f + Mathf.absin(Timers.time(), 1f, 0.3f); - float dy = -6f*scl; - - Draw.color(Palette.lighterOrange, Palette.lightFlame, Mathf.absin(Timers.time(), 3f, 0.7f)); - - Draw.rect("vtol-flame", - x + Angles.trnsx(rotation, 0, dy), - y + Angles.trnsy(rotation, 0, dy), Mathf.atan2(0, dy) + rotation); - - Draw.color(); - } - @Override public void draw() { Draw.alpha(hitTime / hitDuration); - Draw.rect(type.name, x, y, rotation - 90); + Draw.rect(region, x, y, rotation - 90); for(int i : Mathf.signs){ - Draw.rect(type.name + "-booster-1", x, y, 12*i, 12, rotation - 90); - Draw.rect(type.name + "-booster-2", x, y, 12*i, 12, rotation - 90); + Draw.rect(booster1, x, y, 12*i, 12, rotation - 90); + Draw.rect(booster2, x, y, 12*i, 12, rotation - 90); } Draw.alpha(1f); diff --git a/core/src/io/anuke/mindustry/game/Content.java b/core/src/io/anuke/mindustry/game/Content.java index 75ded126d0..a0f412122d 100644 --- a/core/src/io/anuke/mindustry/game/Content.java +++ b/core/src/io/anuke/mindustry/game/Content.java @@ -1,14 +1,22 @@ package io.anuke.mindustry.game; +import com.badlogic.gdx.utils.Array; + /**Base interface for an unlockable content type.*/ public interface Content { - /**Returns the unqiue name of this piece of content. - * The name only needs to be unique for all content of this type. - * Do not use IDs for names! Make sure this string stays constant with each update unless removed. - * (e.g. having a recipe and a block, both with name "wall" is fine, as they are different types).*/ - String getContentName(); /**Returns the type name of this piece of content. * This should return the same value for all instances of this content type.*/ String getContentTypeName(); + + /**Returns a list of all instances of this content.*/ + Array getAll(); + + /**Called after all content is created. Use for loading texture regions and other data. + * Do not use to load regions!*/ + default void init(){} + + /**Called after all content is created, only on non-headless versions. + * Use for loading regions or other image data.*/ + default void load(){} } diff --git a/core/src/io/anuke/mindustry/game/ContentDatabase.java b/core/src/io/anuke/mindustry/game/ContentDatabase.java index 3e37d688f2..b915262a5d 100644 --- a/core/src/io/anuke/mindustry/game/ContentDatabase.java +++ b/core/src/io/anuke/mindustry/game/ContentDatabase.java @@ -15,7 +15,7 @@ public class ContentDatabase { private boolean dirty; /**Returns whether or not this piece of content is unlocked yet.*/ - public boolean isUnlocked(Content content){ + public boolean isUnlocked(UnlockableContent content){ if(!unlocked.containsKey(content.getContentTypeName())){ unlocked.put(content.getContentTypeName(), new ObjectSet<>()); } @@ -29,7 +29,7 @@ public class ContentDatabase { * If this piece of content is already unlocked, nothing changes. * Results are not saved until you call {@link #save()}. * @return whether or not this content was newly unlocked.*/ - public boolean unlockContent(Content content){ + public boolean unlockContent(UnlockableContent content){ if(!unlocked.containsKey(content.getContentTypeName())){ unlocked.put(content.getContentTypeName(), new ObjectSet<>()); } diff --git a/core/src/io/anuke/mindustry/game/TeamInfo.java b/core/src/io/anuke/mindustry/game/TeamInfo.java index bac019798f..f09f75a707 100644 --- a/core/src/io/anuke/mindustry/game/TeamInfo.java +++ b/core/src/io/anuke/mindustry/game/TeamInfo.java @@ -1,19 +1,20 @@ package io.anuke.mindustry.game; -import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectSet; import io.anuke.mindustry.world.Tile; +import io.anuke.ucore.util.ThreadArray; +import io.anuke.ucore.util.ThreadSet; /**Class for various team-based utilities.*/ public class TeamInfo { private ObjectMap map = new ObjectMap<>(); - private ObjectSet allies = new ObjectSet<>(), - enemies = new ObjectSet<>(); - private ObjectSet allyData = new ObjectSet<>(), - enemyData = new ObjectSet<>(); - private ObjectSet allTeamData = new ObjectSet<>(); - private ObjectSet allTeams = new ObjectSet<>(); + private ThreadSet allies = new ThreadSet<>(), + enemies = new ThreadSet<>(); + private ThreadSet allyData = new ThreadSet<>(), + enemyData = new ThreadSet<>(); + private ThreadSet allTeamData = new ThreadSet<>(); + private ThreadSet allTeams = new ThreadSet<>(); /**Returns all teams on a side.*/ public ObjectSet getTeams(boolean ally) { @@ -93,7 +94,7 @@ public class TeamInfo { } public class TeamData { - public final Array cores = new Array<>(); + public final ThreadArray cores = new ThreadArray<>(); public final Team team; public final boolean ally; diff --git a/core/src/io/anuke/mindustry/game/UnlockableContent.java b/core/src/io/anuke/mindustry/game/UnlockableContent.java new file mode 100644 index 0000000000..33a4c0a13c --- /dev/null +++ b/core/src/io/anuke/mindustry/game/UnlockableContent.java @@ -0,0 +1,11 @@ +package io.anuke.mindustry.game; + +/**Base interface for an unlockable content type.*/ +public interface UnlockableContent extends Content{ + + /**Returns the unqiue name of this piece of content. + * The name only needs to be unique for all content of this type. + * Do not use IDs for names! Make sure this string stays constant with each update unless removed. + * (e.g. having a recipe and a block, both with name "wall" is fine, as they are different types).*/ + String getContentName(); +} diff --git a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java index 2f20fcc089..11f199dfcc 100644 --- a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java @@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; -import com.badlogic.gdx.utils.ObjectSet.ObjectSetIterator; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Unit; @@ -163,9 +162,8 @@ public class OverlayRenderer { } if((!debug || showUI) && Settings.getBool("healthbars")){ - ObjectSetIterator iterator = new ObjectSetIterator<>((debug ? state.teams.getTeams() : state.teams.getTeams(true))); - for(TeamData ally : iterator){ + for(TeamData ally : (debug ? state.teams.getTeams() : state.teams.getTeams(true))){ for(Unit e : unitGroups[ally.team.ordinal()].all()){ drawStats(e); } @@ -189,8 +187,8 @@ public class OverlayRenderer { } drawEncloser(x, y - 8f, 2f); - drawBar(Color.SCARLET, x, y - 8f, unit.healthf()); - drawBar(Color.valueOf("32cf6d"), x, y - 9f, unit.inventory.totalAmmo() / (float) unit.inventory.ammoCapacity()); + drawBar(Palette.healthstats, x, y - 8f, unit.healthf()); + drawBar(Palette.ammo, x, y - 9f, unit.inventory.totalAmmo() / (float) unit.inventory.ammoCapacity()); } void drawBar(Color color, float x, float y, float finion){ @@ -220,7 +218,7 @@ public class OverlayRenderer { float len = 3; Lines.stroke(2f + height); - Draw.color(Color.SLATE); + Draw.color(Palette.bar); Lines.line(x - len - 0.5f, y, x + len + 1.5f, y, CapStyle.none); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/graphics/Palette.java b/core/src/io/anuke/mindustry/graphics/Palette.java index 35c0dd1f59..2dcfc4450b 100644 --- a/core/src/io/anuke/mindustry/graphics/Palette.java +++ b/core/src/io/anuke/mindustry/graphics/Palette.java @@ -16,6 +16,7 @@ public class Palette { public static final Color lighterOrange = Color.valueOf("f6e096"); public static final Color lightishGray = Color.valueOf("a2a2a2"); + public static final Color darkishGray = new Color(0.3f, 0.3f, 0.3f, 1f); public static final Color lancerLaser = Color.valueOf("a9d8ff"); @@ -37,7 +38,9 @@ public class Palette { public static final Color missingitems = Color.SCARLET; public static final Color health = Color.YELLOW; + public static final Color ammo = Color.valueOf("32cf6d"); public static final Color healthstats = Color.SCARLET; + public static final Color bar = Color.SLATE; public static final Color interact = Color.ORANGE; public static final Color accent = Color.valueOf("f4ba6e"); public static final Color place = Color.valueOf("6335f8"); @@ -46,4 +49,13 @@ public class Palette { public static final Color breakInvalid = Color.valueOf("d44b3d"); public static final Color range = Color.valueOf("f4ba6e"); public static final Color power = Color.valueOf("fbd367"); + + public static final Color redSpark = Color.valueOf("fbb97f"); + public static final Color orangeSpark = Color.valueOf("d2b29c"); + + public static final Color redDust = Color.valueOf("ffa480"); + public static final Color redderDust = Color.valueOf("ff7b69"); + + public static final Color plasticSmoke = Color.valueOf("f1e479"); + public static final Color plasticBurn = Color.valueOf("e9ead3"); } diff --git a/core/src/io/anuke/mindustry/graphics/Trail.java b/core/src/io/anuke/mindustry/graphics/Trail.java index 3aa0033531..dc8283ce98 100644 --- a/core/src/io/anuke/mindustry/graphics/Trail.java +++ b/core/src/io/anuke/mindustry/graphics/Trail.java @@ -10,14 +10,13 @@ import io.anuke.ucore.util.Mathf; /**Class that renders a trail.*/ public class Trail { private final int length; - - private FloatArray points = new FloatArray(); + private final FloatArray points = new FloatArray(); public Trail(int length){ this.length = length; } - public void update(float curx, float cury){ + public synchronized void update(float curx, float cury){ points.add(curx, cury); if(points.size > length*2) { @@ -27,7 +26,11 @@ public class Trail { } } - public void draw(Color start, Color end, float stroke){ + public synchronized void clear(){ + points.clear(); + } + + public synchronized void draw(Color start, Color end, float stroke){ for(int i = 0; i < points.size - 2; i += 2){ float x = points.get(i); diff --git a/core/src/io/anuke/mindustry/input/AndroidInput.java b/core/src/io/anuke/mindustry/input/AndroidInput.java index 3f3e4ad0db..a71021c75e 100644 --- a/core/src/io/anuke/mindustry/input/AndroidInput.java +++ b/core/src/io/anuke/mindustry/input/AndroidInput.java @@ -25,6 +25,7 @@ import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.*; +import io.anuke.ucore.entities.Entities; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.scene.Group; @@ -80,16 +81,18 @@ public class AndroidInput extends InputHandler implements GestureListener{ /**Check and assign targets for a specific position.*/ void checkTargets(float x, float y){ - Unit unit = Units.getClosestEnemy(player.getTeam(), x, y, 20f, u -> true); + synchronized (Entities.entityLock) { + Unit unit = Units.getClosestEnemy(player.getTeam(), x, y, 20f, u -> true); - if(unit != null){ - player.target = unit; - }else{ - Tile tile = world.tileWorld(x, y); - if(tile != null) tile = tile.target(); + if (unit != null) { + player.target = unit; + } else { + Tile tile = world.tileWorld(x, y); + if (tile != null) tile = tile.target(); - if(tile != null && state.teams.areEnemies(player.getTeam(), tile.getTeam())){ - player.target = tile.entity; + if (tile != null && state.teams.areEnemies(player.getTeam(), tile.getTeam())) { + player.target = tile.entity; + } } } } diff --git a/core/src/io/anuke/mindustry/input/DefaultKeybinds.java b/core/src/io/anuke/mindustry/input/DefaultKeybinds.java index 24a831e303..fbdd127464 100644 --- a/core/src/io/anuke/mindustry/input/DefaultKeybinds.java +++ b/core/src/io/anuke/mindustry/input/DefaultKeybinds.java @@ -16,7 +16,7 @@ public class DefaultKeybinds { for(String section : sections) { KeyBinds.defaultSection(section, DeviceType.keyboard, - new Category("General"), + new Category("General"), "move_x", new Axis(Input.A, Input.D), "move_y", new Axis(Input.S, Input.W), "select", Input.MOUSE_LEFT, @@ -25,6 +25,7 @@ public class DefaultKeybinds { "rotate_alt", new Axis(Input.R, Input.E), "rotate", new Axis(Input.SCROLL), "dash", Input.SHIFT_LEFT, + "drop_unit", Input.SHIFT_LEFT, new Category("View"), "zoom_hold", Input.CONTROL_LEFT, "zoom", new Axis(Input.SCROLL), @@ -45,7 +46,7 @@ public class DefaultKeybinds { ); KeyBinds.defaultSection(section, DeviceType.controller, - new Category("General"), + new Category("General"), "move_x", new Axis(Input.CONTROLLER_L_STICK_HORIZONTAL_AXIS), "move_y", new Axis(Input.CONTROLLER_L_STICK_VERTICAL_AXIS), "cursor_x", new Axis(Input.CONTROLLER_R_STICK_HORIZONTAL_AXIS), diff --git a/core/src/io/anuke/mindustry/io/MapIO.java b/core/src/io/anuke/mindustry/io/MapIO.java index c72f034e3e..a6e7268e63 100644 --- a/core/src/io/anuke/mindustry/io/MapIO.java +++ b/core/src/io/anuke/mindustry/io/MapIO.java @@ -25,7 +25,7 @@ public class MapIO { private static IntIntMap defaultBlockMap = new IntIntMap(); private static void loadDefaultBlocks(){ - for(Block block : Block.getAllBlocks()){ + for(Block block : Block.all()){ defaultBlockMap.put(block.id, block.id); } } @@ -151,8 +151,8 @@ public class MapIO { stream.writeUTF(entry.value); } - stream.writeShort(Block.getAllBlocks().size); - for(Block block : Block.getAllBlocks()){ + stream.writeShort(Block.all().size); + for(Block block : Block.all()){ stream.writeShort(block.id); stream.writeUTF(block.name); } diff --git a/core/src/io/anuke/mindustry/io/Maps.java b/core/src/io/anuke/mindustry/io/Maps.java index 352c477c22..ccb229b473 100644 --- a/core/src/io/anuke/mindustry/io/Maps.java +++ b/core/src/io/anuke/mindustry/io/Maps.java @@ -3,10 +3,14 @@ package io.anuke.mindustry.io; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.utils.*; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.Base64Coder; +import com.badlogic.gdx.utils.Disposable; +import com.badlogic.gdx.utils.ObjectMap; import io.anuke.ucore.core.Settings; import io.anuke.ucore.function.Supplier; import io.anuke.ucore.util.Log; +import io.anuke.ucore.util.ThreadArray; import java.io.*; @@ -21,9 +25,9 @@ public class Maps implements Disposable{ /**Maps map names to the real maps.*/ private ObjectMap maps = new ObjectMap<>(); /**All maps stored in an ordered array.*/ - private Array allMaps = new Array<>(); + private Array allMaps = new ThreadArray<>(); /**Temporary array used for returning things.*/ - private Array returnArray = new Array<>(); + private Array returnArray = new ThreadArray<>(); /**Used for storing a list of custom map names for GWT.*/ private Array customMapNames; diff --git a/core/src/io/anuke/mindustry/io/Saves.java b/core/src/io/anuke/mindustry/io/Saves.java index 0fc9e15c3b..c81707427b 100644 --- a/core/src/io/anuke/mindustry/io/Saves.java +++ b/core/src/io/anuke/mindustry/io/Saves.java @@ -9,6 +9,7 @@ import io.anuke.mindustry.game.Difficulty; import io.anuke.mindustry.game.GameMode; import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.util.ThreadArray; import java.io.IOException; @@ -16,7 +17,7 @@ import static io.anuke.mindustry.Vars.*; public class Saves { private int nextSlot; - private Array saves = new Array<>(); + private Array saves = new ThreadArray<>(); private SaveSlot current; private boolean saving; private float time; diff --git a/core/src/io/anuke/mindustry/io/versions/Save16.java b/core/src/io/anuke/mindustry/io/versions/Save16.java index 185a5bbcb0..fc7689cebe 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save16.java +++ b/core/src/io/anuke/mindustry/io/versions/Save16.java @@ -148,10 +148,10 @@ public class Save16 extends SaveFileVersion { //--BLOCK HEADER-- - stream.writeInt(Block.getAllBlocks().size); + stream.writeInt(Block.all().size); - for(int i = 0; i < Block.getAllBlocks().size; i ++){ - Block block = Block.getAllBlocks().get(i); + for(int i = 0; i < Block.all().size; i ++){ + Block block = Block.all().get(i); stream.writeUTF(block.name); stream.writeShort(block.id); } diff --git a/core/src/io/anuke/mindustry/type/AmmoType.java b/core/src/io/anuke/mindustry/type/AmmoType.java index 4c82e10b7d..ab5f36f9f9 100644 --- a/core/src/io/anuke/mindustry/type/AmmoType.java +++ b/core/src/io/anuke/mindustry/type/AmmoType.java @@ -64,17 +64,16 @@ public class AmmoType implements Content{ return bullet.speed * bullet.lifetime; } - //TODO implement content name? - @Override - public String getContentName() { - return "???"; - } - @Override public String getContentTypeName() { return "ammotype"; } + @Override + public Array getAll() { + return allTypes; + } + public static Array all() { return allTypes; } diff --git a/core/src/io/anuke/mindustry/type/ContentList.java b/core/src/io/anuke/mindustry/type/ContentList.java index 8c00817a83..dc288f21ef 100644 --- a/core/src/io/anuke/mindustry/type/ContentList.java +++ b/core/src/io/anuke/mindustry/type/ContentList.java @@ -1,5 +1,13 @@ package io.anuke.mindustry.type; +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.game.Content; + +/**Interface for a list of content to be loaded in {@link io.anuke.mindustry.core.ContentLoader}.*/ public interface ContentList { + /**This method should create all the content.*/ void load(); + + /**This method should return the list of the content of this type, for further loading.*/ + Array getAll(); } diff --git a/core/src/io/anuke/mindustry/type/Item.java b/core/src/io/anuke/mindustry/type/Item.java index 6de074bc8a..a0362a8326 100644 --- a/core/src/io/anuke/mindustry/type/Item.java +++ b/core/src/io/anuke/mindustry/type/Item.java @@ -4,11 +4,12 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.graphics.Palette; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Bundles; -public class Item implements Comparable, Content{ +public class Item implements Comparable, UnlockableContent{ private static final Array items = new Array<>(); public final int id; @@ -70,6 +71,11 @@ public class Item implements Comparable, Content{ return "item"; } + @Override + public Array getAll() { + return all(); + } + public static Array all() { return Item.items; } diff --git a/core/src/io/anuke/mindustry/type/Liquid.java b/core/src/io/anuke/mindustry/type/Liquid.java index 06f42745be..8f8e2ec603 100644 --- a/core/src/io/anuke/mindustry/type/Liquid.java +++ b/core/src/io/anuke/mindustry/type/Liquid.java @@ -4,9 +4,10 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.StatusEffects; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; import io.anuke.ucore.util.Bundles; -public class Liquid implements Content{ +public class Liquid implements UnlockableContent{ private static final Array liquids = new Array<>(); public final Color color; @@ -56,6 +57,11 @@ public class Liquid implements Content{ return "liquid"; } + @Override + public Array getAll() { + return all(); + } + public static Array all() { return Liquid.liquids; } diff --git a/core/src/io/anuke/mindustry/type/Mech.java b/core/src/io/anuke/mindustry/type/Mech.java index 78d026affa..c88671bcf3 100644 --- a/core/src/io/anuke/mindustry/type/Mech.java +++ b/core/src/io/anuke/mindustry/type/Mech.java @@ -1,13 +1,28 @@ package io.anuke.mindustry.type; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import io.anuke.ucore.graphics.Draw; + public class Mech extends Upgrade { public boolean flying; public float mass = 1f; public int drillPower = -1; public float carryWeight = 1f; + public TextureRegion baseRegion, legRegion, region; + public Mech(String name, boolean flying){ super(name); this.flying = flying; } + + @Override + public void load() { + if (!flying){ + legRegion = Draw.region(name + "-leg"); + baseRegion = Draw.region(name + "-base"); + } + + region = Draw.region(name); + } } diff --git a/core/src/io/anuke/mindustry/type/Recipe.java b/core/src/io/anuke/mindustry/type/Recipe.java index db7504e8e1..24807a0526 100644 --- a/core/src/io/anuke/mindustry/type/Recipe.java +++ b/core/src/io/anuke/mindustry/type/Recipe.java @@ -4,11 +4,12 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectMap; import io.anuke.mindustry.Vars; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.world.Block; import static io.anuke.mindustry.Vars.headless; -public class Recipe implements Content{ +public class Recipe implements UnlockableContent{ private static int lastid; private static Array allRecipes = new Array<>(); private static ObjectMap recipeMap = new ObjectMap<>(); @@ -58,6 +59,11 @@ public class Recipe implements Content{ return "recipe"; } + @Override + public Array getAll() { + return allRecipes; + } + /**Returns unlocked recipes in a category. * Do not call on the server backend, as unlocking does not exist!*/ public static void getUnlockedByCategory(Category category, Array r){ diff --git a/core/src/io/anuke/mindustry/type/StatusEffect.java b/core/src/io/anuke/mindustry/type/StatusEffect.java index 66e26174b3..29bf99066f 100644 --- a/core/src/io/anuke/mindustry/type/StatusEffect.java +++ b/core/src/io/anuke/mindustry/type/StatusEffect.java @@ -4,8 +4,9 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectSet; import io.anuke.mindustry.entities.StatusController.TransitionResult; import io.anuke.mindustry.entities.Unit; +import io.anuke.mindustry.game.Content; -public class StatusEffect{ +public class StatusEffect implements Content{ private static final Array array = new Array<>(); private static int lastid; @@ -52,11 +53,21 @@ public class StatusEffect{ } } + @Override + public String getContentTypeName() { + return "statuseffect"; + } + + @Override + public Array getAll() { + return null; + } + public static StatusEffect getByID(int id){ return array.get(id); } - public static Array getAllEffects(){ + public static Array all(){ return array; } } diff --git a/core/src/io/anuke/mindustry/type/Upgrade.java b/core/src/io/anuke/mindustry/type/Upgrade.java index fba7b24c62..60a945171e 100644 --- a/core/src/io/anuke/mindustry/type/Upgrade.java +++ b/core/src/io/anuke/mindustry/type/Upgrade.java @@ -2,9 +2,10 @@ package io.anuke.mindustry.type; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; import io.anuke.ucore.util.Bundles; -public abstract class Upgrade implements Content{ +public abstract class Upgrade implements UnlockableContent{ private static Array upgrades = new Array<>(); private static byte lastid; @@ -39,6 +40,11 @@ public abstract class Upgrade implements Content{ return "upgrade"; } + @Override + public Array getAll() { + return all(); + } + public static Array all() { return upgrades; } diff --git a/core/src/io/anuke/mindustry/type/Weapon.java b/core/src/io/anuke/mindustry/type/Weapon.java index 748036a7a1..a576fb45cf 100644 --- a/core/src/io/anuke/mindustry/type/Weapon.java +++ b/core/src/io/anuke/mindustry/type/Weapon.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.type; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.ObjectMap; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.Player; @@ -7,6 +8,7 @@ import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Translator; @@ -35,10 +37,18 @@ public class Weapon extends Upgrade { /**translator for vector calulations*/ protected Translator tr = new Translator(); + public TextureRegion equipRegion, region; + protected Weapon(String name){ super(name); } + @Override + public void load() { + equipRegion = Draw.region(name + "-equip"); + region = Draw.region(name); + } + public void update(Player p, boolean left, float pointerX, float pointerY){ int t = left ? 1 : 2; int t2 = !left ? 1 : 2; @@ -78,7 +88,7 @@ public class Weapon extends Upgrade { } protected void setAmmo(AmmoType... types){ - for(io.anuke.mindustry.type.AmmoType type : types){ + for(AmmoType type : types){ ammoMap.put(type.item, type); } } diff --git a/core/src/io/anuke/mindustry/type/WeatherEvent.java b/core/src/io/anuke/mindustry/type/WeatherEvent.java index 727e38c8e6..cca1dc9ee8 100644 --- a/core/src/io/anuke/mindustry/type/WeatherEvent.java +++ b/core/src/io/anuke/mindustry/type/WeatherEvent.java @@ -2,9 +2,10 @@ package io.anuke.mindustry.type; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; //TODO implement this class -public class WeatherEvent implements Content{ +public class WeatherEvent implements UnlockableContent{ private static final Array all = new Array<>(); private static int lastid; @@ -28,6 +29,11 @@ public class WeatherEvent implements Content{ return "weatherevent"; } + @Override + public Array getAll() { + return all(); + } + public static Array all(){ return all; } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index ec7b3032af..d926fd3d30 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -6,13 +6,14 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.reflect.ClassReflection; import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.entities.Damage; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Unit; -import io.anuke.mindustry.entities.Damage; import io.anuke.mindustry.entities.effect.Puddle; import io.anuke.mindustry.entities.effect.Rubble; import io.anuke.mindustry.game.Content; +import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.graphics.CacheLayer; import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; @@ -30,7 +31,7 @@ import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.*; -public class Block extends BaseBlock implements Content{ +public class Block extends BaseBlock implements UnlockableContent{ private static int lastid; private static Array blocks = new Array<>(); private static ObjectMap map = new ObjectMap<>(); @@ -70,8 +71,6 @@ public class Block extends BaseBlock implements Content{ public int health = 40; /**base block explosiveness*/ public float baseExplosiveness = 0f; - /**the shadow drawn under the block. use 'null' to indicate the default shadow for this block.*/ - public String shadow = null; /**whether to display a different shadow per variant*/ public boolean varyShadow = false; /**edge fallback, used mainly for ores*/ @@ -108,6 +107,12 @@ public class Block extends BaseBlock implements Content{ public EnumSet flags; /**Whether to automatically set the entity to 'sleeping' when created.*/ public boolean autoSleep; + /**Name of shadow region to load. Null to indicate normal shadow.*/ + public String shadow = null; + /**Region used for drawing shadows.*/ + public TextureRegion shadowRegion; + /**Texture region array for drawing multiple shadows.*/ + public TextureRegion[] shadowRegions; public Block(String name) { this.name = name; @@ -145,13 +150,23 @@ public class Block extends BaseBlock implements Content{ public boolean canPlaceOn(Tile tile){ return true; } /**Called after all blocks are created.*/ + @Override public void init(){ setStats(); setBars(); } - /**Called after texture atlas is loaded.*/ - public void load(){} + @Override + public void load() { + shadowRegion = Draw.region(shadow == null ? "shadow-" + size : shadow); + + if(varyShadow && variants > 0) { + shadowRegions = new TextureRegion[variants]; + for(int i = 0; i < variants; i ++){ + shadowRegions[i] = Draw.region(name + "shadow" + (i + 1)); + } + } + } /**Called when the block is tapped.*/ public boolean tapped(Tile tile, Player player){ @@ -394,12 +409,10 @@ public class Block extends BaseBlock implements Content{ public void drawShadow(Tile tile){ - if(varyShadow && variants > 0 && shadow != null) { - Draw.rect(shadow + (Mathf.randomSeed(tile.id(), 1, variants)), tile.worldx(), tile.worldy()); - }else if(shadow != null){ - Draw.rect(shadow, tile.drawx(), tile.drawy()); + if(shadowRegions != null) { + Draw.rect(shadowRegions[(Mathf.randomSeed(tile.id(), 0, variants - 1))], tile.worldx(), tile.worldy()); }else{ - Draw.rect("shadow-" + size, tile.drawx(), tile.drawy()); + Draw.rect(shadowRegion, tile.drawx(), tile.drawy()); } } @@ -411,24 +424,6 @@ public class Block extends BaseBlock implements Content{ public boolean isMultiblock(){ return size > 1; } - - public static Array getAllBlocks(){ - return blocks; - } - - public static Block getByName(String name){ - return map.get(name); - } - - public static Block getByID(int id){ - if(id < 0){ //offset negative values by 256, as they are a product of byte overflow - id += 256; - } - if(id >= blocks.size || id < 0){ - throw new RuntimeException("No block with ID '" + id + "' found!"); - } - return blocks.get(id); - } public Array getDebugInfo(Tile tile){ return Array.with( @@ -454,8 +449,31 @@ public class Block extends BaseBlock implements Content{ return "block"; } + @Override + public Array getAll() { + return all(); + } + @Override public String toString(){ return name; } + + public static Array all(){ + return blocks; + } + + public static Block getByName(String name){ + return map.get(name); + } + + public static Block getByID(int id){ + if(id < 0){ //offset negative values by 256, as they are a product of byte overflow + id += 256; + } + if(id >= blocks.size || id < 0){ + throw new RuntimeException("No block with ID '" + id + "' found!"); + } + return blocks.get(id); + } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/Rock.java b/core/src/io/anuke/mindustry/world/blocks/types/Rock.java index 86eadcd7f8..79984aa745 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/Rock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Rock.java @@ -6,7 +6,7 @@ public class Rock extends Block { public Rock(String name) { super(name); - shadow = name+"shadow"; + varyShadow = true; breakable = true; alwaysReplace = true; } 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 d8562028d3..ce41b79835 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 @@ -4,7 +4,10 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.fx.Fx; -import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.Predict; +import io.anuke.mindustry.entities.TileEntity; +import io.anuke.mindustry.entities.Unit; +import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; @@ -20,10 +23,7 @@ import io.anuke.ucore.core.Timers; import io.anuke.ucore.function.BiConsumer; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; -import io.anuke.ucore.util.Angles; -import io.anuke.ucore.util.Mathf; -import io.anuke.ucore.util.Strings; -import io.anuke.ucore.util.Translator; +import io.anuke.ucore.util.*; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -267,7 +267,7 @@ public abstract class Turret extends Block{ public static class TurretEntity extends TileEntity{ public TileEntity blockTarget; - public Array ammo = new Array<>(); + public Array ammo = new ThreadArray<>(); public int totalAmmo; public float reload; public float rotation = 90; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/power/FusionReactor.java b/core/src/io/anuke/mindustry/world/blocks/types/power/FusionReactor.java index 5d4312999d..06181c08c9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/power/FusionReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/power/FusionReactor.java @@ -20,6 +20,9 @@ public class FusionReactor extends PowerGenerator { protected Liquid inputLiquid = Liquids.water; protected float warmupSpeed = 0.001f; + protected Color plasma1 = Color.valueOf("ffd06b"), plasma2 = Color.valueOf("ff361b"); + protected Color ind1 = Color.valueOf("858585"), ind2 = Color.valueOf("fea080"); + public FusionReactor(String name) { super(name); hasPower = true; @@ -62,7 +65,7 @@ public class FusionReactor extends PowerGenerator { for(int i = 0; i < plasmas; i ++){ float r = 29f + Mathf.absin(Timers.time(), 2f + i*1f, 5f - i*0.5f); - Draw.color(Color.valueOf("ffd06b"), Color.valueOf("ff361b"), (float)i/plasmas); + Draw.color(plasma1, plasma2, (float)i/plasmas); Draw.alpha((0.3f + Mathf.absin(Timers.time(), 2f+i*2f, 0.3f+i*0.05f)) * entity.warmup); Draw.rect(name + "-plasma-" + i, tile.drawx(), tile.drawy(), r, r, Timers.time()*(12+i*6f) * entity.warmup); } @@ -75,7 +78,7 @@ public class FusionReactor extends PowerGenerator { Draw.rect(name + "-top", tile.drawx(), tile.drawy()); - Draw.color(Color.valueOf("858585"), Color.valueOf("fea080"), entity.warmup + Mathf.absin(entity.totalProgress, 3f, entity.warmup*0.5f)); + Draw.color(ind1, ind2, entity.warmup + Mathf.absin(entity.totalProgress, 3f, entity.warmup*0.5f)); Draw.rect(name + "-light", tile.drawx(), tile.drawy()); Draw.color(); diff --git a/server/src/io/anuke/mindustry/server/MindustryServer.java b/server/src/io/anuke/mindustry/server/MindustryServer.java index e6858fd124..205ebf1fab 100644 --- a/server/src/io/anuke/mindustry/server/MindustryServer.java +++ b/server/src/io/anuke/mindustry/server/MindustryServer.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.server; import io.anuke.mindustry.Vars; import io.anuke.mindustry.core.*; +import io.anuke.mindustry.game.Content; import io.anuke.mindustry.io.BundleLoader; import io.anuke.ucore.modules.ModuleCore; @@ -22,6 +23,7 @@ public class MindustryServer extends ModuleCore { BundleLoader.load(); ContentLoader.load(); + ContentLoader.initialize(Content::init); module(logic = new Logic()); module(world = new World());