diff --git a/src/test/java/org/terasology/TextWorldBuilder.java b/src/test/java/org/terasology/TextWorldBuilder.java index 4418e12..d8cd4ce 100644 --- a/src/test/java/org/terasology/TextWorldBuilder.java +++ b/src/test/java/org/terasology/TextWorldBuilder.java @@ -3,18 +3,24 @@ package org.terasology; import org.joml.Vector3i; +import org.joml.Vector3ic; import org.terasology.engine.context.Context; import org.terasology.engine.world.WorldProvider; import org.terasology.engine.world.block.Block; +import org.terasology.engine.world.block.BlockArea; import org.terasology.engine.world.block.BlockManager; +import org.terasology.engine.world.block.BlockRegion; import org.terasology.engine.world.block.family.SymmetricFamily; import org.terasology.engine.world.block.loader.BlockFamilyDefinition; import org.terasology.engine.world.block.loader.BlockFamilyDefinitionData; import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.gestalt.assets.management.AssetManager; +import org.terasology.joml.geom.Rectanglei; +import org.terasology.moduletestingenvironment.ModuleTestingHelper; import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; /** * Created by synopia on 11.02.14. @@ -26,11 +32,14 @@ public class TextWorldBuilder { private WorldProvider world; private Block ground; private Block air; + private BlockRegion resetArea = new BlockRegion(BlockRegion.INVALID); + private ModuleTestingHelper helper; - public TextWorldBuilder(Context context) { + public TextWorldBuilder(Context context, ModuleTestingHelper helper) { world = context.get(WorldProvider.class); BlockManager blockManager = context.get(BlockManager.class); AssetManager assetManager = context.get(AssetManager.class); + this.helper = helper; BlockFamilyDefinitionData data = new BlockFamilyDefinitionData(); data.setBlockFamily(SymmetricFamily.class); @@ -40,12 +49,22 @@ public TextWorldBuilder(Context context) { this.air = blockManager.getBlock(BlockManager.AIR_ID); } + public void reset() { + if(resetArea.isValid()) { + resetArea.forEach(pos -> setAir(pos.x(), pos.y(), pos.z())); + resetArea.set(BlockRegion.INVALID); + } + } + public void setGround(int x, int y, int z) { + resetArea.union(x, y, z); world.setBlock(new Vector3i(x, y, z), ground); + this.helper.forceAndWaitForGeneration(new Vector3i(x, y, z)); } public void setAir(int x, int y, int z) { world.setBlock(new Vector3i(x, y, z), air); + this.helper.forceAndWaitForGeneration(new Vector3i(x, y, z)); } public void setGround(String... lines) { diff --git a/src/test/java/org/terasology/navgraph/ConnectNavGraphChunkTest.java b/src/test/java/org/terasology/navgraph/ConnectNavGraphChunkTest.java index 7c19260..cb3535d 100644 --- a/src/test/java/org/terasology/navgraph/ConnectNavGraphChunkTest.java +++ b/src/test/java/org/terasology/navgraph/ConnectNavGraphChunkTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -132,9 +133,14 @@ public void test2() { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); world = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + + @AfterEach + public void reset(){ + builder.reset(); } private void assertCenter(final NavGraphChunk center, NavGraphChunk left, NavGraphChunk up, NavGraphChunk right, NavGraphChunk down, String[] contours) { diff --git a/src/test/java/org/terasology/navgraph/ContourFinderTest.java b/src/test/java/org/terasology/navgraph/ContourFinderTest.java index 388e34e..2452170 100644 --- a/src/test/java/org/terasology/navgraph/ContourFinderTest.java +++ b/src/test/java/org/terasology/navgraph/ContourFinderTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -416,9 +417,14 @@ public void testRectangle() { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); this.worldProvider = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + + @AfterEach + public void reset(){ + builder.reset(); } private void assertContour(String[] ground, String[] contour) { diff --git a/src/test/java/org/terasology/navgraph/FloorFinderTest.java b/src/test/java/org/terasology/navgraph/FloorFinderTest.java index d28c8b0..a95084b 100644 --- a/src/test/java/org/terasology/navgraph/FloorFinderTest.java +++ b/src/test/java/org/terasology/navgraph/FloorFinderTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -303,9 +304,13 @@ public void testSingleFloor() { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); this.worldProvider = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + @AfterEach + public void reset(){ + builder.reset(); } private void assertFloors(String[] data, String[] floors) { diff --git a/src/test/java/org/terasology/navgraph/RegionFinderTest.java b/src/test/java/org/terasology/navgraph/RegionFinderTest.java index bb13e01..5ff1c0a 100644 --- a/src/test/java/org/terasology/navgraph/RegionFinderTest.java +++ b/src/test/java/org/terasology/navgraph/RegionFinderTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -150,9 +151,13 @@ public void bigTest() { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); this.worldProvider = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + @AfterEach + public void reset(){ + builder.reset(); } private void assertRegions(String[] data, String[] regions) { diff --git a/src/test/java/org/terasology/navgraph/WalkableBlockFinderTest.java b/src/test/java/org/terasology/navgraph/WalkableBlockFinderTest.java index a3fa76e..e330cf9 100644 --- a/src/test/java/org/terasology/navgraph/WalkableBlockFinderTest.java +++ b/src/test/java/org/terasology/navgraph/WalkableBlockFinderTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -230,8 +231,12 @@ public char run(int x, int y, int z, char value) { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); this.worldProvider = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + @AfterEach + public void reset(){ + builder.reset(); } } diff --git a/src/test/java/org/terasology/pathfinding/HAStarLoSTest.java b/src/test/java/org/terasology/pathfinding/HAStarLoSTest.java index bffa28f..cb8431d 100644 --- a/src/test/java/org/terasology/pathfinding/HAStarLoSTest.java +++ b/src/test/java/org/terasology/pathfinding/HAStarLoSTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -138,9 +139,13 @@ public void simple() { @BeforeEach public void setup(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); this.worldProvider = worldProvider; - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + @AfterEach + public void reset(){ + builder.reset(); } private void executeExample(String[] ground, String[] pathData) { diff --git a/src/test/java/org/terasology/pathfinding/HAStarTest.java b/src/test/java/org/terasology/pathfinding/HAStarTest.java index 92e8056..5178c70 100644 --- a/src/test/java/org/terasology/pathfinding/HAStarTest.java +++ b/src/test/java/org/terasology/pathfinding/HAStarTest.java @@ -4,6 +4,7 @@ import org.joml.Vector3i; import org.joml.Vector3ic; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -41,9 +42,13 @@ public class HAStarTest { @BeforeEach public void newWorldBuilder(Context context, WorldProvider worldProvider, ModuleTestingHelper mteHelp) { - builder = new TextWorldBuilder(context); + builder = new TextWorldBuilder(context, mteHelp); chunk = new NavGraphChunk(worldProvider, chunkLocation); - mteHelp.forceAndWaitForGeneration(chunkLocation); + } + + @AfterEach + public void reset(){ + builder.reset(); } @Test diff --git a/src/test/java/org/terasology/pathfinding/PathfinderTest.java b/src/test/java/org/terasology/pathfinding/PathfinderTest.java index 74bc314..85f94a3 100644 --- a/src/test/java/org/terasology/pathfinding/PathfinderTest.java +++ b/src/test/java/org/terasology/pathfinding/PathfinderTest.java @@ -3,6 +3,7 @@ package org.terasology.pathfinding; import org.joml.Vector3i; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -12,6 +13,7 @@ import org.terasology.engine.context.Context; import org.terasology.engine.registry.InjectionHelper; import org.terasology.moduletestingenvironment.MTEExtension; +import org.terasology.moduletestingenvironment.ModuleTestingHelper; import org.terasology.moduletestingenvironment.extension.Dependencies; import org.terasology.moduletestingenvironment.extension.UseWorldGenerator; import org.terasology.navgraph.NavGraphChunk; @@ -33,8 +35,8 @@ public class PathfinderTest { private TextWorldBuilder builder; @BeforeEach - public void setup(Context context) { - builder = new TextWorldBuilder(context); + public void setup(Context context, ModuleTestingHelper helper) { + builder = new TextWorldBuilder(context, helper); world = new NavGraphSystem(); InjectionHelper.inject(world); @@ -42,6 +44,11 @@ public void setup(Context context) { pathfinder = new Pathfinder(world, null); } + @AfterEach + public void reset(){ + builder.reset(); + } + @Test public void test() { world.updateChunk(new Vector3i(0, 0, 0));