From 44e4ffbe62af9f00692a225deb8f205dd359dfb8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 22 Dec 2018 22:17:28 -0500 Subject: [PATCH] Fixed most things besides drawing --- build.gradle | 8 +- core/src/io/anuke/mindustry/Vars.java | 4 +- .../io/anuke/mindustry/ai/BlockIndexer.java | 1 - .../src/io/anuke/mindustry/ai/Pathfinder.java | 13 +- .../io/anuke/mindustry/ai/WaveSpawner.java | 67 ++++++++-- .../src/io/anuke/mindustry/content/Mechs.java | 14 +-- .../mindustry/content/StatusEffects.java | 6 +- .../mindustry/content/blocks/Blocks.java | 6 +- .../content/blocks/CraftingBlocks.java | 12 +- .../mindustry/content/blocks/DebugBlocks.java | 2 +- .../content/blocks/TurretBlocks.java | 7 +- .../content/bullets/MissileBullets.java | 2 +- .../content/bullets/TurretBullets.java | 4 +- .../anuke/mindustry/content/fx/BlockFx.java | 4 +- .../anuke/mindustry/content/fx/BulletFx.java | 4 +- .../mindustry/content/fx/ExplosionFx.java | 4 +- .../src/io/anuke/mindustry/content/fx/Fx.java | 4 +- .../anuke/mindustry/content/fx/ShootFx.java | 4 +- .../io/anuke/mindustry/content/fx/UnitFx.java | 4 +- core/src/io/anuke/mindustry/core/Control.java | 2 +- .../io/anuke/mindustry/core/NetClient.java | 32 +++-- .../src/io/anuke/mindustry/core/Renderer.java | 45 +++---- core/src/io/anuke/mindustry/core/World.java | 1 + .../anuke/mindustry/editor/DrawOperation.java | 6 +- .../io/anuke/mindustry/editor/EditorTool.java | 14 +-- .../io/anuke/mindustry/editor/MapEditor.java | 16 +-- .../mindustry/editor/MapEditorDialog.java | 53 ++++---- .../anuke/mindustry/editor/MapInfoDialog.java | 8 +- .../anuke/mindustry/editor/MapRenderer.java | 12 +- .../io/anuke/mindustry/editor/MapView.java | 6 +- .../mindustry/editor/OperationStack.java | 2 +- .../io/anuke/mindustry/entities/Damage.java | 28 ++--- .../io/anuke/mindustry/entities/Player.java | 14 +-- .../io/anuke/mindustry/entities/Predict.java | 4 +- .../mindustry/entities/StatusController.java | 21 ++-- .../anuke/mindustry/entities/TileEntity.java | 3 +- .../entities/bullet/ArtilleryBulletType.java | 4 +- .../entities/bullet/BasicBulletType.java | 6 +- .../mindustry/entities/bullet/Bullet.java | 6 +- .../mindustry/entities/bullet/BulletType.java | 6 +- .../entities/bullet/FlakBulletType.java | 4 +- .../entities/bullet/LiquidBulletType.java | 4 +- .../entities/bullet/MissileBulletType.java | 4 +- .../mindustry/entities/effect/Decal.java | 2 +- .../anuke/mindustry/entities/effect/Fire.java | 6 +- .../entities/effect/GroundEffectEntity.java | 4 +- .../entities/effect/ItemTransfer.java | 23 ++-- .../mindustry/entities/effect/Lightning.java | 12 +- .../mindustry/entities/effect/Puddle.java | 10 +- .../entities/effect/RubbleDecal.java | 2 +- .../entities/effect/ScorchDecal.java | 2 +- .../entities/traits/BuilderTrait.java | 8 +- .../mindustry/entities/traits/CarryTrait.java | 2 +- .../entities/traits/TargetTrait.java | 6 +- .../mindustry/entities/units/BaseUnit.java | 8 +- .../mindustry/entities/units/FlyingUnit.java | 6 +- .../mindustry/entities/units/GroundUnit.java | 8 +- .../anuke/mindustry/entities/units/Squad.java | 4 +- .../mindustry/entities/units/UnitType.java | 2 +- .../entities/units/types/AlphaDrone.java | 2 +- core/src/io/anuke/mindustry/game/Saves.java | 31 +++-- core/src/io/anuke/mindustry/game/Team.java | 2 +- core/src/io/anuke/mindustry/game/Teams.java | 4 +- core/src/io/anuke/mindustry/game/Unlocks.java | 3 +- core/src/io/anuke/mindustry/game/Version.java | 4 +- .../mindustry/graphics/BlockRenderer.java | 2 +- .../anuke/mindustry/graphics/CacheLayer.java | 2 +- .../mindustry/graphics/FloorRenderer.java | 4 +- .../anuke/mindustry/graphics/FogRenderer.java | 2 +- .../mindustry/graphics/MinimapRenderer.java | 4 +- .../mindustry/graphics/OverlayRenderer.java | 14 +-- .../io/anuke/mindustry/graphics/Shaders.java | 4 +- .../io/anuke/mindustry/graphics/Trail.java | 6 +- .../anuke/mindustry/input/DesktopInput.java | 118 ++++++------------ .../anuke/mindustry/input/InputHandler.java | 14 +-- .../io/anuke/mindustry/input/MobileInput.java | 24 ++-- .../io/anuke/mindustry/io/BundleLoader.java | 2 +- core/src/io/anuke/mindustry/io/TypeIO.java | 2 +- .../maps/missions/BlockLocMission.java | 6 +- .../mindustry/maps/missions/Mission.java | 2 +- core/src/io/anuke/mindustry/net/Net.java | 21 ++-- .../src/io/anuke/mindustry/net/NetworkIO.java | 2 +- core/src/io/anuke/mindustry/type/Item.java | 2 +- core/src/io/anuke/mindustry/type/Liquid.java | 2 +- core/src/io/anuke/mindustry/type/Mech.java | 2 +- core/src/io/anuke/mindustry/type/Weapon.java | 8 +- .../io/anuke/mindustry/ui/BorderImage.java | 4 +- .../io/anuke/mindustry/ui/ContentDisplay.java | 2 +- core/src/io/anuke/mindustry/ui/GridImage.java | 2 +- core/src/io/anuke/mindustry/ui/Minimap.java | 4 +- .../mindustry/ui/dialogs/AboutDialog.java | 2 +- .../mindustry/ui/dialogs/FileChooser.java | 6 +- .../mindustry/ui/dialogs/GenViewDialog.java | 2 +- .../mindustry/ui/dialogs/HostDialog.java | 2 +- .../mindustry/ui/dialogs/JoinDialog.java | 2 +- .../mindustry/ui/dialogs/LoadDialog.java | 2 +- .../ui/dialogs/LocalPlayerDialog.java | 2 +- .../mindustry/ui/dialogs/SaveDialog.java | 2 +- .../mindustry/ui/dialogs/SectorsDialog.java | 2 +- .../ui/fragments/BackgroundFragment.java | 6 +- .../ui/fragments/BlockConfigFragment.java | 2 +- .../ui/fragments/BlockConsumeFragment.java | 4 +- .../ui/fragments/BlockInventoryFragment.java | 2 +- .../mindustry/ui/fragments/ChatFragment.java | 2 +- .../ui/fragments/PlacementFragment.java | 6 +- .../ui/fragments/PlayerListFragment.java | 4 +- core/src/io/anuke/mindustry/world/Block.java | 22 +--- core/src/io/anuke/mindustry/world/Build.java | 2 +- .../io/anuke/mindustry/world/ItemBuffer.java | 2 +- .../mindustry/world/blocks/BuildBlock.java | 13 +- .../anuke/mindustry/world/blocks/Floor.java | 4 +- .../mindustry/world/blocks/LiquidBlock.java | 3 +- .../mindustry/world/blocks/OreBlock.java | 5 +- .../io/anuke/mindustry/world/blocks/Rock.java | 2 +- .../world/blocks/defense/DeflectorWall.java | 6 +- .../mindustry/world/blocks/defense/Door.java | 6 +- .../world/blocks/defense/ForceProjector.java | 6 +- .../world/blocks/defense/MendProjector.java | 8 +- .../blocks/defense/OverdriveProjector.java | 8 +- .../world/blocks/defense/ShockMine.java | 2 +- .../blocks/defense/turrets/BurstTurret.java | 2 +- .../blocks/defense/turrets/ChargeTurret.java | 4 +- .../blocks/defense/turrets/CooledTurret.java | 4 +- .../blocks/defense/turrets/LaserTurret.java | 4 +- .../blocks/defense/turrets/LiquidTurret.java | 2 +- .../world/blocks/defense/turrets/Turret.java | 38 +++--- .../world/blocks/distribution/Conduit.java | 2 +- .../world/blocks/distribution/Conveyor.java | 10 +- .../distribution/ExtendingItemBridge.java | 4 +- .../world/blocks/distribution/ItemBridge.java | 6 +- .../world/blocks/distribution/Junction.java | 2 +- .../blocks/distribution/LiquidBridge.java | 2 +- .../distribution/LiquidExtendingBridge.java | 2 +- .../blocks/distribution/LiquidJunction.java | 2 +- .../world/blocks/distribution/MassDriver.java | 10 +- .../blocks/distribution/OverflowGate.java | 2 +- .../world/blocks/distribution/Router.java | 2 +- .../world/blocks/distribution/Sorter.java | 2 +- .../world/blocks/power/FusionReactor.java | 4 +- .../world/blocks/power/ItemGenerator.java | 6 +- .../blocks/power/ItemLiquidGenerator.java | 4 +- .../world/blocks/power/LiquidGenerator.java | 4 +- .../world/blocks/power/NuclearReactor.java | 10 +- .../world/blocks/power/PowerNode.java | 12 +- .../world/blocks/power/SolarGenerator.java | 2 +- .../world/blocks/production/Compressor.java | 2 +- .../world/blocks/production/Cultivator.java | 6 +- .../world/blocks/production/Drill.java | 6 +- .../world/blocks/production/Fracker.java | 2 +- .../blocks/production/GenericCrafter.java | 6 +- .../world/blocks/production/Incinerator.java | 6 +- .../world/blocks/production/LiquidMixer.java | 2 +- .../world/blocks/production/PhaseWeaver.java | 4 +- .../production/PlastaniumCompressor.java | 2 +- .../world/blocks/production/PowerSmelter.java | 6 +- .../world/blocks/production/Pulverizer.java | 2 +- .../world/blocks/production/Pump.java | 2 +- .../world/blocks/production/Separator.java | 4 +- .../world/blocks/production/Smelter.java | 6 +- .../world/blocks/production/SolidPump.java | 4 +- .../world/blocks/storage/CoreBlock.java | 8 +- .../world/blocks/storage/SortedUnloader.java | 2 +- .../world/blocks/units/CommandCenter.java | 4 +- .../mindustry/world/blocks/units/MechPad.java | 8 +- .../world/blocks/units/Reconstructor.java | 8 +- .../world/blocks/units/RepairPoint.java | 8 +- .../world/blocks/units/UnitFactory.java | 6 +- .../src/io/anuke/kryonet/ByteSerializer.java | 2 +- kryonet/src/io/anuke/kryonet/KryoClient.java | 2 +- .../anuke/mindustry/server/CrashHandler.java | 6 +- .../mindustry/server/MindustryServer.java | 13 +- .../anuke/mindustry/server/ServerControl.java | 28 +++-- .../mindustry/server/ServerLauncher.java | 13 +- tools/src/io/anuke/mindustry/Generators.java | 12 +- tools/src/io/anuke/mindustry/Image.java | 18 +-- 175 files changed, 666 insertions(+), 688 deletions(-) diff --git a/build.gradle b/build.gradle index ebfe1fb305..3b8bb93946 100644 --- a/build.gradle +++ b/build.gradle @@ -194,12 +194,6 @@ project(":core"){ project(":server"){ apply plugin: "java" - configurations{ - if(findProject(":android") != null){ - compile.exclude module: android - } - } - dependencies{ compile project(":core") @@ -248,7 +242,7 @@ project(":kryonet"){ dependencies{ compile project(":core") compile "org.lz4:lz4-java:1.4.1" - compile 'com.github.Anuken:kryonet:53b10247b1' + compile 'com.github.Anuken:kryonet:38ca8d51b5763ebe463ed973a63b64390ff51416' compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893' } } \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 8a017eb548..c32699e3cc 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -23,7 +23,7 @@ import io.anuke.arc.entities.EntityGroup; import io.anuke.arc.entities.impl.EffectEntity; import io.anuke.arc.entities.trait.DrawTrait; import io.anuke.arc.scene.ui.layout.Unit; -import io.anuke.arc.util.Translator; +import io.anuke.arc.util.Vector2; import java.util.Arrays; import java.util.Locale; @@ -122,7 +122,7 @@ public class Vars{ public static EntityGroup fireGroup; public static EntityGroup[] unitGroups; - public static final Translator[] tmptr = new Translator[]{new Translator(), new Translator(), new Translator(), new Translator()}; + public static final Vector2[] tmptr = new Vector2[]{new Vector2(), new Vector2(), new Vector2(), new Vector2()}; public static void init(){ Serialization.init(); diff --git a/core/src/io/anuke/mindustry/ai/BlockIndexer.java b/core/src/io/anuke/mindustry/ai/BlockIndexer.java index 0902c0546e..4dc4daaeca 100644 --- a/core/src/io/anuke/mindustry/ai/BlockIndexer.java +++ b/core/src/io/anuke/mindustry/ai/BlockIndexer.java @@ -6,7 +6,6 @@ import io.anuke.arc.function.Predicate; import io.anuke.arc.math.Mathf; import io.anuke.arc.math.geom.Geometry; import io.anuke.arc.math.geom.Vector2; -import io.anuke.arc.util.Bits; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.game.EventType.TileChangeEvent; diff --git a/core/src/io/anuke/mindustry/ai/Pathfinder.java b/core/src/io/anuke/mindustry/ai/Pathfinder.java index 73864f6773..e42001b63b 100644 --- a/core/src/io/anuke/mindustry/ai/Pathfinder.java +++ b/core/src/io/anuke/mindustry/ai/Pathfinder.java @@ -1,8 +1,11 @@ package io.anuke.mindustry.ai; -import io.anuke.arc.math.GridPoint2; -import io.anuke.arc.util.IntArray; -import io.anuke.arc.util.Queue; +import io.anuke.arc.Events; +import io.anuke.arc.collection.IntArray; +import io.anuke.arc.collection.Queue; +import io.anuke.arc.math.geom.Geometry; +import io.anuke.arc.math.geom.GridPoint2; +import io.anuke.arc.util.Structs; import io.anuke.arc.util.Time; import io.anuke.mindustry.game.EventType.TileChangeEvent; import io.anuke.mindustry.game.EventType.WorldLoadEvent; @@ -11,10 +14,6 @@ import io.anuke.mindustry.game.Teams.TeamData; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockFlag; -import io.anuke.arc.Events; -import io.anuke.arc.Timers; -import io.anuke.arc.util.Geometry; -import io.anuke.arc.util.Structs; import static io.anuke.mindustry.Vars.state; import static io.anuke.mindustry.Vars.world; diff --git a/core/src/io/anuke/mindustry/ai/WaveSpawner.java b/core/src/io/anuke/mindustry/ai/WaveSpawner.java index d3eba71630..414daba785 100644 --- a/core/src/io/anuke/mindustry/ai/WaveSpawner.java +++ b/core/src/io/anuke/mindustry/ai/WaveSpawner.java @@ -1,6 +1,10 @@ package io.anuke.mindustry.ai; +import io.anuke.arc.Events; import io.anuke.arc.collection.Array; +import io.anuke.arc.collection.GridBits; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.util.Structs; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.entities.units.Squad; @@ -9,10 +13,6 @@ import io.anuke.mindustry.game.SpawnGroup; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Waves; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Events; -import io.anuke.arc.util.GridBits; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Structs; import java.io.DataInput; import java.io.DataOutput; @@ -115,8 +115,8 @@ public class WaveSpawner{ FlyerSpawn spawn = flySpawns.get(flyCount); float margin = 40f; //how far away from the edge flying units spawn - spawnX = world.width() * tilesize / 2f + Mathf.sqrwavex(spawn.angle) * (world.width() / 2f * tilesize + margin); - spawnY = world.height() * tilesize / 2f + Mathf.sqrwavey(spawn.angle) * (world.height() / 2f * tilesize + margin); + spawnX = world.width() * tilesize / 2f + sqrwavex(spawn.angle) * (world.width() / 2f * tilesize + margin); + spawnY = world.height() * tilesize / 2f + sqrwavey(spawn.angle) * (world.height() / 2f * tilesize + margin); spread = margin / 1.5f; flyCount++; @@ -223,7 +223,7 @@ public class WaveSpawner{ int shellWidth = quadWidth() * 2 + quadHeight() * 2 * 6; shellWidth = Math.min(quadWidth() * quadHeight() / 4, shellWidth); - Mathf.traverseSpiral(quadWidth(), quadHeight(), Mathf.random(shellWidth), (x, y) -> { + traverseSpiral(quadWidth(), quadHeight(), Mathf.random(shellWidth), (x, y) -> { if(getQuad(x, y)){ spawn.x = x; spawn.y = y; @@ -256,4 +256,57 @@ public class WaveSpawner{ //quadrant spawn coordinates int x, y; } + + //utility methods + + float sqrwavex(float degrees){ + degrees = Mathf.mod(degrees, 360f); + if(degrees < 45){ + return 1; + }else if(degrees < 135){ + return 1f - (degrees - 45f) / 90f; + }else if(degrees < 225){ + return -1f; + }else if(degrees < 315){ + return (degrees - 225) / 90f; + }else{ + return 1f; + } + } + + float sqrwavey(float degrees){ + return sqrwavex(degrees + 90f); + } + + void traverseSpiral(int width, int height, int offset, SpiralTraverser con){ + int directionIdx = 0; + int curRow = 0, curCol = 0; + for(int i = 0; i < height * width; i++){ + + if(i >= offset && con.accept(curCol, curRow)) break; + + int same = 1, row = curRow, col = curCol; + if(row > height - 1 - row){ + row = height - 1 - row; + same = 0; + } + if(col >= width - 1 - col){ + col = width - 1 - col; + same = 0; + } + row -= same; + + if(row == col){ + directionIdx = (directionIdx + 1) % 4; + } + curRow += directions[directionIdx][0]; + curCol += directions[directionIdx][1]; + } + } + + interface SpiralTraverser{ + boolean accept(int x, int y); + } + + private static int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; } diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index f77a844d88..a6f963c361 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -1,8 +1,14 @@ package io.anuke.mindustry.content; +import io.anuke.arc.Core; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.Graphics; import io.anuke.arc.graphics.Color; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Rectangle; +import io.anuke.arc.util.Time; import io.anuke.mindustry.content.fx.BulletFx; import io.anuke.mindustry.content.fx.UnitFx; import io.anuke.mindustry.entities.Player; @@ -17,12 +23,6 @@ import io.anuke.mindustry.maps.TutorialSector; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.Mech; -import io.anuke.arc.Core; -import io.anuke.arc.Effects; -import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.unitGroups; diff --git a/core/src/io/anuke/mindustry/content/StatusEffects.java b/core/src/io/anuke/mindustry/content/StatusEffects.java index b6c3038088..9162d9be3a 100644 --- a/core/src/io/anuke/mindustry/content/StatusEffects.java +++ b/core/src/io/anuke/mindustry/content/StatusEffects.java @@ -1,14 +1,14 @@ package io.anuke.mindustry.content; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.util.Time; import io.anuke.mindustry.content.fx.EnvironmentFx; import io.anuke.mindustry.entities.StatusController.StatusEntry; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.StatusEffect; -import io.anuke.arc.Effects; -import io.anuke.arc.Timers; -import io.anuke.arc.math.Mathf; public class StatusEffects implements ContentList{ public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked; diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index 93d33b9f06..877b370f4b 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -10,9 +10,9 @@ import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.*; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; public class Blocks extends BlockList implements ContentList{ diff --git a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java index ccd76c381d..43c85cf89b 100644 --- a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java @@ -23,7 +23,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ burnDuration = 46f; useFlux = true; - consumes.items(new ItemStack[]{new ItemStack(Items.copper, 1), new ItemStack(Items.lead, 2)}); + consumes.items(new ItemStack(Items.copper, 1), new ItemStack(Items.lead, 2)); consumes.item(Items.coal).optional(true); }}; @@ -37,7 +37,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ useFlux = true; fluxNeeded = 2; - consumes.items(new ItemStack[]{new ItemStack(Items.copper, 1), new ItemStack(Items.lead, 2)}); + consumes.items(new ItemStack(Items.copper, 1), new ItemStack(Items.lead, 2)); consumes.power(0.1f); }}; @@ -51,7 +51,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ hasLiquids = false; flameColor = Color.valueOf("ffef99"); - consumes.items(new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2)}); + consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2)); consumes.power(0.05f); }}; @@ -80,7 +80,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ powerCapacity = 50f; size = 2; - consumes.items(new ItemStack[]{new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)}); + consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)); consumes.power(0.5f); }}; @@ -95,7 +95,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ fluxNeeded = 3; consumes.power(0.4f); - consumes.items(new ItemStack[]{new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3)}); + consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3)); }}; cryofluidmixer = new LiquidMixer("cryofluidmixer"){{ @@ -133,7 +133,7 @@ public class CraftingBlocks extends BlockList implements ContentList{ size = 2; consumes.power(0.02f); - consumes.items(new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)}); + consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)); }}; melter = new PowerCrafter("melter"){{ diff --git a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java index 5559275254..9dc2a3cd6b 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java @@ -17,7 +17,7 @@ import io.anuke.mindustry.world.blocks.PowerBlock; import io.anuke.mindustry.world.blocks.distribution.Sorter; import io.anuke.mindustry.world.blocks.power.PowerNode; import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.ButtonGroup; import io.anuke.arc.scene.ui.ImageButton; import io.anuke.arc.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java b/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java index 6a4aaf332b..063c09bc78 100644 --- a/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.content.blocks; +import io.anuke.arc.Core; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.content.AmmoTypes; @@ -8,7 +9,7 @@ import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.defense.turrets.*; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; @@ -73,11 +74,11 @@ public class TurretBlocks extends BlockList implements ContentList{ health = 360; drawer = (tile, entity) -> { - Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90); + Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y).rot(entity.rotation - 90); Draw.color(entity.liquids.current().color); Draw.alpha(entity.liquids.total() / liquidCapacity); - Draw.rect(name + "-liquid", tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90); + Draw.rect(name + "-liquid", tile.drawx() + tr2.x, tile.drawy() + tr2.y).rot(entity.rotation - 90).color(entity.liquids.current().color); Draw.color(); }; }}; diff --git a/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java b/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java index 8b8c40a31a..a61a98c401 100644 --- a/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/MissileBullets.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.entities.bullet.MissileBulletType; import io.anuke.mindustry.entities.effect.Lightning; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; public class MissileBullets extends BulletList implements ContentList{ diff --git a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java index 36e4ebd499..36c8094ce6 100644 --- a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java @@ -18,8 +18,8 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.BuildBlock; import io.anuke.mindustry.world.blocks.distribution.MassDriver.DriverBulletData; -import io.anuke.arc.Effects; -import io.anuke.arc.Timers; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.util.Time; import io.anuke.arc.graphics.*; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/content/fx/BlockFx.java b/core/src/io/anuke/mindustry/content/fx/BlockFx.java index a5fc7f81ff..1403cea284 100644 --- a/core/src/io/anuke/mindustry/content/fx/BlockFx.java +++ b/core/src/io/anuke/mindustry/content/fx/BlockFx.java @@ -5,10 +5,10 @@ import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.graphics.Hue; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Tmp; diff --git a/core/src/io/anuke/mindustry/content/fx/BulletFx.java b/core/src/io/anuke/mindustry/content/fx/BulletFx.java index 572b38a280..0d19327faf 100644 --- a/core/src/io/anuke/mindustry/content/fx/BulletFx.java +++ b/core/src/io/anuke/mindustry/content/fx/BulletFx.java @@ -4,9 +4,9 @@ import io.anuke.arc.graphics.Color; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java b/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java index 850e489acd..53812d191b 100644 --- a/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java +++ b/core/src/io/anuke/mindustry/content/fx/ExplosionFx.java @@ -4,9 +4,9 @@ import io.anuke.arc.graphics.Color; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/content/fx/Fx.java b/core/src/io/anuke/mindustry/content/fx/Fx.java index 7e3e05b4f4..bb280b754d 100644 --- a/core/src/io/anuke/mindustry/content/fx/Fx.java +++ b/core/src/io/anuke/mindustry/content/fx/Fx.java @@ -4,9 +4,9 @@ import io.anuke.arc.graphics.Color; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import static io.anuke.mindustry.Vars.tilesize; diff --git a/core/src/io/anuke/mindustry/content/fx/ShootFx.java b/core/src/io/anuke/mindustry/content/fx/ShootFx.java index 96abca972e..577010f73f 100644 --- a/core/src/io/anuke/mindustry/content/fx/ShootFx.java +++ b/core/src/io/anuke/mindustry/content/fx/ShootFx.java @@ -5,9 +5,9 @@ import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.Shapes; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/content/fx/UnitFx.java b/core/src/io/anuke/mindustry/content/fx/UnitFx.java index 280b6080b8..1919302a78 100644 --- a/core/src/io/anuke/mindustry/content/fx/UnitFx.java +++ b/core/src/io/anuke/mindustry/content/fx/UnitFx.java @@ -4,9 +4,9 @@ import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.game.ContentList; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 35220d52a2..f6f9013d40 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -188,7 +188,7 @@ public class Control implements ApplicationListener{ } inputs[index] = input; - Core.input.addInputProcessor(input); + Core.input.addProcessor(input); } public void removePlayer(){ diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java index 78c6e670e4..a277978ddc 100644 --- a/core/src/io/anuke/mindustry/core/NetClient.java +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -165,21 +165,19 @@ public class NetClient implements ApplicationListener{ netClient.disconnectQuietly(); state.set(State.menu); - threads.runGraphics(() -> { - if(!reason.quiet){ - if(reason.extraText() != null){ - ui.showText(reason.toString(), reason.extraText()); - }else{ - ui.showText("$text.disconnect", reason.toString()); - } + if(!reason.quiet){ + if(reason.extraText() != null){ + ui.showText(reason.toString(), reason.extraText()); + }else{ + ui.showText("$text.disconnect", reason.toString()); } - ui.loadfrag.hide(); - }); + } + ui.loadfrag.hide(); } @Remote(variants = Variant.both) public static void onInfoMessage(String message){ - threads.runGraphics(() -> ui.showText("", message)); + ui.showText("", message); } @Remote(variants = Variant.both) @@ -190,15 +188,13 @@ public class NetClient implements ApplicationListener{ ui.chatfrag.clearMessages(); Net.setClientLoaded(false); - threads.runGraphics(() -> { - ui.loadfrag.show("$text.connecting.data"); + ui.loadfrag.show("$text.connecting.data"); - ui.loadfrag.setButton(() -> { - ui.loadfrag.hide(); - netClient.connecting = false; - netClient.quiet = true; - Net.disconnect(); - }); + ui.loadfrag.setButton(() -> { + ui.loadfrag.hide(); + netClient.connecting = false; + netClient.quiet = true; + Net.disconnect(); }); } diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index c00429fe59..e0009452d8 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -1,16 +1,30 @@ package io.anuke.mindustry.core; import io.anuke.arc.Core; +import io.anuke.arc.Graphics; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.entities.EntityDraw; +import io.anuke.arc.entities.EntityGroup; +import io.anuke.arc.entities.impl.EffectEntity; +import io.anuke.arc.entities.trait.DrawTrait; +import io.anuke.arc.entities.trait.Entity; import io.anuke.arc.files.FileHandle; +import io.anuke.arc.function.Consumer; +import io.anuke.arc.function.Predicate; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Pixmap; import io.anuke.arc.graphics.PixmapIO; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.g2d.SpriteBatch; -import io.anuke.arc.math.Rectangle; -import io.anuke.arc.math.Vector2; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Rectangle; +import io.anuke.arc.math.geom.Vector2; +import io.anuke.arc.scene.utils.Cursors; import io.anuke.arc.util.BufferUtils; import io.anuke.arc.util.ScreenUtils; import io.anuke.arc.util.Time; +import io.anuke.arc.util.pooling.Pools; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; @@ -23,28 +37,7 @@ import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity; -import io.anuke.arc.Effects; -import io.anuke.arc.Graphics; -import io.anuke.arc.entities.EntityDraw; -import io.anuke.arc.entities.EntityGroup; -import io.anuke.arc.entities.impl.EffectEntity; -import io.anuke.arc.entities.trait.DrawTrait; -import io.anuke.arc.entities.trait.Entity; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.function.Predicate; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; -import io.anuke.arc.graphics.Surface; -import io.anuke.arc.modules.RendererModule; -import io.anuke.arc.scene.utils.Cursors; -import io.anuke.arc.util.Bundles; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Pooling; -import io.anuke.arc.util.Translator; - import static io.anuke.mindustry.Vars.*; -import static io.anuke.arc.core.Core.batch; -import static io.anuke.arc.core.Core.camera; public class Renderer extends RendererModule{ public final Surface effectSurface; @@ -55,7 +48,7 @@ public class Renderer extends RendererModule{ private int targetscale = baseCameraScale; private Rectangle rect = new Rectangle(), rect2 = new Rectangle(); - private Vector2 avgPosition = new Translator(); + private Vector2 avgPosition = new Vector2(); public Renderer(){ Core.batch = new SpriteBatch(4096); @@ -75,7 +68,7 @@ public class Renderer extends RendererModule{ if(view.overlaps(pos)){ if(!(effect instanceof GroundEffect)){ - EffectEntity entity = Pooling.obtain(EffectEntity.class, EffectEntity::new); + EffectEntity entity = Pools.obtain(EffectEntity.class, EffectEntity::new); entity.effect = effect; entity.color = color; entity.rotation = rotation; @@ -87,7 +80,7 @@ public class Renderer extends RendererModule{ } threads.runGraphics(() -> effectGroup.add(entity)); }else{ - GroundEffectEntity entity = Pooling.obtain(GroundEffectEntity.class, GroundEffectEntity::new); + GroundEffectEntity entity = Pools.obtain(GroundEffectEntity.class, GroundEffectEntity::new); entity.effect = effect; entity.color = color; entity.rotation = rotation; diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index acbe89f411..4265fd8a3a 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -11,6 +11,7 @@ import io.anuke.arc.math.geom.GridPoint2; import io.anuke.arc.util.Log; import io.anuke.arc.util.Structs; import io.anuke.arc.util.Time; +import io.anuke.arc.util.Tmp; import io.anuke.mindustry.ai.BlockIndexer; import io.anuke.mindustry.ai.Pathfinder; import io.anuke.mindustry.ai.WaveSpawner; diff --git a/core/src/io/anuke/mindustry/editor/DrawOperation.java b/core/src/io/anuke/mindustry/editor/DrawOperation.java index 228728157c..b6b7d13f76 100755 --- a/core/src/io/anuke/mindustry/editor/DrawOperation.java +++ b/core/src/io/anuke/mindustry/editor/DrawOperation.java @@ -1,10 +1,10 @@ package io.anuke.mindustry.editor; import io.anuke.arc.collection.Array; -import io.anuke.arc.util.IntSet; +import io.anuke.arc.collection.IntSet; +import io.anuke.arc.util.Pack; import io.anuke.mindustry.maps.MapTileData; import io.anuke.mindustry.maps.MapTileData.TileDataMarker; -import io.anuke.arc.util.Bits; public class DrawOperation{ /** @@ -29,7 +29,7 @@ public class DrawOperation{ } public boolean checkDuplicate(short x, short y){ - int i = Bits.packInt(x, y); + int i = Pack.shortInt(x, y); if(checks.contains(i)) return true; checks.add(i); diff --git a/core/src/io/anuke/mindustry/editor/EditorTool.java b/core/src/io/anuke/mindustry/editor/EditorTool.java index f60863cad8..3693f03266 100644 --- a/core/src/io/anuke/mindustry/editor/EditorTool.java +++ b/core/src/io/anuke/mindustry/editor/EditorTool.java @@ -1,15 +1,15 @@ package io.anuke.mindustry.editor; -import io.anuke.arc.util.IntArray; +import io.anuke.arc.collection.IntArray; +import io.anuke.arc.function.IntPositionConsumer; +import io.anuke.arc.util.Pack; +import io.anuke.arc.util.Structs; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.maps.MapTileData; import io.anuke.mindustry.maps.MapTileData.DataPosition; import io.anuke.mindustry.maps.MapTileData.TileDataMarker; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.Floor; -import io.anuke.arc.function.IntPositionConsumer; -import io.anuke.arc.util.Structs; -import io.anuke.arc.util.Bits; import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.ui; @@ -24,8 +24,8 @@ public enum EditorTool{ byte link = editor.getMap().read(x, y, DataPosition.link); if(link != 0){ - x -= (Bits.getLeftByte(link) - 8); - y -= (Bits.getRightByte(link) - 8); + x -= (Pack.leftByte(link) - 8); + y -= (Pack.rightByte(link) - 8); bf = editor.getMap().read(x, y, DataPosition.floor); bw = editor.getMap().read(x, y, DataPosition.wall); } @@ -101,7 +101,7 @@ public enum EditorTool{ byte bw = data.read(x, y, DataPosition.wall); be = data.read(x, y, DataPosition.elevation); boolean synth = editor.getDrawBlock().synthetic(); - byte brt = Bits.packByte((byte) editor.getDrawRotation(), (byte) editor.getDrawTeam().ordinal()); + byte brt = Pack.byteByte((byte) editor.getDrawRotation(), (byte) editor.getDrawTeam().ordinal()); dest = floor ? bf : bw; byte draw = editor.getDrawBlock().id; diff --git a/core/src/io/anuke/mindustry/editor/MapEditor.java b/core/src/io/anuke/mindustry/editor/MapEditor.java index 64e4d64182..369f9f6682 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditor.java +++ b/core/src/io/anuke/mindustry/editor/MapEditor.java @@ -1,6 +1,9 @@ package io.anuke.mindustry.editor; import io.anuke.arc.collection.ObjectMap; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.util.Pack; +import io.anuke.arc.util.Structs; import io.anuke.mindustry.Vars; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.editor.DrawOperation.TileOperation; @@ -10,10 +13,9 @@ import io.anuke.mindustry.maps.MapTileData.DataPosition; import io.anuke.mindustry.maps.MapTileData.TileDataMarker; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.Floor; -import io.anuke.arc.util.Structs; -import io.anuke.arc.util.Bits; -import io.anuke.arc.math.Mathf; + import static io.anuke.mindustry.Vars.content; + public class MapEditor{ public static final int[] brushSizes = {1, 2, 3, 4, 5, 9, 15}; @@ -103,7 +105,7 @@ public class MapEditor{ byte writeID = drawBlock.id; byte partID = Blocks.blockpart.id; - byte rotationTeam = Bits.packByte(drawBlock.rotate ? (byte) rotation : 0, drawBlock.synthetic() ? (byte) drawTeam.ordinal() : 0); + byte rotationTeam = Pack.byteByte(drawBlock.rotate ? (byte)rotation : 0, drawBlock.synthetic() ? (byte)drawTeam.ordinal() : 0); boolean isfloor = drawBlock instanceof Floor && drawBlock != Blocks.air; @@ -126,13 +128,13 @@ public class MapEditor{ if(i == 1){ map.write(worldx, worldy, DataPosition.wall, partID); map.write(worldx, worldy, DataPosition.rotationTeam, rotationTeam); - map.write(worldx, worldy, DataPosition.link, Bits.packByte((byte) (dx + offsetx + 8), (byte) (dy + offsety + 8))); + map.write(worldx, worldy, DataPosition.link, Pack.byteByte((byte) (dx + offsetx + 8), (byte) (dy + offsety + 8))); }else{ byte link = map.read(worldx, worldy, DataPosition.link); byte block = map.read(worldx, worldy, DataPosition.wall); if(link != 0){ - removeLinked(worldx - (Bits.getLeftByte(link) - 8), worldy - (Bits.getRightByte(link) - 8)); + removeLinked(worldx - (Pack.leftByte(link) - 8), worldy - (Pack.rightByte(link) - 8)); }else if(content.block(block).isMultiblock()){ removeLinked(worldx, worldy); } @@ -170,7 +172,7 @@ public class MapEditor{ if(content.block(map.read(wx, wy, DataPosition.wall)).isMultiblock()){ removeLinked(wx, wy); }else if(link != 0){ - removeLinked(wx - (Bits.getLeftByte(link) - 8), wy - (Bits.getRightByte(link) - 8)); + removeLinked(wx - (Pack.leftByte(link) - 8), wy - (Pack.rightByte(link) - 8)); } } diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index f467c889de..74b5326312 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -1,15 +1,22 @@ package io.anuke.mindustry.editor; import io.anuke.arc.Core; +import io.anuke.arc.collection.ObjectMap; import io.anuke.arc.files.FileHandle; +import io.anuke.arc.function.Consumer; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Pixmap; -import io.anuke.arc.graphics.g2d.Batch; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Vector2; -import io.anuke.arc.util.Align; -import io.anuke.arc.util.Disposable; -import io.anuke.arc.collection.ObjectMap; +import io.anuke.arc.input.KeyCode; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Vector2; +import io.anuke.arc.scene.actions.Actions; +import io.anuke.arc.scene.ui.*; +import io.anuke.arc.scene.ui.layout.Stack; +import io.anuke.arc.scene.ui.layout.Table; +import io.anuke.arc.scene.ui.layout.Unit; +import io.anuke.arc.scene.utils.UIUtils; +import io.anuke.arc.util.*; import io.anuke.mindustry.Vars; import io.anuke.mindustry.content.blocks.StorageBlocks; import io.anuke.mindustry.core.Platform; @@ -21,22 +28,6 @@ import io.anuke.mindustry.maps.MapTileData; import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.world.Block; -import io.anuke.arc.Graphics; -import io.anuke.arc.Inputs; -import io.anuke.arc.Timers; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.input.Input; -import io.anuke.arc.scene.actions.Actions; -import io.anuke.arc.scene.ui.*; -import io.anuke.arc.scene.ui.layout.Stack; -import io.anuke.arc.scene.ui.layout.Table; -import io.anuke.arc.scene.ui.layout.Unit; -import io.anuke.arc.scene.utils.UIUtils; -import io.anuke.arc.util.Bundles; -import io.anuke.arc.util.Log; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Strings; import java.io.DataInputStream; import java.io.InputStream; @@ -190,7 +181,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ return; } - Vector2 v = pane.stageToLocalCoordinates(Graphics.mouse()); + Vector2 v = pane.stageToLocalCoordinates(Core.input.mouse()); if(v.x >= 0 && v.y >= 0 && v.x <= pane.getWidth() && v.y <= pane.getHeight()){ Core.scene.setScrollFocus(pane); @@ -223,8 +214,8 @@ public class MapEditorDialog extends Dialog implements Disposable{ } @Override - protected void drawBackground(Batch batch, float parentAlpha, float x, float y){ - drawDefaultBackground(batch, parentAlpha, x, y); + protected void drawBackground(float x, float y){ + drawDefaultBackground(x, y); } private void save(){ @@ -475,35 +466,35 @@ public class MapEditorDialog extends Dialog implements Disposable{ private void doInput(){ //tool select for(int i = 0; i < EditorTool.values().length; i++){ - if(Core.input.keyTap(Input.valueOf("NUM_" + (i + 1)))){ + if(Core.input.keyTap(KeyCode.valueOf("NUM_" + (i + 1)))){ view.setTool(EditorTool.values()[i]); break; } } - if(Core.input.keyTap(Input.R)){ + if(Core.input.keyTap(KeyCode.R)){ editor.setDrawRotation((editor.getDrawRotation() + 1) % 4); } - if(Core.input.keyTap(Input.E)){ + if(Core.input.keyTap(KeyCode.E)){ editor.setDrawRotation(Mathf.mod((editor.getDrawRotation() + 1), 4)); } //ctrl keys (undo, redo, save) if(UIUtils.ctrl()){ - if(Core.input.keyTap(Input.Z)){ + if(Core.input.keyTap(KeyCode.Z)){ view.undo(); } - if(Core.input.keyTap(Input.Y)){ + if(Core.input.keyTap(KeyCode.Y)){ view.redo(); } - if(Core.input.keyTap(Input.S)){ + if(Core.input.keyTap(KeyCode.S)){ save(); } - if(Core.input.keyTap(Input.G)){ + if(Core.input.keyTap(KeyCode.G)){ view.setGrid(!view.isGrid()); } } diff --git a/core/src/io/anuke/mindustry/editor/MapInfoDialog.java b/core/src/io/anuke/mindustry/editor/MapInfoDialog.java index e14f63b95d..25e8002a54 100644 --- a/core/src/io/anuke/mindustry/editor/MapInfoDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapInfoDialog.java @@ -1,11 +1,11 @@ package io.anuke.mindustry.editor; +import io.anuke.arc.Core; import io.anuke.arc.collection.ObjectMap; -import io.anuke.mindustry.core.Platform; -import io.anuke.mindustry.ui.dialogs.FloatingDialog; -import io.anuke.arc.Settings; import io.anuke.arc.scene.ui.TextArea; import io.anuke.arc.scene.ui.TextField; +import io.anuke.mindustry.core.Platform; +import io.anuke.mindustry.ui.dialogs.FloatingDialog; public class MapInfoDialog extends FloatingDialog{ private final MapEditor editor; @@ -55,7 +55,7 @@ public class MapInfoDialog extends FloatingDialog{ author = content().addField(tags.get("author", Core.settings.getString("mapAuthor", "")), text -> { tags.put("author", text); - Core.settings.putString("mapAuthor", text); + Core.settings.put("mapAuthor", text); Core.settings.save(); }).size(400, 55f).get(); author.setMessageText("$text.unknown"); diff --git a/core/src/io/anuke/mindustry/editor/MapRenderer.java b/core/src/io/anuke/mindustry/editor/MapRenderer.java index a2af5f492c..81dcbade57 100644 --- a/core/src/io/anuke/mindustry/editor/MapRenderer.java +++ b/core/src/io/anuke/mindustry/editor/MapRenderer.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.maps.MapTileData.DataPosition; import io.anuke.mindustry.world.Block; import io.anuke.arc.Core; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.IndexedRenderer; import io.anuke.arc.util.Structs; import io.anuke.arc.util.Bits; @@ -125,12 +125,12 @@ public class MapRenderer implements Disposable{ if(wall.rotate){ mesh.draw((wx % chunksize) + (wy % chunksize) * chunksize, region, wx * tilesize + wall.offset(), wy * tilesize + wall.offset(), - region.getRegionWidth(), region.getRegionHeight(), rotation * 90 - 90); + region.getWidth(), region.getHeight(), rotation * 90 - 90); }else{ mesh.draw((wx % chunksize) + (wy % chunksize) * chunksize, region, - wx * tilesize + wall.offset() + (tilesize - region.getRegionWidth())/2f, - wy * tilesize + wall.offset() + (tilesize - region.getRegionHeight())/2f, - region.getRegionWidth(), region.getRegionHeight()); + wx * tilesize + wall.offset() + (tilesize - region.getWidth())/2f, + wy * tilesize + wall.offset() + (tilesize - region.getHeight())/2f, + region.getWidth(), region.getHeight()); } }else{ region = floor.getEditorIcon(); @@ -154,7 +154,7 @@ public class MapRenderer implements Disposable{ mesh.draw((wx % chunksize) + (wy % chunksize) * chunksize + chunksize * chunksize, region, wx * tilesize - (wall.size/3) * tilesize, wy * tilesize - (wall.size/3) * tilesize, - region.getRegionWidth(), region.getRegionHeight()); + region.getWidth(), region.getHeight()); mesh.setColor(Color.WHITE); } diff --git a/core/src/io/anuke/mindustry/editor/MapView.java b/core/src/io/anuke/mindustry/editor/MapView.java index 126cbcc88a..4ddbd498d7 100644 --- a/core/src/io/anuke/mindustry/editor/MapView.java +++ b/core/src/io/anuke/mindustry/editor/MapView.java @@ -7,7 +7,7 @@ import io.anuke.arc.input.GestureDetector; import io.anuke.arc.input.GestureDetector.GestureListener; import io.anuke.arc.math.Bresenham2; import io.anuke.arc.math.GridPoint2; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.Vector2; import io.anuke.arc.collection.Array; import io.anuke.mindustry.editor.DrawOperation.TileOperation; @@ -16,8 +16,8 @@ import io.anuke.mindustry.ui.GridImage; import io.anuke.arc.Core; import io.anuke.arc.Graphics; import io.anuke.arc.Inputs; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.scene.Element; import io.anuke.arc.scene.event.InputEvent; import io.anuke.arc.scene.event.InputListener; diff --git a/core/src/io/anuke/mindustry/editor/OperationStack.java b/core/src/io/anuke/mindustry/editor/OperationStack.java index 6de94ee165..0fcdbeb361 100755 --- a/core/src/io/anuke/mindustry/editor/OperationStack.java +++ b/core/src/io/anuke/mindustry/editor/OperationStack.java @@ -22,7 +22,7 @@ public class OperationStack{ stack.add(action); if(stack.size > maxSize){ - stack.removeIndex(0); + stack.removeAt(0); } } diff --git a/core/src/io/anuke/mindustry/entities/Damage.java b/core/src/io/anuke/mindustry/entities/Damage.java index a4160ce405..58110de64b 100644 --- a/core/src/io/anuke/mindustry/entities/Damage.java +++ b/core/src/io/anuke/mindustry/entities/Damage.java @@ -1,11 +1,17 @@ package io.anuke.mindustry.entities; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.entities.Effects.Effect; +import io.anuke.arc.function.Consumer; +import io.anuke.arc.function.Predicate; import io.anuke.arc.graphics.Color; -import io.anuke.arc.math.Rectangle; -import io.anuke.arc.math.Vector2; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Geometry; +import io.anuke.arc.math.geom.Rectangle; +import io.anuke.arc.math.geom.Vector2; +import io.anuke.arc.util.Time; import io.anuke.mindustry.content.bullets.TurretBullets; import io.anuke.mindustry.content.fx.ExplosionFx; -import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.effect.Fire; import io.anuke.mindustry.entities.effect.Lightning; @@ -13,14 +19,6 @@ import io.anuke.mindustry.game.Team; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; -import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.function.Predicate; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Physics; -import io.anuke.arc.util.Translator; import static io.anuke.mindustry.Vars.*; @@ -28,7 +26,7 @@ import static io.anuke.mindustry.Vars.*; public class Damage{ private static Rectangle rect = new Rectangle(); private static Rectangle hitrect = new Rectangle(); - private static Translator tr = new Translator(); + private static Vector2 tr = new Vector2(); /**Creates a dynamic explosion based on specified parameters.*/ public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){ @@ -47,7 +45,7 @@ public class Damage{ for(int i = 0; i < waves; i++){ int f = i; Time.run(i * 2f, () -> { - threads.run(() -> Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f)); + Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f); Effects.effect(ExplosionFx.blockExplosionSmoke, x + Mathf.range(radius), y + Mathf.range(radius)); }); } @@ -119,7 +117,7 @@ public class Damage{ other.width += expand * 2; other.height += expand * 2; - Vector2 vec = Physics.raycastRect(x, y, x2, y2, other); + Vector2 vec = Geometry.raycastRect(x, y, x2, y2, other); if(vec != null){ Effects.effect(effect, vec.x, vec.y); @@ -180,7 +178,7 @@ public class Damage{ int trad = (int) (radius / tilesize); for(int dx = -trad; dx <= trad; dx++){ for(int dy = -trad; dy <= trad; dy++){ - Tile tile = world.tile(Mathf.scl2(x, tilesize) + dx, Mathf.scl2(y, tilesize) + dy); + Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy); if(tile != null && tile.entity != null && (team == null || state.teams.areEnemies(team, tile.getTeam())) && Vector2.dst(dx, dy, 0, 0) <= trad){ float amount = calculateDamage(x, y, tile.worldx(), tile.worldy(), radius, damage); tile.entity.damage(amount); diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 4ef166b13b..2ce78101e6 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -326,7 +326,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra Draw.rect(mech.legRegion, x + Angles.trnsx(baseRotation, ft * i + boostTrnsY, -boostTrnsX * i), y + Angles.trnsy(baseRotation, ft * i + boostTrnsY, -boostTrnsX * i), - mech.legRegion.getRegionWidth() * i, mech.legRegion.getRegionHeight() - Mathf.clamp(ft * i, 0, 2), baseRotation - 90 + boostAng * i); + mech.legRegion.getWidth() * i, mech.legRegion.getHeight() - Mathf.clamp(ft * i, 0, 2), baseRotation - 90 + boostAng * i); } Draw.rect(mech.baseRegion, x, y, baseRotation - 90); @@ -344,10 +344,10 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra for(int i : Mathf.signs){ float tra = rotation - 90, trY = -mech.weapon.getRecoil(this, i > 0) + mech.weaponOffsetY; - float w = i > 0 ? -mech.weapon.equipRegion.getRegionWidth() : mech.weapon.equipRegion.getRegionWidth(); + float w = i > 0 ? -mech.weapon.equipRegion.getWidth() : mech.weapon.equipRegion.getWidth(); Draw.rect(mech.weapon.equipRegion, x + Angles.trnsx(tra, (mech.weaponOffsetX + mech.spreadX(this)) * i, trY), - y + Angles.trnsy(tra, (mech.weaponOffsetX + mech.spreadX(this)) * i, trY), w, mech.weapon.equipRegion.getRegionHeight(), rotation - 90); + y + Angles.trnsy(tra, (mech.weaponOffsetX + mech.spreadX(this)) * i, trY), w, mech.weapon.equipRegion.getHeight(), rotation - 90); } float backTrns = 4f, itemSize = 5f; @@ -403,7 +403,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra } public void drawName(){ - GlyphLayout layout = Pooling.obtain(GlyphLayout.class, GlyphLayout::new); + GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); boolean ints = Core.font.usesIntegerPositions(); Core.font.setUseIntegerPositions(false); @@ -424,7 +424,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra } Draw.reset(); - Pooling.free(layout); + Pools.free(layout); Draw.tscl(1f); Core.font.setUseIntegerPositions(ints); } @@ -613,7 +613,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra movement.x += xa * speed; } - Vector2 vec = Graphics.world(control.input(playerIndex).getMouseX(), control.input(playerIndex).getMouseY()); + Vector2 vec = Core.input.mouseWorld(control.input(playerIndex).getMouseX(), control.input(playerIndex).getMouseY()); pointerX = vec.x; pointerY = vec.y; updateShooting(); @@ -767,7 +767,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra } }else if(isShooting()){ - Vector2 vec = Graphics.world(control.input(playerIndex).getMouseX(), + Vector2 vec = Core.input.mouseWorld(control.input(playerIndex).getMouseX(), control.input(playerIndex).getMouseY()); pointerX = vec.x; pointerY = vec.y; diff --git a/core/src/io/anuke/mindustry/entities/Predict.java b/core/src/io/anuke/mindustry/entities/Predict.java index b41f9baf7d..d4a935c173 100644 --- a/core/src/io/anuke/mindustry/entities/Predict.java +++ b/core/src/io/anuke/mindustry/entities/Predict.java @@ -1,8 +1,8 @@ package io.anuke.mindustry.entities; -import io.anuke.arc.math.Vector2; -import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Vector2; +import io.anuke.mindustry.entities.traits.TargetTrait; /** * Class for predicting shoot angles based on velocities of targets. diff --git a/core/src/io/anuke/mindustry/entities/StatusController.java b/core/src/io/anuke/mindustry/entities/StatusController.java index eeb290b829..a324e71ab4 100644 --- a/core/src/io/anuke/mindustry/entities/StatusController.java +++ b/core/src/io/anuke/mindustry/entities/StatusController.java @@ -1,15 +1,14 @@ package io.anuke.mindustry.entities; -import io.anuke.arc.graphics.Color; import io.anuke.arc.collection.Array; +import io.anuke.arc.graphics.Color; +import io.anuke.arc.util.Time; +import io.anuke.arc.util.Tmp; +import io.anuke.arc.util.pooling.Pools; import io.anuke.mindustry.content.StatusEffects; import io.anuke.mindustry.entities.traits.Saveable; import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.StatusEffect; -import io.anuke.arc.Timers; -import io.anuke.arc.util.Pooling; -import io.anuke.arc.util.ThreadArray; -import io.anuke.arc.util.Tmp; import java.io.DataInput; import java.io.DataOutput; @@ -21,9 +20,9 @@ import static io.anuke.mindustry.Vars.content; */ public class StatusController implements Saveable{ private static final StatusEntry globalResult = new StatusEntry(); - private static final Array removals = new ThreadArray<>(); + private static final Array removals = new Array<>(); - private Array statuses = new ThreadArray<>(); + private Array statuses = new Array<>(); private float speedMultiplier; private float damageMultiplier; @@ -57,7 +56,7 @@ public class StatusController implements Saveable{ } //otherwise, no opposites found, add direct effect - StatusEntry entry = Pooling.obtain(StatusEntry.class, StatusEntry::new); + StatusEntry entry = Pools.obtain(StatusEntry.class, StatusEntry::new); entry.set(effect, newTime); statuses.add(entry); } @@ -91,7 +90,7 @@ public class StatusController implements Saveable{ entry.time = Math.max(entry.time - Time.delta(), 0); if(entry.time <= 0){ - Pooling.free(entry); + Pools.free(entry); removals.add(entry); }else{ speedMultiplier *= entry.effect.speedMultiplier; @@ -137,7 +136,7 @@ public class StatusController implements Saveable{ @Override public void readSave(DataInput stream) throws IOException{ for(StatusEntry effect : statuses){ - Pooling.free(effect); + Pools.free(effect); } statuses.clear(); @@ -146,7 +145,7 @@ public class StatusController implements Saveable{ for(int i = 0; i < amount; i++){ byte id = stream.readByte(); float time = stream.readShort() / 2f; - StatusEntry entry = Pooling.obtain(StatusEntry.class, StatusEntry::new); + StatusEntry entry = Pools.obtain(StatusEntry.class, StatusEntry::new); entry.set(content.getByID(ContentType.status, id), time); statuses.add(entry); } diff --git a/core/src/io/anuke/mindustry/entities/TileEntity.java b/core/src/io/anuke/mindustry/entities/TileEntity.java index fa7e9046cd..4ce530f9b8 100644 --- a/core/src/io/anuke/mindustry/entities/TileEntity.java +++ b/core/src/io/anuke/mindustry/entities/TileEntity.java @@ -10,6 +10,7 @@ import io.anuke.arc.entities.impl.BaseEntity; import io.anuke.arc.entities.trait.HealthTrait; import io.anuke.arc.math.Mathf; import io.anuke.arc.math.geom.GridPoint2; +import io.anuke.arc.math.geom.Position; import io.anuke.arc.math.geom.Vector2; import io.anuke.arc.util.Interval; import io.anuke.arc.util.Time; @@ -258,7 +259,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{ @Override public Vector2 getVelocity(){ - return Vector2.Zero; + return Vector2.ZERO; } @Override diff --git a/core/src/io/anuke/mindustry/entities/bullet/ArtilleryBulletType.java b/core/src/io/anuke/mindustry/entities/bullet/ArtilleryBulletType.java index 9ded4dc858..6a317f0882 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/ArtilleryBulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/ArtilleryBulletType.java @@ -1,9 +1,9 @@ package io.anuke.mindustry.entities.bullet; import io.anuke.mindustry.content.fx.BulletFx; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; //TODO scale velocity depending on fslope() public class ArtilleryBulletType extends BasicBulletType{ diff --git a/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java index 41c9158eec..df16ff11d4 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BasicBulletType.java @@ -6,9 +6,9 @@ import io.anuke.mindustry.entities.Damage; import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.graphics.Palette; -import io.anuke.arc.Effects; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java index cccc62b7db..fbe1540f0d 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java +++ b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.traits.TeamTrait; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.entities.EntityGroup; import io.anuke.arc.entities.impl.BulletEntity; import io.anuke.arc.entities.trait.Entity; @@ -55,7 +55,7 @@ public class Bullet extends BulletEntity implements TeamTrait, SyncT } public static Bullet create(BulletType type, Entity owner, Team team, float x, float y, float angle, float velocityScl, float lifetimeScl, Object data){ - Bullet bullet = Pooling.obtain(Bullet.class, Bullet::new); + Bullet bullet = Pools.obtain(Bullet.class, Bullet::new); bullet.type = type; bullet.owner = owner; bullet.data = data; @@ -259,7 +259,7 @@ public class Bullet extends BulletEntity implements TeamTrait, SyncT @Override public void removed(){ - Pooling.free(this); + Pools.free(this); } @Override diff --git a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java index 6c4e0d00ca..9904bcf908 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java @@ -6,10 +6,10 @@ import io.anuke.mindustry.game.Content; import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; import io.anuke.arc.entities.impl.BaseBulletType; -import io.anuke.arc.util.Translator; +import io.anuke.arc.util.Vector2; public abstract class BulletType extends Content implements BaseBulletType{ public float lifetime; @@ -45,7 +45,7 @@ public abstract class BulletType extends Content implements BaseBulletType saves = new ThreadArray<>(); + private Array saves = new Array<>(); private IntMap saveMap = new IntMap<>(); private SaveSlot current; private boolean saving; @@ -35,11 +34,9 @@ public class Saves{ public Saves(){ Events.on(StateChangeEvent.class, event -> { if(event.to == State.menu){ - threads.run(() -> { - totalPlaytime = 0; - lastTimestamp = 0; - current = null; - }); + totalPlaytime = 0; + lastTimestamp = 0; + current = null; } }); } @@ -68,7 +65,7 @@ public class Saves{ SaveSlot current = this.current; if(current != null && !state.is(State.menu) - && !(state.isPaused() && ui.hasDialog())){ + && !(state.isPaused() && Core.scene.hasDialog())){ if(lastTimestamp != 0){ totalPlaytime += Time.timeSinceMillis(lastTimestamp); } @@ -145,7 +142,7 @@ public class Saves{ IntArray result = new IntArray(saves.size); for(int i = 0; i < saves.size; i++) result.add(saves.get(i).index); - Core.settings.putObject("save-slots", result); + Core.settings.put("save-slots", result); Core.settings.save(); } @@ -204,7 +201,7 @@ public class Saves{ } public void setName(String name){ - Core.settings.putString("save-" + index + "-name", name); + Core.settings.put("save-" + index + "-name", name); Core.settings.save(); } @@ -229,7 +226,7 @@ public class Saves{ } public void setAutosave(boolean save){ - Core.settings.putBool("save-" + index + "-autosave", save); + Core.settings.put("save-" + index + "-autosave", save); Core.settings.save(); } diff --git a/core/src/io/anuke/mindustry/game/Team.java b/core/src/io/anuke/mindustry/game/Team.java index dfbc4bd777..429e6e970a 100644 --- a/core/src/io/anuke/mindustry/game/Team.java +++ b/core/src/io/anuke/mindustry/game/Team.java @@ -1,7 +1,7 @@ package io.anuke.mindustry.game; +import io.anuke.arc.Core; import io.anuke.arc.graphics.Color; -import io.anuke.arc.util.Bundles; public enum Team{ none(Color.valueOf("4d4e58")), diff --git a/core/src/io/anuke/mindustry/game/Teams.java b/core/src/io/anuke/mindustry/game/Teams.java index 5ee10b289f..65ff687e76 100644 --- a/core/src/io/anuke/mindustry/game/Teams.java +++ b/core/src/io/anuke/mindustry/game/Teams.java @@ -5,9 +5,7 @@ import io.anuke.arc.collection.ObjectSet; import io.anuke.mindustry.Vars; import io.anuke.mindustry.world.Tile; -/** - * Class for various team-based utilities. - */ +/**Class for various team-based utilities.*/ public class Teams{ private TeamData[] map = new TeamData[Team.all.length]; diff --git a/core/src/io/anuke/mindustry/game/Unlocks.java b/core/src/io/anuke/mindustry/game/Unlocks.java index 0a0fedd795..61aeca7339 100644 --- a/core/src/io/anuke/mindustry/game/Unlocks.java +++ b/core/src/io/anuke/mindustry/game/Unlocks.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.game; +import io.anuke.arc.Core; import io.anuke.arc.collection.ObjectMap; import io.anuke.arc.collection.ObjectSet; import io.anuke.mindustry.game.EventType.UnlockEvent; @@ -12,7 +13,7 @@ public class Unlocks{ private ObjectMap> unlocked = new ObjectMap<>(); private boolean dirty; - static{ + public Unlocks(){ Core.settings.setSerializer(ContentType.class, (stream, t) -> stream.writeInt(t.ordinal()), stream -> ContentType.values()[stream.readInt()]); } diff --git a/core/src/io/anuke/mindustry/game/Version.java b/core/src/io/anuke/mindustry/game/Version.java index eed6b3ead2..276dd04354 100644 --- a/core/src/io/anuke/mindustry/game/Version.java +++ b/core/src/io/anuke/mindustry/game/Version.java @@ -1,10 +1,10 @@ package io.anuke.mindustry.game; import io.anuke.arc.Core; -import io.anuke.arc.files.FileHandle; import io.anuke.arc.collection.ObjectMap; -import io.anuke.arc.util.PropertiesUtils; +import io.anuke.arc.files.FileHandle; import io.anuke.arc.util.Strings; +import io.anuke.arc.util.io.PropertiesUtils; import java.io.IOException; diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index e7c32bdd98..a981ae3eff 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -12,7 +12,7 @@ import io.anuke.mindustry.world.Tile; import io.anuke.arc.Core; import io.anuke.arc.Events; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Surface; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/graphics/CacheLayer.java b/core/src/io/anuke/mindustry/graphics/CacheLayer.java index 9ff5b34d14..6723157a6d 100644 --- a/core/src/io/anuke/mindustry/graphics/CacheLayer.java +++ b/core/src/io/anuke/mindustry/graphics/CacheLayer.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.graphics; import io.anuke.arc.graphics.Color; import io.anuke.arc.Core; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Shader; import static io.anuke.mindustry.Vars.renderer; diff --git a/core/src/io/anuke/mindustry/graphics/FloorRenderer.java b/core/src/io/anuke/mindustry/graphics/FloorRenderer.java index 2a08753546..3e842cd677 100644 --- a/core/src/io/anuke/mindustry/graphics/FloorRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/FloorRenderer.java @@ -14,9 +14,9 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Floor; import io.anuke.arc.Events; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.graphics.CacheBatch; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.util.Log; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/graphics/FogRenderer.java b/core/src/io/anuke/mindustry/graphics/FogRenderer.java index e2c1534440..fde876450b 100644 --- a/core/src/io/anuke/mindustry/graphics/FogRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/FogRenderer.java @@ -16,7 +16,7 @@ import io.anuke.mindustry.world.Tile; import io.anuke.arc.Events; import io.anuke.arc.Graphics; import io.anuke.arc.entities.EntityDraw; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import java.nio.ByteBuffer; diff --git a/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java b/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java index 7fe6320c76..94d70d7694 100644 --- a/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java @@ -5,7 +5,7 @@ import io.anuke.arc.graphics.Pixmap; import io.anuke.arc.graphics.Pixmap.Format; import io.anuke.arc.graphics.Texture; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.collection.Array; import io.anuke.arc.util.Disposable; import io.anuke.mindustry.entities.Unit; @@ -16,7 +16,7 @@ import io.anuke.mindustry.world.ColorMapper; import io.anuke.mindustry.world.Tile; import io.anuke.arc.Events; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Pixmaps; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.ThreadArray; diff --git a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java index 0b5f2f88a3..2dbef04dfd 100644 --- a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.graphics; import io.anuke.arc.graphics.Color; import io.anuke.arc.math.MathUtils; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.Vector2; import io.anuke.arc.collection.Array; import io.anuke.mindustry.content.blocks.Blocks; @@ -16,10 +16,10 @@ import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.arc.Core; import io.anuke.arc.Graphics; import io.anuke.arc.Settings; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Tmp; @@ -101,8 +101,8 @@ public class OverlayRenderer{ Draw.reset(); //draw selected block bars and info - if(input.recipe == null && !ui.hasMouse()){ - Vector2 vec = Graphics.world(input.getMouseX(), input.getMouseY()); + if(input.recipe == null && !Core.scene.hasMouse()){ + Vector2 vec = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); Tile tile = world.tileWorld(vec.x, vec.y); if(tile != null && tile.block() != Blocks.air && tile.target().getTeam() == players[0].getTeam()){ @@ -181,7 +181,7 @@ public class OverlayRenderer{ } if(input.isDroppingItem()){ - Vector2 v = Graphics.world(input.getMouseX(), input.getMouseY()); + Vector2 v = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); float size = 8; Draw.rect(player.inventory.getItem().item.region, v.x, v.y, size, size); Draw.color(Palette.accent); diff --git a/core/src/io/anuke/mindustry/graphics/Shaders.java b/core/src/io/anuke/mindustry/graphics/Shaders.java index dda1c86dc8..e90879c5a7 100644 --- a/core/src/io/anuke/mindustry/graphics/Shaders.java +++ b/core/src/io/anuke/mindustry/graphics/Shaders.java @@ -4,8 +4,8 @@ import io.anuke.arc.Core; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.arc.Core; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Shader; import io.anuke.arc.scene.ui.layout.Unit; diff --git a/core/src/io/anuke/mindustry/graphics/Trail.java b/core/src/io/anuke/mindustry/graphics/Trail.java index f44fcbec9a..4356ab2306 100644 --- a/core/src/io/anuke/mindustry/graphics/Trail.java +++ b/core/src/io/anuke/mindustry/graphics/Trail.java @@ -3,10 +3,10 @@ package io.anuke.mindustry.graphics; import io.anuke.arc.graphics.Color; import io.anuke.arc.math.Vector2; import io.anuke.arc.util.FloatArray; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; /** diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 3bb6585cbd..3a4d8a8baa 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -1,7 +1,14 @@ package io.anuke.mindustry.input; import io.anuke.arc.Core; +import io.anuke.arc.Graphics; +import io.anuke.arc.KeyBinds; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.g2d.TextureRegion; +import io.anuke.arc.input.InputDevice.DeviceType; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.scene.ui.layout.Unit; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; @@ -11,15 +18,6 @@ import io.anuke.mindustry.input.PlaceUtils.NormalizeResult; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Graphics; -import io.anuke.arc.Inputs; -import io.anuke.arc.Core.input.DeviceType; -import io.anuke.arc.KeyBinds; -import io.anuke.arc.Settings; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; -import io.anuke.arc.scene.ui.layout.Unit; -import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.input.CursorType.*; @@ -54,7 +52,7 @@ public class DesktopInput extends InputHandler{ for(TextureRegion region : regions){ Draw.rect(region, x * tilesize + block.offset(), y * tilesize + block.offset(), - region.getRegionWidth() * selectScale, region.getRegionHeight() * selectScale, block.rotate ? rotation * 90 : 0); + region.getWidth() * selectScale, region.getHeight() * selectScale, block.rotate ? rotation * 90 : 0); } }else{ Draw.color(Palette.removeBack); @@ -71,16 +69,16 @@ public class DesktopInput extends InputHandler{ @Override public void drawOutlined(){ - int cursorX = tileX(Core.input.getX()); - int cursorY = tileY(Core.input.getY()); + int cursorX = tileX(Core.input.mouseX()); + int cursorY = tileY(Core.input.mouseY()); //draw selection(s) if(mode == placing && recipe != null){ NormalizeResult result = PlaceUtils.normalizeArea(selectX, selectY, cursorX, cursorY, rotation, true, maxLength); for(int i = 0; i <= result.getLength(); i += recipe.result.size){ - int x = selectX + i * Mathf.sign(cursorX - selectX) * Mathf.bool(result.isX()); - int y = selectY + i * Mathf.sign(cursorY - selectY) * Mathf.bool(!result.isX()); + int x = selectX + i * Mathf.sign(cursorX - selectX) * Mathf.num(result.isX()); + int y = selectY + i * Mathf.sign(cursorY - selectY) * Mathf.num(!result.isX()); if(i + recipe.result.size > result.getLength() && recipe.result.rotate){ Draw.color(!validPlace(x, y, recipe.result, result.rotation) ? Palette.remove : Palette.placeRotate); @@ -128,24 +126,22 @@ public class DesktopInput extends InputHandler{ @Override public void update(){ - if(Net.active() && Core.input.keyTap("player_list")){ + if(Net.active() && Core.input.keyTap(Binding.player_list)){ ui.listfrag.toggle(); } - if(Core.input.keyRelease(section, "select")){ + if(Core.input.keyRelease(Binding.select)){ player.isShooting = false; } - if(state.is(State.menu) || ui.hasDialog()) return; - - boolean controller = KeyBinds.getSection(section).device.type == DeviceType.controller; + if(state.is(State.menu) || Core.scene.hasDialog()) return; //zoom and rotate things - if(Core.input.getAxisActive("zoom") && (Core.input.keyDown(section, "zoom_hold") || controller)){ - renderer.scaleCamera((int) Core.input.getAxisTapped(section, "zoom")); + if(Math.abs(Core.input.axis(Binding.zoom)) > 0 && (Core.input.keyDown(Binding.zoom_hold))){ + renderer.scaleCamera((int) Core.input.axis(Binding.zoom)); } - renderer.minimap.zoomBy(-(int) Core.input.getAxisTapped(section, "zoom_minimap")); + renderer.minimap.zoomBy(-(int) Core.input.axis(Binding.zoom_minimap)); if(player.isDead()) return; @@ -167,9 +163,9 @@ public class DesktopInput extends InputHandler{ selectScale = 0f; } - rotation = Mathf.mod(rotation + (int) Core.input.getAxisTapped(section, "rotate"), 4); + rotation = Mathf.mod(rotation + (int) Core.input.axis(Binding.rotate), 4); - Tile cursor = tileAt(Core.input.getX(), Core.input.getY()); + Tile cursor = tileAt(Core.input.mouseX(), Core.input.mouseY()); if(player.isDead()){ cursorType = normal; @@ -186,12 +182,12 @@ public class DesktopInput extends InputHandler{ cursorType = drill; } - if(canTapPlayer(Graphics.mouseWorld().x, Graphics.mouseWorld().y)){ + if(canTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y)){ cursorType = unload; } } - if(!ui.hasMouse()){ + if(!Core.scene.hasMouse()){ cursorType.set(); } @@ -199,52 +195,52 @@ public class DesktopInput extends InputHandler{ } void pollInput(){ - Tile selected = tileAt(Core.input.getX(), Core.input.getY()); - int cursorX = tileX(Core.input.getX()); - int cursorY = tileY(Core.input.getY()); + Tile selected = tileAt(Core.input.mouseX(), Core.input.mouseY()); + int cursorX = tileX(Core.input.mouseX()); + int cursorY = tileY(Core.input.mouseY()); - if(Core.input.keyTap(section, "deselect")){ + if(Core.input.keyTap(Binding.deselect)){ player.setMineTile(null); } - if(Core.input.keyTap(section, "select") && !ui.hasMouse()){ + if(Core.input.keyTap(Binding.select) && !Core.scene.hasMouse()){ if(isPlacing()){ selectX = cursorX; selectY = cursorY; mode = placing; }else if(selected != null){ //only begin shooting if there's no cursor event - if (!tileTapped(selected) && !tryTapPlayer(Graphics.mouseWorld().x, Graphics.mouseWorld().y) && player.getPlaceQueue().size == 0 && !droppingItem && + if (!tileTapped(selected) && !tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && player.getPlaceQueue().size == 0 && !droppingItem && !tryBeginMine(selected) && player.getMineTile() == null && !ui.chatfrag.chatOpen()) { player.isShooting = true; } }else if(!ui.chatfrag.chatOpen()){ //if it's out of bounds, shooting is just fine player.isShooting = true; } - }else if(Core.input.keyTap(section, "deselect") && (recipe != null || mode != none || player.isBuilding()) && - !(player.getCurrentRequest() != null && player.getCurrentRequest().breaking && KeyBinds.get(section, "deselect") == KeyBinds.get(section, "break"))){ + }else if(Core.input.keyTap(Binding.deselect) && (recipe != null || mode != none || player.isBuilding()) && + !(player.getCurrentRequest() != null && player.getCurrentRequest().breaking && Core.keybinds.get(Binding.deselect) == Core.keybinds.get(Binding.break_block))){ if(recipe == null){ player.clearBuilding(); } recipe = null; mode = none; - }else if(Core.input.keyTap(section, "break") && !ui.hasMouse()){ + }else if(Core.input.keyTap(Binding.break_block) && !Core.scene.hasMouse()){ //is recalculated because setting the mode to breaking removes potential multiblock cursor offset mode = breaking; - selectX = tileX(Core.input.getX()); - selectY = tileY(Core.input.getY()); + selectX = tileX(Core.input.mouseX()); + selectY = tileY(Core.input.mouseY()); } - if(Core.input.keyRelease(section, "break") || Core.input.keyRelease(section, "select")){ + if(Core.input.keyRelease(Binding.break_block) || Core.input.keyRelease(Binding.select)){ if(mode == placing){ //touch up while placing, place everything in selection NormalizeResult result = PlaceUtils.normalizeArea(selectX, selectY, cursorX, cursorY, rotation, true, maxLength); for(int i = 0; i <= result.getLength(); i += recipe.result.size){ - int x = selectX + i * Mathf.sign(cursorX - selectX) * Mathf.bool(result.isX()); - int y = selectY + i * Mathf.sign(cursorY - selectY) * Mathf.bool(!result.isX()); + int x = selectX + i * Mathf.sign(cursorX - selectX) * Mathf.num(result.isX()); + int y = selectY + i * Mathf.sign(cursorY - selectY) * Mathf.num(!result.isX()); rotation = result.rotation; @@ -263,7 +259,7 @@ public class DesktopInput extends InputHandler{ } if(selected != null){ - tryDropItems(selected.target(), Graphics.mouseWorld().x, Graphics.mouseWorld().y); + tryDropItems(selected.target(), Core.input.mouseWorld().x, Core.input.mouseWorld().y); } mode = none; @@ -278,12 +274,12 @@ public class DesktopInput extends InputHandler{ @Override public float getMouseX(){ - return !controlling ? Core.input.getX() : controlx; + return !controlling ? Core.input.mouseX() : controlx; } @Override public float getMouseY(){ - return !controlling ? Core.input.getY() : controly; + return !controlling ? Core.input.mouseY() : controly; } @Override @@ -293,46 +289,10 @@ public class DesktopInput extends InputHandler{ @Override public void updateController(){ - //TODO no controller support - //TODO move controller input to new class, ControllerInput - boolean mousemove = Core.input.getDeltaX() > 1 || Core.input.getDeltaY() > 1; if(state.is(State.menu)){ droppingItem = false; } - - if(KeyBinds.getSection(section).device.type == DeviceType.controller && (!mousemove || player.playerIndex > 0)){ - if(player.playerIndex > 0){ - controlling = true; - } - - float xa = Core.input.getAxis(section, "cursor_x"); - float ya = Core.input.getAxis(section, "cursor_y"); - - if(Math.abs(xa) > controllerMin || Math.abs(ya) > controllerMin){ - float scl = Core.settings.getInt("sensitivity", 100) / 100f * Unit.dp.scl(1f); - controlx += xa * baseControllerSpeed * scl; - controly -= ya * baseControllerSpeed * scl; - controlling = true; - - if(player.playerIndex == 0){ - Core.input.setCursorCatched(true); - } - - Core.input.getProcessor().touchDragged((int) getMouseX(), (int) getMouseY(), player.playerIndex); - } - - controlx = Mathf.clamp(controlx, 0, Core.graphics.getWidth()); - controly = Mathf.clamp(controly, 0, Core.graphics.getHeight()); - }else{ - controlling = false; - Core.input.setCursorCatched(false); - } - - if(!controlling){ - controlx = Core.input.getX(); - controly = Core.input.getY(); - } } } diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 861de66305..f2ae87956c 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -125,11 +125,11 @@ public abstract class InputHandler implements InputProcessor{ } public float getMouseX(){ - return Core.input.getX(); + return Core.input.mouseX(); } public float getMouseY(){ - return Core.input.getY(); + return Core.input.mouseY(); } public void resetCursor(){ @@ -240,7 +240,7 @@ public abstract class InputHandler implements InputProcessor{ } boolean canMine(Tile tile){ - return !ui.hasMouse() + return !Core.scene.hasMouse() && tile.floor().drops != null && tile.floor().drops.item.hardness <= player.mech.drillPower && !tile.floor().playerUnmineable && player.inventory.canAcceptItem(tile.floor().drops.item) @@ -253,7 +253,7 @@ public abstract class InputHandler implements InputProcessor{ } int tileX(float cursorX){ - Vector2 vec = Graphics.world(cursorX, 0); + Vector2 vec = Core.input.mouseWorld(cursorX, 0); if(selectedBlock()){ vec.sub(recipe.result.offset(), recipe.result.offset()); } @@ -261,7 +261,7 @@ public abstract class InputHandler implements InputProcessor{ } int tileY(float cursorY){ - Vector2 vec = Graphics.world(0, cursorY); + Vector2 vec = Core.input.mouseWorld(0, cursorY); if(selectedBlock()){ vec.sub(recipe.result.offset(), recipe.result.offset()); } @@ -277,7 +277,7 @@ public abstract class InputHandler implements InputProcessor{ } public float mouseAngle(float x, float y){ - return Graphics.world(getMouseX(), getMouseY()).sub(x, y).angle(); + return Core.input.mouseWorld(getMouseX(), getMouseY()).sub(x, y).angle(); } public void remove(){ @@ -286,7 +286,7 @@ public abstract class InputHandler implements InputProcessor{ } public boolean canShoot(){ - return recipe == null && !ui.hasMouse() && !onConfigurable() && !isDroppingItem(); + return recipe == null && !Core.scene.hasMouse() && !onConfigurable() && !isDroppingItem(); } public boolean onConfigurable(){ diff --git a/core/src/io/anuke/mindustry/input/MobileInput.java b/core/src/io/anuke/mindustry/input/MobileInput.java index 9fceb82590..9c2b524190 100644 --- a/core/src/io/anuke/mindustry/input/MobileInput.java +++ b/core/src/io/anuke/mindustry/input/MobileInput.java @@ -6,7 +6,7 @@ import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.arc.input.GestureDetector; import io.anuke.arc.input.GestureDetector.GestureListener; import io.anuke.arc.math.Interpolation; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.Vector2; import io.anuke.arc.util.Align; import io.anuke.arc.collection.Array; @@ -28,8 +28,8 @@ import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.arc.*; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.math.Mathf; @@ -176,7 +176,7 @@ public class MobileInput extends InputHandler implements GestureListener{ for(TextureRegion region : regions){ Draw.rect(region, tile.worldx() + offset, tile.worldy() + offset, - region.getRegionWidth() * request.scale, region.getRegionHeight() * request.scale, + region.getWidth() * request.scale, region.getHeight() * request.scale, request.recipe.result.rotate ? request.rotation * 90 : 0); } }else{ @@ -321,8 +321,8 @@ public class MobileInput extends InputHandler implements GestureListener{ //Draw lines if(lineMode){ - int tileX = tileX(Core.input.getX()); - int tileY = tileY(Core.input.getY()); + int tileX = tileX(Core.input.mouseX()); + int tileY = tileY(Core.input.mouseY()); //draw placing if(mode == placing && recipe != null){ @@ -344,7 +344,7 @@ public class MobileInput extends InputHandler implements GestureListener{ for(TextureRegion region : regions){ Draw.rect(region, x * tilesize + recipe.result.offset(), y * tilesize + recipe.result.offset(), - region.getRegionWidth() * lineScale, region.getRegionHeight() * lineScale, recipe.result.rotate ? result.rotation * 90 : 0); + region.getWidth() * lineScale, region.getHeight() * lineScale, recipe.result.rotate ? result.rotation * 90 : 0); } }else{ Draw.color(Palette.removeBack); @@ -415,7 +415,7 @@ public class MobileInput extends InputHandler implements GestureListener{ //get tile on cursor Tile cursor = tileAt(screenX, screenY); - float worldx = Graphics.world(screenX, screenY).x, worldy = Graphics.world(screenX, screenY).y; + float worldx = Core.input.mouseWorld(screenX, screenY).x, worldy = Core.input.mouseWorld(screenX, screenY).y; //ignore off-screen taps if(cursor == null || ui.hasMouse(screenX, screenY)) return false; @@ -492,7 +492,7 @@ public class MobileInput extends InputHandler implements GestureListener{ if(tile == null) return false; - tryDropItems(tile.target(), Graphics.world(screenX, screenY).x, Graphics.world(screenX, screenY).y); + tryDropItems(tile.target(), Core.input.mouseWorld(screenX, screenY).x, Core.input.mouseWorld(screenX, screenY).y); } return false; } @@ -526,7 +526,7 @@ public class MobileInput extends InputHandler implements GestureListener{ public boolean tap(float x, float y, int count, int button){ if(state.is(State.menu) || lineMode) return false; - float worldx = Graphics.world(x, y).x, worldy = Graphics.world(x, y).y; + float worldx = Core.input.mouseWorld(x, y).x, worldy = Core.input.mouseWorld(x, y).y; //get tile on cursor Tile cursor = tileAt(x, y); @@ -554,7 +554,7 @@ public class MobileInput extends InputHandler implements GestureListener{ consumed = true; player.dropCarry(); //drop off unit }else{ - Unit unit = Units.getClosest(player.getTeam(), Graphics.world(x, y).x, Graphics.world(x, y).y, 4f, u -> !u.isFlying() && u.getMass() <= player.mech.carryWeight); + Unit unit = Units.getClosest(player.getTeam(), Core.input.mouseWorld(x, y).x, Core.input.mouseWorld(x, y).y, 4f, u -> !u.isFlying() && u.getMass() <= player.mech.carryWeight); if(unit != null){ consumed = true; @@ -714,7 +714,7 @@ public class MobileInput extends InputHandler implements GestureListener{ @Override public boolean touchDown(float x, float y, int pointer, int button){ - canPan = !ui.hasMouse(); + canPan = !Core.scene.hasMouse(); return false; } diff --git a/core/src/io/anuke/mindustry/io/BundleLoader.java b/core/src/io/anuke/mindustry/io/BundleLoader.java index ebc6e3bccf..0e0e15de09 100644 --- a/core/src/io/anuke/mindustry/io/BundleLoader.java +++ b/core/src/io/anuke/mindustry/io/BundleLoader.java @@ -4,7 +4,7 @@ import io.anuke.arc.Core; import io.anuke.arc.files.FileHandle; import io.anuke.arc.util.I18NBundle; import io.anuke.mindustry.Vars; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.util.Log; import java.util.Locale; diff --git a/core/src/io/anuke/mindustry/io/TypeIO.java b/core/src/io/anuke/mindustry/io/TypeIO.java index dbf53b8065..d2bcbb1270 100644 --- a/core/src/io/anuke/mindustry/io/TypeIO.java +++ b/core/src/io/anuke/mindustry/io/TypeIO.java @@ -20,7 +20,7 @@ import io.anuke.mindustry.type.*; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Pos; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; import io.anuke.arc.entities.Entities; diff --git a/core/src/io/anuke/mindustry/maps/missions/BlockLocMission.java b/core/src/io/anuke/mindustry/maps/missions/BlockLocMission.java index 0da3c5c9d8..5e19165e15 100644 --- a/core/src/io/anuke/mindustry/maps/missions/BlockLocMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/BlockLocMission.java @@ -2,9 +2,9 @@ package io.anuke.mindustry.maps.missions; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Block; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.util.Bundles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/maps/missions/Mission.java b/core/src/io/anuke/mindustry/maps/missions/Mission.java index 54c8cbcd27..cc56926a89 100644 --- a/core/src/io/anuke/mindustry/maps/missions/Mission.java +++ b/core/src/io/anuke/mindustry/maps/missions/Mission.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.game.SpawnGroup; import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.maps.Sector; import io.anuke.mindustry.maps.generation.Generation; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.util.Bundles; diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java index bbb02c2e8a..cd542dee8d 100644 --- a/core/src/io/anuke/mindustry/net/Net.java +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -4,22 +4,21 @@ import io.anuke.arc.Core; import io.anuke.arc.Net.HttpRequest; import io.anuke.arc.Net.HttpResponse; import io.anuke.arc.Net.HttpResponseListener; -import io.anuke.arc.net.HttpRequestBuilder; import io.anuke.arc.collection.Array; -import io.anuke.arc.util.IntMap; +import io.anuke.arc.collection.IntMap; import io.anuke.arc.collection.ObjectMap; +import io.anuke.arc.function.BiConsumer; +import io.anuke.arc.function.Consumer; +import io.anuke.arc.net.HttpRequestBuilder; +import io.anuke.arc.util.Log; +import io.anuke.arc.util.Time; +import io.anuke.arc.util.pooling.Pools; import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.net.Packets.KickReason; import io.anuke.mindustry.net.Packets.StreamBegin; import io.anuke.mindustry.net.Packets.StreamChunk; import io.anuke.mindustry.net.Streamable.StreamBuilder; -import io.anuke.arc.Timers; -import io.anuke.arc.function.BiConsumer; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.util.Bundles; -import io.anuke.arc.util.Log; -import io.anuke.arc.util.Pooling; import java.io.IOException; @@ -262,12 +261,12 @@ public class Net{ if(clientLoaded || ((object instanceof Packet) && ((Packet) object).isImportant())){ if(clientListeners.get(object.getClass()) != null) clientListeners.get(object.getClass()).accept(object); - Pooling.free(object); + Pools.free(object); }else if(!((object instanceof Packet) && ((Packet) object).isUnimportant())){ packetQueue.add(object); Log.info("Queuing packet {0}", object); }else{ - Pooling.free(object); + Pools.free(object); } }else{ Log.err("Unhandled packet type: '{0}'!", object); @@ -282,7 +281,7 @@ public class Net{ if(serverListeners.get(object.getClass()) != null){ if(serverListeners.get(object.getClass()) != null) serverListeners.get(object.getClass()).accept(connection, object); - Pooling.free(object); + Pools.free(object); }else{ Log.err("Unhandled packet type: '{0}'!", object.getClass()); } diff --git a/core/src/io/anuke/mindustry/net/NetworkIO.java b/core/src/io/anuke/mindustry/net/NetworkIO.java index e10226d2ac..0ea805bcb6 100644 --- a/core/src/io/anuke/mindustry/net/NetworkIO.java +++ b/core/src/io/anuke/mindustry/net/NetworkIO.java @@ -15,7 +15,7 @@ import io.anuke.mindustry.maps.MapMeta; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.BlockPart; import io.anuke.arc.Core; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.entities.Entities; import io.anuke.arc.util.Bits; diff --git a/core/src/io/anuke/mindustry/type/Item.java b/core/src/io/anuke/mindustry/type/Item.java index 3e90f28c46..77ed6e92dd 100644 --- a/core/src/io/anuke/mindustry/type/Item.java +++ b/core/src/io/anuke/mindustry/type/Item.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.ui.ContentDisplay; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.util.Bundles; import io.anuke.arc.util.Log; diff --git a/core/src/io/anuke/mindustry/type/Liquid.java b/core/src/io/anuke/mindustry/type/Liquid.java index d937f9f40a..e462cf0563 100644 --- a/core/src/io/anuke/mindustry/type/Liquid.java +++ b/core/src/io/anuke/mindustry/type/Liquid.java @@ -5,7 +5,7 @@ import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.content.StatusEffects; import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.ui.ContentDisplay; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.util.Bundles; diff --git a/core/src/io/anuke/mindustry/type/Mech.java b/core/src/io/anuke/mindustry/type/Mech.java index 10b777d437..e7bb604f53 100644 --- a/core/src/io/anuke/mindustry/type/Mech.java +++ b/core/src/io/anuke/mindustry/type/Mech.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.ui.ContentDisplay; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.util.Bundles; diff --git a/core/src/io/anuke/mindustry/type/Weapon.java b/core/src/io/anuke/mindustry/type/Weapon.java index a6b0dedaba..1c4aa78ffe 100644 --- a/core/src/io/anuke/mindustry/type/Weapon.java +++ b/core/src/io/anuke/mindustry/type/Weapon.java @@ -11,13 +11,13 @@ import io.anuke.mindustry.entities.traits.ShooterTrait; import io.anuke.mindustry.game.Content; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.net.Net; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.util.Angles; import io.anuke.arc.util.Log; import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Translator; +import io.anuke.arc.util.Vector2; public class Weapon extends Content{ public final String name; @@ -49,7 +49,7 @@ public class Weapon extends Content{ /**whether to shoot the weapons in different arms one after another, rather than all at once*/ protected boolean roundrobin = false; /**translator for vector calulations*/ - protected Translator tr = new Translator(); + protected Vector2 tr = new Vector2(); public TextureRegion equipRegion, region; diff --git a/core/src/io/anuke/mindustry/ui/BorderImage.java b/core/src/io/anuke/mindustry/ui/BorderImage.java index e03b40887f..9738bc83dd 100644 --- a/core/src/io/anuke/mindustry/ui/BorderImage.java +++ b/core/src/io/anuke/mindustry/ui/BorderImage.java @@ -4,8 +4,8 @@ import io.anuke.arc.graphics.Texture; import io.anuke.arc.graphics.g2d.Batch; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.graphics.Palette; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.scene.ui.Image; import io.anuke.arc.scene.ui.layout.Unit; diff --git a/core/src/io/anuke/mindustry/ui/ContentDisplay.java b/core/src/io/anuke/mindustry/ui/ContentDisplay.java index 8e1e2c367e..62b9d3fe39 100644 --- a/core/src/io/anuke/mindustry/ui/ContentDisplay.java +++ b/core/src/io/anuke/mindustry/ui/ContentDisplay.java @@ -13,7 +13,7 @@ import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.BlockStats; import io.anuke.mindustry.world.meta.StatCategory; import io.anuke.mindustry.world.meta.StatValue; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.util.Bundles; import io.anuke.arc.util.Strings; diff --git a/core/src/io/anuke/mindustry/ui/GridImage.java b/core/src/io/anuke/mindustry/ui/GridImage.java index c18aa1d878..2f5260635e 100644 --- a/core/src/io/anuke/mindustry/ui/GridImage.java +++ b/core/src/io/anuke/mindustry/ui/GridImage.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.ui; import io.anuke.arc.graphics.g2d.Batch; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.Element; public class GridImage extends Element{ diff --git a/core/src/io/anuke/mindustry/ui/Minimap.java b/core/src/io/anuke/mindustry/ui/Minimap.java index 7041bb8166..354cb5b031 100644 --- a/core/src/io/anuke/mindustry/ui/Minimap.java +++ b/core/src/io/anuke/mindustry/ui/Minimap.java @@ -5,7 +5,7 @@ import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.graphics.Shaders; import io.anuke.arc.Core; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.Element; import io.anuke.arc.scene.event.InputEvent; import io.anuke.arc.scene.event.InputListener; @@ -32,7 +32,7 @@ public class Minimap extends Container{ if(showFog){ renderer.fog.getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest); - r.setRegion(renderer.minimap.getRegion()); + r.set(renderer.minimap.getRegion()); float pad = renderer.fog.getPadding(); float px = r.getU() * world.width() + pad; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/AboutDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/AboutDialog.java index b30a5d471f..f9fd75efd7 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/AboutDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/AboutDialog.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.io.Contributors.Contributor; import io.anuke.mindustry.ui.Links; import io.anuke.mindustry.ui.Links.LinkEntry; import io.anuke.arc.Core; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.ui.ScrollPane; import io.anuke.arc.scene.ui.layout.Cell; import io.anuke.arc.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java index 3025098378..ee8102f6c8 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java @@ -7,7 +7,7 @@ import io.anuke.arc.util.Align; import io.anuke.arc.collection.Array; import io.anuke.mindustry.Vars; import io.anuke.mindustry.core.Platform; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.function.Consumer; import io.anuke.arc.function.Predicate; import io.anuke.arc.scene.event.Touchable; @@ -178,7 +178,7 @@ public class FileChooser extends FloatingDialog{ //if is mac, don't display extra info since you can only ever go to downloads navigation.setText(OS.isMac ? directory.name() : directory.toString()); - GlyphLayout layout = Pooling.obtain(GlyphLayout.class, GlyphLayout::new); + GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); layout.setText(Core.font, navigation.getText()); @@ -188,7 +188,7 @@ public class FileChooser extends FloatingDialog{ navigation.setCursorPosition(navigation.getText().length()); } - Pooling.free(layout); + Pools.free(layout); files.clearChildren(); files.top().left(); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/GenViewDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/GenViewDialog.java index 9af57b617f..c20e6ce973 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/GenViewDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/GenViewDialog.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.game.Team; import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.ColorMapper; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.Element; import io.anuke.arc.scene.event.InputEvent; import io.anuke.arc.scene.event.InputListener; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java index aea61b38c6..f81476609a 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java @@ -5,7 +5,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.net.Net; import io.anuke.arc.Settings; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.ui.ImageButton; import io.anuke.arc.util.Bundles; import io.anuke.arc.util.Strings; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java index c5cbce9599..a1f7fc352c 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.game.Version; import io.anuke.mindustry.net.Host; import io.anuke.mindustry.net.Net; import io.anuke.arc.Settings; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.style.Drawable; import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.layout.Cell; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java index d7a04f9e78..b85d616b0a 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java @@ -9,7 +9,7 @@ import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.game.Saves.SaveSlot; import io.anuke.arc.Core; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.ui.ScrollPane; import io.anuke.arc.scene.ui.TextButton; import io.anuke.arc.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LocalPlayerDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LocalPlayerDialog.java index 95a2128c47..657aefb6d8 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LocalPlayerDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LocalPlayerDialog.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.ui.dialogs; import io.anuke.arc.util.Scaling; import io.anuke.mindustry.entities.Player; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.Image; import io.anuke.arc.scene.ui.layout.Stack; import io.anuke.arc.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java index 9a6c9e745a..8466370d85 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.ui.dialogs; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.game.Saves.SaveSlot; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.ui.TextButton; import io.anuke.arc.util.Bundles; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java index b9ef625a92..ac932f6c70 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java @@ -9,7 +9,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.maps.Sector; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.Element; import io.anuke.arc.scene.Group; import io.anuke.arc.scene.event.InputEvent; diff --git a/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java index c6ad183518..b406245287 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.arc.Core; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.scene.Group; import io.anuke.arc.scene.ui.layout.Unit; @@ -30,8 +30,8 @@ public class BackgroundFragment extends Fragment{ boolean portrait = Core.graphics.getWidth() < Core.graphics.getHeight(); float logoscl = (int) Unit.dp.scl(7) * (portrait ? 5f / 7f : 1f); TextureRegion logo = Core.skin.getRegion("logotext"); - float logow = logo.getRegionWidth() * logoscl; - float logoh = logo.getRegionHeight() * logoscl; + float logow = logo.getWidth() * logoscl; + float logoh = logo.getHeight() * logoscl; Draw.color(); Core.batch.draw(logo, (int) (w / 2 - logow / 2), (int) (h - logoh + 15 - Unit.dp.scl(portrait ? 30f : 0)), logow, logoh); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockConfigFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockConfigFragment.java index 51ca195c29..72a001432e 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockConfigFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockConfigFragment.java @@ -74,7 +74,7 @@ public class BlockConfigFragment extends Fragment{ } public boolean hasConfigMouse(){ - Element e = Core.scene.hit(Core.input.getX(), Core.graphics.getHeight() - Core.input.getY(), true); + Element e = Core.scene.hit(Core.input.mouseX(), Core.graphics.getHeight() - Core.input.mouseY(), true); return e != null && (e == table || e.isDescendantOf(table)); } diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockConsumeFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockConsumeFragment.java index 93d1558aa0..a8050c7d14 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockConsumeFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockConsumeFragment.java @@ -30,8 +30,8 @@ public class BlockConsumeFragment extends Fragment{ table.setTransform(true); parent.addChild(new Element(){{update(() -> { - if(!ui.hasMouse()){ - Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y); + if(!Core.scene.hasMouse()){ + Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); if(tile == null) return; tile = tile.target(); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java index 660a523e01..d1e60057d0 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java @@ -14,7 +14,7 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.ui.ItemImage; import io.anuke.mindustry.world.Tile; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.function.BooleanProvider; import io.anuke.arc.scene.Group; import io.anuke.arc.scene.actions.Actions; diff --git a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java index a4b9335560..d8c40530c5 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java @@ -13,7 +13,7 @@ import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.net.Net; import io.anuke.arc.Inputs; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.scene.Group; import io.anuke.arc.scene.ui.Dialog; import io.anuke.arc.scene.ui.Label; diff --git a/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java b/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java index c6e95f1049..5958ed0344 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java @@ -76,7 +76,7 @@ public class PlacementFragment extends Fragment{ } return true; }else if(Core.input.keyDown("select")){ //mouse eyedropper select - Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y); + Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); if(tile != null){ tile = tile.target(); @@ -257,8 +257,8 @@ public class PlacementFragment extends Fragment{ Vector2 v = topTable.stageToLocalCoordinates(Graphics.mouse()); //setup hovering tile - if(!ui.hasMouse() && topTable.hit(v.x, v.y, false) == null){ - Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y); + if(!Core.scene.hasMouse() && topTable.hit(v.x, v.y, false) == null){ + Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); if(tile != null){ hoverTile = tile.target(); }else{ diff --git a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java index 4eef86bf22..2413981b2c 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java @@ -9,8 +9,8 @@ import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.NetConnection; import io.anuke.mindustry.net.Packets.AdminAction; import io.anuke.arc.Core; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.scene.Group; import io.anuke.arc.scene.event.Touchable; import io.anuke.arc.scene.ui.Image; diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 211366df94..7f05f15fa2 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -5,9 +5,9 @@ import io.anuke.arc.collection.Array; import io.anuke.arc.collection.EnumSet; import io.anuke.arc.collection.IntArray; import io.anuke.arc.graphics.Color; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Hue; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.arc.math.Mathf; import io.anuke.arc.scene.ui.layout.Table; @@ -105,7 +105,6 @@ public class Block extends BaseBlock { public boolean canOverdrive = true; protected Array tempTiles = new Array<>(); - protected Color tempColor = new Color(); protected TextureRegion[] blockIcon; protected TextureRegion[] icon; protected TextureRegion[] compactIcon; @@ -378,8 +377,6 @@ public class Block extends BaseBlock { float explosiveness = baseExplosiveness; float flammability = 0f; float power = 0f; - int units = 1; - tempColor.set(Palette.darkFlame); if(hasItems){ float scaling = inventoryScaling(tile); @@ -387,11 +384,6 @@ public class Block extends BaseBlock { int amount = tile.entity.items.get(item); explosiveness += item.explosiveness * amount * scaling; flammability += item.flammability * amount * scaling; - - if(item.flammability * amount > 0.5){ - units++; - Hue.addu(tempColor, item.flameColor); - } } } @@ -404,8 +396,6 @@ public class Block extends BaseBlock { power += tile.entity.power.amount; } - tempColor.mul(1f / units); - if(hasLiquids){ tile.entity.liquids.forEach((liquid, amount) -> { @@ -422,7 +412,7 @@ public class Block extends BaseBlock { }); } - Damage.dynamicExplosion(x, y, flammability, explosiveness, power, tilesize * size / 2f, tempColor); + Damage.dynamicExplosion(x, y, flammability, explosiveness, power, tilesize * size / 2f, Palette.darkFlame); if(!tile.floor().solid && !tile.floor().isLiquid){ RubbleDecal.create(tile.drawx(), tile.drawy(), size); } @@ -505,8 +495,8 @@ public class Block extends BaseBlock { /** Crops a regionto 8x8 */ protected TextureRegion iconRegion(TextureRegion src){ TextureRegion region = new TextureRegion(src); - region.setRegionWidth(8); - region.setRegionHeight(8); + region.setWidth(8); + region.setHeight(8); return region; } @@ -531,7 +521,7 @@ public class Block extends BaseBlock { /** Offset for placing and drawing multiblocks. */ public float offset(){ - return ((size + 1) % 2) * tilesize / 2; + return ((size + 1) % 2) * tilesize / 2f; } public boolean isMultiblock(){ diff --git a/core/src/io/anuke/mindustry/world/Build.java b/core/src/io/anuke/mindustry/world/Build.java index 5aebf6c2b6..ba25644724 100644 --- a/core/src/io/anuke/mindustry/world/Build.java +++ b/core/src/io/anuke/mindustry/world/Build.java @@ -1,7 +1,7 @@ package io.anuke.mindustry.world; import io.anuke.arc.math.GridPoint2; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.Vector2; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.entities.Units; diff --git a/core/src/io/anuke/mindustry/world/ItemBuffer.java b/core/src/io/anuke/mindustry/world/ItemBuffer.java index 31fb5e96b8..444ffdab73 100644 --- a/core/src/io/anuke/mindustry/world/ItemBuffer.java +++ b/core/src/io/anuke/mindustry/world/ItemBuffer.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world; import io.anuke.arc.util.NumberUtils; import io.anuke.mindustry.type.Item; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.util.Bits; import static io.anuke.mindustry.Vars.*; diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index 5bd515f05f..bc63ae4028 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -1,8 +1,13 @@ package io.anuke.mindustry.world.blocks; -import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.annotations.Annotations.Loc; import io.anuke.annotations.Annotations.Remote; +import io.anuke.arc.Core; +import io.anuke.arc.Graphics; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.TextureRegion; +import io.anuke.arc.math.Mathf; import io.anuke.mindustry.content.fx.ExplosionFx; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.Player; @@ -16,7 +21,6 @@ import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.input.CursorType; -import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.world.BarType; @@ -24,11 +28,6 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.modules.ItemModule; -import io.anuke.arc.Effects; -import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.util.Bundles; -import io.anuke.arc.math.Mathf; import java.io.DataInput; import java.io.DataOutput; diff --git a/core/src/io/anuke/mindustry/world/blocks/Floor.java b/core/src/io/anuke/mindustry/world/blocks/Floor.java index 20f6b34100..d534c7fadb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Floor.java +++ b/core/src/io/anuke/mindustry/world/blocks/Floor.java @@ -75,7 +75,7 @@ public class Floor extends Block{ super.load(); if(blend){ - edgeRegion = Draw.hasRegion(name + "edge") ? Core.atlas.find(name + "edge") : Core.atlas.find(edge + "edge"); + edgeRegion = Core.atlas.has(name + "edge") ? Core.atlas.find(name + "edge") : Core.atlas.find(edge + "edge"); edgeRegions = new TextureRegion[8]; offsets = new Vector2[8]; @@ -186,7 +186,7 @@ public class Floor extends Block{ TextureRegion region = floor.edgeRegions[i]; - Draw.crect(region, tile.worldx() + floor.offsets[i].x, tile.worldy() + floor.offsets[i].y, region.getRegionWidth(), region.getRegionHeight()); + Draw.crect(region, tile.worldx() + floor.offsets[i].x, tile.worldy() + floor.offsets[i].y, region.getWidth(), region.getHeight()); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/LiquidBlock.java b/core/src/io/anuke/mindustry/world/blocks/LiquidBlock.java index 1e5e020089..939da4b122 100644 --- a/core/src/io/anuke/mindustry/world/blocks/LiquidBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/LiquidBlock.java @@ -1,11 +1,12 @@ package io.anuke.mindustry.world.blocks; +import io.anuke.arc.Core; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.modules.LiquidModule; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class LiquidBlock extends Block{ protected TextureRegion liquidRegion, bottomRegion, topRegion; diff --git a/core/src/io/anuke/mindustry/world/blocks/OreBlock.java b/core/src/io/anuke/mindustry/world/blocks/OreBlock.java index ceab37ed65..46664f0d76 100644 --- a/core/src/io/anuke/mindustry/world/blocks/OreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/OreBlock.java @@ -1,12 +1,11 @@ package io.anuke.mindustry.world.blocks; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.MathUtils; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public class OreBlock extends Floor{ @@ -46,7 +45,7 @@ public class OreBlock extends Floor{ @Override public void drawNonLayer(Tile tile){ - MathUtils.random.setSeed(tile.pos()); + Mathf.random.setSeed(tile.pos()); base.drawEdges(tile, true); } diff --git a/core/src/io/anuke/mindustry/world/blocks/Rock.java b/core/src/io/anuke/mindustry/world/blocks/Rock.java index 5f62632461..c6f41dcc8a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Rock.java +++ b/core/src/io/anuke/mindustry/world/blocks/Rock.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public class Rock extends Block{ diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java b/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java index 6f0553d4e6..86d4adfe4e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java @@ -1,15 +1,15 @@ package io.anuke.mindustry.world.blocks.defense; import io.anuke.arc.graphics.Color; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.Vector2; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.world.Tile; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Physics; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/Door.java b/core/src/io/anuke/mindustry/world/blocks/defense/Door.java index 8ae8f581e3..c9d3f85bf1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/Door.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/Door.java @@ -1,16 +1,16 @@ package io.anuke.mindustry.world.blocks.defense; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.input.CursorType; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import java.io.DataInput; import java.io.DataOutput; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java index ea488388be..589f961aaa 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java @@ -14,14 +14,14 @@ import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.entities.EntityGroup; import io.anuke.arc.entities.EntityQuery; import io.anuke.arc.entities.impl.BaseEntity; import io.anuke.arc.entities.trait.DrawTrait; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java index 23e3cd66eb..83d696d495 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java @@ -8,12 +8,12 @@ import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Hue; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java index e5c63b9751..5f5b913ff1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java @@ -8,12 +8,12 @@ import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Hue; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/ShockMine.java b/core/src/io/anuke/mindustry/world/blocks/defense/ShockMine.java index 650c6bb6e0..5120c82441 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ShockMine.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ShockMine.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/BurstTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/BurstTurret.java index 9a0ad9a1b1..fdbe9686b5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/BurstTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/BurstTurret.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.defense.turrets; import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.tilesize; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java index 89c4fb758f..3c5f66a7e5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java @@ -4,9 +4,9 @@ import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.tilesize; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java index ec9c5c466b..09255365a2 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java @@ -4,9 +4,9 @@ import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.tilesize; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java index c0bc442d89..c91efa439e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java @@ -7,8 +7,8 @@ import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; -import io.anuke.arc.Effects; -import io.anuke.arc.Timers; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.util.Time; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java index ff39c10589..eb6e402092 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.values.LiquidFilterValue; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.world; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java index 00cdcb706a..09fb07a3f7 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java @@ -1,9 +1,20 @@ package io.anuke.mindustry.world.blocks.defense.turrets; -import io.anuke.arc.graphics.Color; -import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Vector2; +import io.anuke.arc.Core; +import io.anuke.arc.Graphics; import io.anuke.arc.collection.Array; +import io.anuke.arc.collection.EnumSet; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.entities.Effects.Effect; +import io.anuke.arc.function.BiConsumer; +import io.anuke.arc.graphics.Blending; +import io.anuke.arc.graphics.Color; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; +import io.anuke.arc.graphics.g2d.TextureRegion; +import io.anuke.arc.math.Mathf; +import io.anuke.arc.math.geom.Vector2; +import io.anuke.arc.util.Time; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.Predict; import io.anuke.mindustry.entities.TileEntity; @@ -22,14 +33,6 @@ import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; -import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.function.BiConsumer; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; -import io.anuke.arc.util.*; import java.io.DataInput; import java.io.DataOutput; @@ -64,21 +67,18 @@ public abstract class Turret extends Block{ protected float xRand = 0f; protected boolean targetAir = true; - protected Translator tr = new Translator(); - protected Translator tr2 = new Translator(); + protected Vector2 tr = new Vector2(); + protected Vector2 tr2 = new Vector2(); protected TextureRegion baseRegion; protected TextureRegion heatRegion; protected TextureRegion baseTopRegion; - protected BiConsumer drawer = (tile, entity) -> Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90); + protected BiConsumer drawer = (tile, entity) -> + Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y).rot(entity.rotation - 90); protected BiConsumer heatDrawer = (tile, entity) -> { if(entity.heat <= 0.00001f) return; - Graphics.setAdditiveBlending(); - Draw.color(heatColor); - Draw.alpha(entity.heat); - Draw.rect(heatRegion, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90); - Graphics.setNormalBlending(); + Draw.rect(heatRegion, tile.drawx() + tr2.x, tile.drawy() + tr2.y).rot(entity.rotation - 90).color(heatColor, entity.heat).blend(Blending.additive); }; public Turret(String name){ diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java index fa296100e3..02dcd8340a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.LiquidBlock; import io.anuke.mindustry.world.modules.LiquidModule; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java index 99a590c651..1d9d000ff9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java @@ -12,8 +12,8 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.util.*; import java.io.DataInput; @@ -29,8 +29,8 @@ public class Conveyor extends Block{ private static ItemPos drawpos = new ItemPos(); private static ItemPos pos1 = new ItemPos(); private static ItemPos pos2 = new ItemPos(); - private final Translator tr1 = new Translator(); - private final Translator tr2 = new Translator(); + private final Vector2 tr1 = new Vector2(); + private final Vector2 tr2 = new Vector2(); private TextureRegion[][] regions = new TextureRegion[7][4]; @@ -294,7 +294,7 @@ public class Conveyor extends Block{ } @Override - public void getStackOffset(Item item, Tile tile, Translator trns){ + public void getStackOffset(Item item, Tile tile, Vector2 trns){ trns.trns(tile.getRotation() * 90 + 180f, tilesize / 2f); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ExtendingItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ExtendingItemBridge.java index d9cd93c407..16e28ea597 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ExtendingItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ExtendingItemBridge.java @@ -2,8 +2,8 @@ package io.anuke.mindustry.world.blocks.distribution; import io.anuke.mindustry.world.Tile; import io.anuke.arc.graphics.CapStyle; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Geometry; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java index 8b198e0ba3..46c7df8dfa 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java @@ -18,10 +18,10 @@ import io.anuke.mindustry.world.Edges; import io.anuke.mindustry.world.Pos; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.graphics.CapStyle; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Geometry; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java index 0815fd8db1..60a153713a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.util.Bits; import static io.anuke.mindustry.Vars.content; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java index ce48244cfe..f6b563bb1b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java @@ -4,7 +4,7 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.world; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidExtendingBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidExtendingBridge.java index 2be21c79f5..d706f76d0d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidExtendingBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidExtendingBridge.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Pos; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.world; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidJunction.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidJunction.java index 83748ebe30..d26c5af225 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidJunction.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidJunction.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.LiquidBlock; import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class LiquidJunction extends LiquidBlock{ diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java index 0a89bc9d9a..c9a77d5208 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java @@ -21,11 +21,11 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Pooling; @@ -80,7 +80,7 @@ public class MassDriver extends Block{ entity.reload = 1f; entity.power.amount = 0f; - DriverBulletData data = Pooling.obtain(DriverBulletData.class, DriverBulletData::new); + DriverBulletData data = Pools.obtain(DriverBulletData.class, DriverBulletData::new); data.from = entity; data.to = other; int totalUsed = 0; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java index c54d42daae..3b22972f08 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.distribution; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Edges; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.math.Mathf; public class OverflowGate extends Router{ diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java index 8d241b5a69..2128fdca74 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Edges; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; public class Router extends Block{ protected float speed = 8f; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java index 16b0b26eff..9670b8641c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.SelectionTrait; import io.anuke.mindustry.world.meta.BlockGroup; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java index 43bbe1e208..6e0eb829c2 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java @@ -8,8 +8,8 @@ import io.anuke.mindustry.world.blocks.production.GenericCrafter.GenericCrafterE import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public class FusionReactor extends PowerGenerator{ diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java index c0dcc8f938..f65cb17e82 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java @@ -11,10 +11,10 @@ import io.anuke.mindustry.world.consumers.ConsumeItemFilter; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java index a404962a93..e07e232130 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java @@ -5,8 +5,8 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; -import io.anuke.arc.Effects; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.content; diff --git a/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java index 287e0f6b49..e7d4256406 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java @@ -6,9 +6,9 @@ import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.power.ItemGenerator.ItemGeneratorEntity; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public abstract class LiquidGenerator extends PowerGenerator{ diff --git a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java index 0876fe459c..79b3286f5c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java @@ -14,11 +14,11 @@ import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; import io.anuke.mindustry.world.meta.values.LiquidFilterValue; -import io.anuke.arc.Effects; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Translator; +import io.anuke.arc.util.Vector2; import java.io.DataInput; import java.io.DataOutput; @@ -29,7 +29,7 @@ import static io.anuke.mindustry.Vars.tilesize; public class NuclearReactor extends PowerGenerator{ protected final int timerFuel = timers++; - protected final Translator tr = new Translator(); + protected final Vector2 tr = new Vector2(); protected Color coolColor = new Color(1, 1, 1, 0f); protected Color hotColor = Color.valueOf("ff9575a3"); diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java index edc52a8295..b1f55a49a4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java @@ -13,12 +13,12 @@ import io.anuke.mindustry.world.blocks.PowerBlock; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; import io.anuke.arc.Settings; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Angles; import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Translator; +import io.anuke.arc.util.Vector2; import static io.anuke.mindustry.Vars.*; @@ -29,8 +29,8 @@ public class PowerNode extends PowerBlock{ //last distribution block placed private static int lastPlaced = -1; - protected Translator t1 = new Translator(); - protected Translator t2 = new Translator(); + protected Vector2 t1 = new Vector2(); + protected Vector2 t2 = new Vector2(); protected float laserRange = 6; protected int maxNodes = 3; diff --git a/core/src/io/anuke/mindustry/world/blocks/power/SolarGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/SolarGenerator.java index 4e3d182a27..55bd4f0afc 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/SolarGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/SolarGenerator.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.power; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Timers; +import io.anuke.arc.util.Time; import io.anuke.arc.util.EnumSet; public class SolarGenerator extends PowerGenerator{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Compressor.java b/core/src/io/anuke/mindustry/world/blocks/production/Compressor.java index 411ff97264..872a29ca1f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Compressor.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Compressor.java @@ -4,7 +4,7 @@ import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.production.GenericCrafter.GenericCrafterEntity; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public class Compressor extends PowerCrafter{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java index e0c27f2399..496bc77219 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java @@ -9,9 +9,9 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.SeedRandom; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index 72de7e7c56..18c38519e0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -16,11 +16,11 @@ import io.anuke.mindustry.world.consumers.ConsumeLiquid; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import static io.anuke.mindustry.Vars.content; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java index aa43770e15..a0e3b8f20b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java @@ -5,7 +5,7 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumeItem; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class Fracker extends SolidPump{ protected final float itemUseTime = 100f; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java index a389cee2db..34938361a4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java @@ -12,10 +12,10 @@ import io.anuke.mindustry.world.consumers.ConsumeItem; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java b/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java index 2823cf018d..6c64e2a2de 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java @@ -8,10 +8,10 @@ import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java b/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java index 5a3bde03ae..3351217fd1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; import io.anuke.mindustry.world.modules.LiquidModule; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class LiquidMixer extends LiquidBlock{ protected Liquid outputLiquid; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PhaseWeaver.java b/core/src/io/anuke/mindustry/world/blocks/production/PhaseWeaver.java index 85bf063719..a405f1658c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PhaseWeaver.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PhaseWeaver.java @@ -6,8 +6,8 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.world.Tile; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; public class PhaseWeaver extends PowerSmelter{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PlastaniumCompressor.java b/core/src/io/anuke/mindustry/world/blocks/production/PlastaniumCompressor.java index b16146360a..b6ca5f8110 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PlastaniumCompressor.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PlastaniumCompressor.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.production; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; public class PlastaniumCompressor extends GenericCrafter{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java index c99df31618..03b81b04c4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java @@ -12,10 +12,10 @@ import io.anuke.mindustry.world.blocks.PowerBlock; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Pulverizer.java b/core/src/io/anuke/mindustry/world/blocks/production/Pulverizer.java index cba0d12dd9..b2928013b5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Pulverizer.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Pulverizer.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.production; import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class Pulverizer extends GenericCrafter{ protected TextureRegion rotatorRegion; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Pump.java b/core/src/io/anuke/mindustry/world/blocks/production/Pump.java index f01d0ccb07..075f64a1c7 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Pump.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.world.consumers.ConsumeLiquid; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; public class Pump extends LiquidBlock{ protected final Array drawTiles = new Array<>(); diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java index b6b1c715fb..770cfa45cd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java @@ -12,8 +12,8 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.production.GenericCrafter.GenericCrafterEntity; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.values.ItemFilterValue; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; /** diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java index bee5fc971a..4b21fd899e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java @@ -13,10 +13,10 @@ import io.anuke.mindustry.world.consumers.ConsumeItems; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Fill; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java index e3b75d8bf1..b17b000063 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java @@ -7,9 +7,9 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.math.Mathf; /** diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java index bb70476530..24cd01da12 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java @@ -22,11 +22,11 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockFlag; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.EnumSet; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java b/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java index 6c8d7c2bdf..9a8b88c919 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.SelectionTrait; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.layout.Table; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java index be761275ab..b3be02fb0c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java @@ -16,9 +16,9 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockFlag; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.scene.ui.ButtonGroup; import io.anuke.arc.scene.ui.ImageButton; import io.anuke.arc.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java index ad652291e1..e0989a73fd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java @@ -19,11 +19,11 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumePowerExact; import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.Geometry; import io.anuke.arc.math.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java b/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java index 0966f28298..4ee6bacf50 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java @@ -15,12 +15,12 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.entities.Effects.Effect; import io.anuke.arc.Graphics; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.math.Mathf; import java.io.DataInput; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java index 976a13c56f..e1b5b60a5d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.units; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Rectangle; +import io.anuke.arc.math.geom.Rectangle; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Units; @@ -11,9 +11,9 @@ import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockFlag; -import io.anuke.arc.Timers; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.util.Time; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.Shapes; import io.anuke.arc.util.Angles; import io.anuke.arc.util.EnumSet; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java index f97c2d5e00..8d1729674d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java @@ -23,10 +23,10 @@ import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.StatUnit; import io.anuke.mindustry.world.modules.ItemModule; -import io.anuke.arc.Effects; +import io.anuke.arc.entities.Effects; import io.anuke.arc.Graphics; -import io.anuke.arc.graphics.Draw; -import io.anuke.arc.graphics.Lines; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.util.EnumSet; import io.anuke.arc.math.Mathf; diff --git a/kryonet/src/io/anuke/kryonet/ByteSerializer.java b/kryonet/src/io/anuke/kryonet/ByteSerializer.java index ace1ac8db2..1090c9348b 100644 --- a/kryonet/src/io/anuke/kryonet/ByteSerializer.java +++ b/kryonet/src/io/anuke/kryonet/ByteSerializer.java @@ -34,7 +34,7 @@ public class ByteSerializer implements Serialization{ if(id == -2){ return FrameworkSerializer.read(byteBuffer); }else{ - Packet packet = Pooling.obtain((Class) Registrator.getByID(id).type, (Supplier) Registrator.getByID(id).constructor); + Packet packet = Pools.obtain((Class) Registrator.getByID(id).type, (Supplier) Registrator.getByID(id).constructor); packet.read(byteBuffer); return packet; } diff --git a/kryonet/src/io/anuke/kryonet/KryoClient.java b/kryonet/src/io/anuke/kryonet/KryoClient.java index 069a72ee3e..7fd67a6709 100644 --- a/kryonet/src/io/anuke/kryonet/KryoClient.java +++ b/kryonet/src/io/anuke/kryonet/KryoClient.java @@ -162,7 +162,7 @@ public class KryoClient implements ClientProvider{ client.sendUDP(object); } - Pooling.free(object); + Pools.free(object); } @Override diff --git a/server/src/io/anuke/mindustry/server/CrashHandler.java b/server/src/io/anuke/mindustry/server/CrashHandler.java index eb55f17ec7..f237f502aa 100644 --- a/server/src/io/anuke/mindustry/server/CrashHandler.java +++ b/server/src/io/anuke/mindustry/server/CrashHandler.java @@ -3,12 +3,12 @@ package io.anuke.mindustry.server; import com.badlogic.gdx.utils.JsonValue; import com.badlogic.gdx.utils.JsonValue.ValueType; import com.badlogic.gdx.utils.JsonWriter.OutputType; +import io.anuke.arc.Core; +import io.anuke.arc.util.Log; +import io.anuke.arc.util.OS; import io.anuke.mindustry.Vars; import io.anuke.mindustry.game.Version; import io.anuke.mindustry.net.Net; -import io.anuke.arc.core.Settings; -import io.anuke.arc.util.Log; -import io.anuke.arc.util.OS; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/server/src/io/anuke/mindustry/server/MindustryServer.java b/server/src/io/anuke/mindustry/server/MindustryServer.java index ab6c4ad21a..1794959941 100644 --- a/server/src/io/anuke/mindustry/server/MindustryServer.java +++ b/server/src/io/anuke/mindustry/server/MindustryServer.java @@ -1,16 +1,17 @@ package io.anuke.mindustry.server; +import io.anuke.arc.ApplicationListener; +import io.anuke.arc.Core; import io.anuke.mindustry.Vars; import io.anuke.mindustry.core.Logic; import io.anuke.mindustry.core.NetServer; import io.anuke.mindustry.core.World; import io.anuke.mindustry.game.Content; import io.anuke.mindustry.io.BundleLoader; -import io.anuke.arc.modules.ModuleCore; import static io.anuke.mindustry.Vars.*; -public class MindustryServer extends ModuleCore{ +public class MindustryServer implements ApplicationListener{ private String[] args; public MindustryServer(String[] args){ @@ -28,9 +29,9 @@ public class MindustryServer extends ModuleCore{ content.load(); content.initialize(Content::init); - module(logic = new Logic()); - module(world = new World()); - module(netServer = new NetServer()); - module(new ServerControl(args)); + Core.app.addListener(logic = new Logic()); + Core.app.addListener(world = new World()); + Core.app.addListener(netServer = new NetServer()); + Core.app.addListener(new ServerControl(args)); } } diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 1d43381736..337ba5a97d 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -6,6 +6,17 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectSet; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; +import io.anuke.arc.ApplicationListener; +import io.anuke.arc.Core; +import io.anuke.arc.Events; +import io.anuke.arc.entities.Effects; +import io.anuke.arc.util.CommandHandler; +import io.anuke.arc.util.CommandHandler.Command; +import io.anuke.arc.util.CommandHandler.Response; +import io.anuke.arc.util.CommandHandler.ResponseType; +import io.anuke.arc.util.Log; +import io.anuke.arc.util.Strings; +import io.anuke.arc.util.Time; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.game.Difficulty; @@ -23,24 +34,16 @@ import io.anuke.mindustry.net.Packets.KickReason; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.ItemType; import io.anuke.mindustry.world.Tile; -import io.anuke.arc.core.*; -import io.anuke.arc.modules.Module; -import io.anuke.arc.util.CommandHandler; -import io.anuke.arc.util.CommandHandler.Command; -import io.anuke.arc.util.CommandHandler.Response; -import io.anuke.arc.util.CommandHandler.ResponseType; -import io.anuke.arc.util.Log; -import io.anuke.arc.util.Strings; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Scanner; -import static io.anuke.mindustry.Vars.*; import static io.anuke.arc.util.Log.*; +import static io.anuke.mindustry.Vars.*; -public class ServerControl extends Module{ +public class ServerControl implements ApplicationListener{ private static final int roundExtraTime = 12; //in bytes: 512 kb is max private static final int maxLogLength = 1024 * 512; @@ -55,7 +58,7 @@ public class ServerControl extends Module{ public ServerControl(String[] args){ - Core.settings.defaultList( + Core.settings.defaults( "shufflemode", "normal", "bans", "", "admins", "", @@ -99,7 +102,6 @@ public class ServerControl extends Module{ Time.setDeltaProvider(() -> Gdx.graphics.getDeltaTime() * 60f); Effects.setScreenShakeProvider((a, b) -> {}); Effects.setEffectProvider((a, b, c, d, e, f) -> {}); - Sounds.setHeadless(true); registerCommands(); @@ -136,7 +138,7 @@ public class ServerControl extends Module{ world.sectors.save(); gameOvers = 0; inExtraRound = true; - Core.settings.putInt("sector_x", world.getSector().x + 1); + Core.settings.put("sector_x", world.getSector().x + 1); Core.settings.save(); Call.onInfoMessage("[accent]Sector conquered![]\n" + roundExtraTime + " seconds until deployment in next sector."); diff --git a/server/src/io/anuke/mindustry/server/ServerLauncher.java b/server/src/io/anuke/mindustry/server/ServerLauncher.java index 9a45d607cf..8081a40059 100644 --- a/server/src/io/anuke/mindustry/server/ServerLauncher.java +++ b/server/src/io/anuke/mindustry/server/ServerLauncher.java @@ -4,11 +4,11 @@ import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.headless.HeadlessApplication; import com.badlogic.gdx.backends.headless.HeadlessApplicationConfiguration; +import io.anuke.arc.Core; +import io.anuke.arc.util.EmptyLogger; import io.anuke.kryonet.KryoClient; import io.anuke.kryonet.KryoServer; import io.anuke.mindustry.net.Net; -import io.anuke.arc.core.Settings; -import io.anuke.arc.util.EmptyLogger; public class ServerLauncher extends HeadlessApplication{ @@ -37,8 +37,13 @@ public class ServerLauncher extends HeadlessApplication{ for(Thread thread : Thread.getAllStackTraces().keySet()){ if(thread.getName().equals("HeadlessApplication")){ thread.setUncaughtExceptionHandler((t, throwable) -> { - CrashHandler.handle(throwable); - System.exit(-1); + try{ + CrashHandler.handle(throwable); + System.exit(-1); + }catch(Throwable crashCrash){ + crashCrash.printStackTrace(); + System.exit(-1); + } }); break; } diff --git a/tools/src/io/anuke/mindustry/Generators.java b/tools/src/io/anuke/mindustry/Generators.java index 6af829e9b1..01bbdc8d98 100644 --- a/tools/src/io/anuke/mindustry/Generators.java +++ b/tools/src/io/anuke/mindustry/Generators.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.type.Mech; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.OreBlock; -import io.anuke.arc.graphics.Draw; +import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.Hue; import static io.anuke.mindustry.Vars.*; @@ -87,7 +87,7 @@ public class Generators { image.drawCenter(mech.region); } - int off = (image.width() - mech.weapon.equipRegion.getRegionWidth())/2; + int off = (image.width() - mech.weapon.equipRegion.getWidth())/2; image.draw(mech.weapon.equipRegion, -(int)mech.weaponOffsetX + off, (int)mech.weaponOffsetY + off, false, false); image.draw(mech.weapon.equipRegion, (int)mech.weaponOffsetX + off, (int)mech.weaponOffsetY + off, true, false); @@ -112,12 +112,12 @@ public class Generators { image.draw(type.region); image.draw(type.weapon.equipRegion, - -(int)type.weaponOffsetX + (image.width() - type.weapon.equipRegion.getRegionWidth())/2, - (int)type.weaponOffsetY - (image.height() - type.weapon.equipRegion.getRegionHeight())/2 + 1, + -(int)type.weaponOffsetX + (image.width() - type.weapon.equipRegion.getWidth())/2, + (int)type.weaponOffsetY - (image.height() - type.weapon.equipRegion.getHeight())/2 + 1, false, false); image.draw(type.weapon.equipRegion, - (int)type.weaponOffsetX + (image.width() - type.weapon.equipRegion.getRegionWidth())/2, - (int)type.weaponOffsetY - (image.height() - type.weapon.equipRegion.getRegionHeight())/2 + 1, + (int)type.weaponOffsetX + (image.width() - type.weapon.equipRegion.getWidth())/2, + (int)type.weaponOffsetY - (image.height() - type.weapon.equipRegion.getHeight())/2 + 1, true, false); } diff --git a/tools/src/io/anuke/mindustry/Image.java b/tools/src/io/anuke/mindustry/Image.java index 69c0c6be6b..e4678c346c 100644 --- a/tools/src/io/anuke/mindustry/Image.java +++ b/tools/src/io/anuke/mindustry/Image.java @@ -21,7 +21,7 @@ public class Image { private Color color = new Color(); public Image(BufferedImage atlas, TextureRegion region){ - this(atlas, region.getRegionWidth(), region.getRegionHeight()); + this(atlas, region.getWidth(), region.getHeight()); draw(region); } @@ -69,12 +69,12 @@ public class Image { /**Draws a region at the center.*/ public void drawCenter(TextureRegion region){ - draw(region, (width() - region.getRegionWidth())/2, (height() - region.getRegionHeight())/2, false, false); + draw(region, (width() - region.getWidth())/2, (height() - region.getHeight())/2, false, false); } /**Draws a region at the center.*/ public void drawCenter(TextureRegion region, boolean flipx, boolean flipy){ - draw(region, (width() - region.getRegionWidth())/2, (height() - region.getRegionHeight())/2, flipx, flipy); + draw(region, (width() - region.getWidth())/2, (height() - region.getHeight())/2, flipx, flipy); } /**Draws an image at the top left corner.*/ @@ -108,12 +108,12 @@ public class Image { graphics.drawImage(atlas, x, y, - x + region.getRegionWidth(), - y + region.getRegionHeight(), - (flipx ? region.getRegionX() + region.getRegionWidth() : region.getRegionX()) + ofx, - (flipy ? region.getRegionY() + region.getRegionHeight() : region.getRegionY()) + ofy, - (flipx ? region.getRegionX() : region.getRegionX() + region.getRegionWidth()) + ofx, - (flipy ? region.getRegionY() : region.getRegionY() + region.getRegionHeight()) + ofy, + x + region.getWidth(), + y + region.getHeight(), + (flipx ? region.getRegionX() + region.getWidth() : region.getRegionX()) + ofx, + (flipy ? region.getRegionY() + region.getHeight() : region.getRegionY()) + ofy, + (flipx ? region.getRegionX() : region.getRegionX() + region.getWidth()) + ofx, + (flipy ? region.getRegionY() : region.getRegionY() + region.getHeight()) + ofy, null); }