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!ia0y~yU@!t<4mJh`208nVjSLJ7oCO|{#S9GG!XV7ZFl&wk z0|NtliKnkC`y)11L2d09?`~XWU|^6eag8W(&d<$F%`0JWE=o--Nlj5G&n(GMaQE~L z2yf&QXJB9m@N{tu$+-9S)mdKI;Vst05o?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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 A0{{R3 literal 112576 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

SgbF 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 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());