From ac496a60b76ae3219aedc89e802f77a6dcbe9602 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 8 Oct 2020 09:22:42 -0400 Subject: [PATCH] More tests --- .../world/blocks/defense/turrets/Turret.java | 1 + tests/src/test/java/ApplicationTests.java | 9 +++++++++ tests/src/test/java/power/PowerTestFixture.java | 4 ++-- tests/src/test/resources/108.msav | Bin 0 -> 12954 bytes 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 tests/src/test/resources/108.msav diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 9d925af2f3..37c0ba7ebd 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -214,6 +214,7 @@ public abstract class Turret extends Block{ } public void targetPosition(Posc pos){ + if(!hasAmmo()) return; BulletType bullet = peekAmmo(); float speed = bullet.speed; //slow bullets never intersect diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index d689dbd5df..01cf659df2 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -424,6 +424,15 @@ public class ApplicationTests{ assertEquals(300, world.height()); } + @Test + void load108Save(){ + resetWorld(); + SaveIO.load(Core.files.internal("108.msav")); + + assertEquals(256, world.width()); + assertEquals(256, world.height()); + } + @Test void arrayIterators(){ Seq arr = Seq.with("a", "b" , "c", "d", "e", "f"); diff --git a/tests/src/test/java/power/PowerTestFixture.java b/tests/src/test/java/power/PowerTestFixture.java index 994130a596..7bd7e821b2 100644 --- a/tests/src/test/java/power/PowerTestFixture.java +++ b/tests/src/test/java/power/PowerTestFixture.java @@ -28,14 +28,14 @@ public class PowerTestFixture{ headless = true; Core.graphics = new FakeGraphics(); Core.files = new MockFiles(); - Vars.state = new GameState(); - Vars.tree = new FileTree(); Vars.content = new ContentLoader(){ @Override public void handleMappableContent(MappableContent content){ } }; + Vars.state = new GameState(); + Vars.tree = new FileTree(); content.createBaseContent(); Log.setUseColors(false); Time.setDeltaProvider(() -> 0.5f); diff --git a/tests/src/test/resources/108.msav b/tests/src/test/resources/108.msav new file mode 100644 index 0000000000000000000000000000000000000000..9653e63d16e24958d312bcb7aba581a26afe2e7a GIT binary patch literal 12954 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