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:
Brian Neumann-Fopiano committed 2026-09-28 13:50:36 -04:00
1 parent df299bb97d
commit 195f1862af
1 file changed
+11 -13
@@ -2,7 +2,6 @@ package art.arcane.iris.generation.runtime;
import art.arcane.iris.pack.loading.IrisData;
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.biome.IrisBiome;
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.volmlib.util.hunk.Hunk;
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.MantleChunk;
import art.arcane.volmlib.util.math.RNG;
import art.arcane.volmlib.util.stream.ProceduralStream;
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.MatterCavern;
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.anyInt;
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.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.doAnswer;
@@ -100,19 +99,10 @@ public class IrisCarveWallPaletteScopeTest {
}
try (IrisEngine.GenerationRuntimeScope generation = fixture.engine.openGenerationRuntimeScope(
new IrisEngine.GenerationRuntimeBinding(fixture.engine, selected));
IrisContext.Scope context = IrisContext.open(fixture.engine, 71L, fixture.context);
MockedStatic<TerrainMatterView> terrain = mockStatic(TerrainMatterView.class)) {
IrisContext.Scope context = IrisContext.open(fixture.engine, 71L, fixture.context)) {
if (mode == Mode.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 {
assertSame(expectedData, fixture.engine.getData());
assertEquals(mode == Mode.NATURAL, expectedComplex.isNaturalTerrainContext());
@@ -196,6 +186,14 @@ public class IrisCarveWallPaletteScopeTest {
doReturn(mantle).when(engineMantle).getMantle();
doReturn(chunk).when(mantle).getChunk(-2, 3);
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);
detached = runtime(mock(IrisData.class), mock(IrisComplex.class), engineMantle);
field(engine, IrisEngine.class, "lifecycleLock", new Object());