mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-27 06:20:02 +00:00
Wall scope test via real matter
- feeds caverns through a real mantle section now that sCave snapshots the chunk instead of iterating it
This commit is contained in:
1 parent
df299bb97d
commit
195f1862af
1 file changed
+11
-13
+11
-13
@@ -2,7 +2,6 @@ package art.arcane.iris.generation.runtime;
|
|||||||
|
|
||||||
import art.arcane.iris.pack.loading.IrisData;
|
import art.arcane.iris.pack.loading.IrisData;
|
||||||
import art.arcane.iris.generation.mantle.EngineMantle;
|
import art.arcane.iris.generation.mantle.EngineMantle;
|
||||||
import art.arcane.iris.generation.mantle.TerrainMatterView;
|
|
||||||
import art.arcane.iris.generation.stage.IrisCarveModifier;
|
import art.arcane.iris.generation.stage.IrisCarveModifier;
|
||||||
import art.arcane.iris.generation.biome.IrisBiome;
|
import art.arcane.iris.generation.biome.IrisBiome;
|
||||||
import art.arcane.iris.generation.biome.IrisBiomePaletteLayer;
|
import art.arcane.iris.generation.biome.IrisBiomePaletteLayer;
|
||||||
@@ -15,12 +14,13 @@ import art.arcane.iris.generation.context.ChunkContext;
|
|||||||
import art.arcane.iris.generation.context.IrisContext;
|
import art.arcane.iris.generation.context.IrisContext;
|
||||||
import art.arcane.volmlib.util.hunk.Hunk;
|
import art.arcane.volmlib.util.hunk.Hunk;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.function.Consumer4;
|
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import art.arcane.volmlib.util.stream.ProceduralStream;
|
import art.arcane.volmlib.util.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.stream.interpolation.Interpolated;
|
import art.arcane.volmlib.util.stream.interpolation.Interpolated;
|
||||||
|
import art.arcane.iris.world.storage.matter.IrisMatterSupport;
|
||||||
|
import art.arcane.volmlib.util.matter.IrisMatter;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -42,7 +42,6 @@ import static org.mockito.ArgumentMatchers.any;
|
|||||||
import static org.mockito.ArgumentMatchers.anyDouble;
|
import static org.mockito.ArgumentMatchers.anyDouble;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
|
||||||
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
||||||
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
@@ -100,19 +99,10 @@ public class IrisCarveWallPaletteScopeTest {
|
|||||||
}
|
}
|
||||||
try (IrisEngine.GenerationRuntimeScope generation = fixture.engine.openGenerationRuntimeScope(
|
try (IrisEngine.GenerationRuntimeScope generation = fixture.engine.openGenerationRuntimeScope(
|
||||||
new IrisEngine.GenerationRuntimeBinding(fixture.engine, selected));
|
new IrisEngine.GenerationRuntimeBinding(fixture.engine, selected));
|
||||||
IrisContext.Scope context = IrisContext.open(fixture.engine, 71L, fixture.context);
|
IrisContext.Scope context = IrisContext.open(fixture.engine, 71L, fixture.context)) {
|
||||||
MockedStatic<TerrainMatterView> terrain = mockStatic(TerrainMatterView.class)) {
|
|
||||||
if (mode == Mode.ASSEMBLY) {
|
if (mode == Mode.ASSEMBLY) {
|
||||||
fixture.engine.threadState.setAssembly(fixture.assembly);
|
fixture.engine.threadState.setAssembly(fixture.assembly);
|
||||||
}
|
}
|
||||||
terrain.when(() -> TerrainMatterView.iterate(eq(fixture.chunk), eq(MatterCavern.class), any()))
|
|
||||||
.thenAnswer(call -> {
|
|
||||||
Consumer4<Integer, Integer, Integer, MatterCavern> consumer = call.getArgument(2);
|
|
||||||
for (int coordinate : new int[]{4, 8, 12}) {
|
|
||||||
consumer.accept(coordinate, 10, coordinate, new MatterCavern(true, "", (byte) 0));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
try {
|
try {
|
||||||
assertSame(expectedData, fixture.engine.getData());
|
assertSame(expectedData, fixture.engine.getData());
|
||||||
assertEquals(mode == Mode.NATURAL, expectedComplex.isNaturalTerrainContext());
|
assertEquals(mode == Mode.NATURAL, expectedComplex.isNaturalTerrainContext());
|
||||||
@@ -196,6 +186,14 @@ public class IrisCarveWallPaletteScopeTest {
|
|||||||
doReturn(mantle).when(engineMantle).getMantle();
|
doReturn(mantle).when(engineMantle).getMantle();
|
||||||
doReturn(chunk).when(mantle).getChunk(-2, 3);
|
doReturn(chunk).when(mantle).getChunk(-2, 3);
|
||||||
doReturn(chunk).when(chunk).use();
|
doReturn(chunk).when(chunk).use();
|
||||||
|
IrisMatterSupport.ensureRegistered();
|
||||||
|
Matter section = new IrisMatter(16, 16, 16);
|
||||||
|
for (int coordinate : new int[]{4, 8, 12}) {
|
||||||
|
section.slice(MatterCavern.class).set(coordinate, 10, coordinate, new MatterCavern(true, "", (byte) 0));
|
||||||
|
}
|
||||||
|
doReturn(1).when(chunk).sectionCount();
|
||||||
|
doReturn(true).when(chunk).exists(0);
|
||||||
|
doReturn(section).when(chunk).get(0);
|
||||||
active = runtime(mock(IrisData.class), mock(IrisComplex.class), engineMantle);
|
active = runtime(mock(IrisData.class), mock(IrisComplex.class), engineMantle);
|
||||||
detached = runtime(mock(IrisData.class), mock(IrisComplex.class), engineMantle);
|
detached = runtime(mock(IrisData.class), mock(IrisComplex.class), engineMantle);
|
||||||
field(engine, IrisEngine.class, "lifecycleLock", new Object());
|
field(engine, IrisEngine.class, "lifecycleLock", new Object());
|
||||||
|
|||||||
Reference in new issue
Block a user