mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-22 16:17:44 +00:00
Delete the dead v1 hydrology settings surface
- Surface inset, terrain blend and ridge tunnel settings gone; Hydraulics keeps only waterfallMinimumDrop - Branching folded into Routing; refinementSpacing derived from the sample lattice - Contained surface routing branch, surface incision helpers and 13 unreachable compiler members deleted
This commit is contained in:
1 parent
639786537b
commit
896e58e212
24 files changed
+305
-1411
No files matched your search
+17
-17
@@ -31,12 +31,12 @@ public class HydrologyCaveCourseFilterTest {
|
||||
};
|
||||
|
||||
@Test
|
||||
public void rejectedRidgeBoreIsAbsentFromCoursesFootprintRendererAndLocator() {
|
||||
public void rejectedCaveCourseIsAbsentFromCoursesFootprintRendererAndLocator() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
22L,
|
||||
11L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -81,19 +81,19 @@ public class HydrologyCaveCourseFilterTest {
|
||||
assertTrue(tile.footprint().isEmpty());
|
||||
assertTrue(tile.features().isEmpty());
|
||||
assertTrue(tile.renderAt(8, 8).features().isEmpty());
|
||||
assertTrue(tile.nearestFeature(HydrologyFeatureType.RIDGE_BORE, 8, 8, 16).isEmpty());
|
||||
assertTrue(tile.nearestFeature(HydrologyFeatureType.UNDERGROUND_POOL, 8, 8, 16).isEmpty());
|
||||
assertEquals(1, tile.diagnosticCandidates().size());
|
||||
assertEquals(HydrologyCandidateRejection.CAVE_CONTAINMENT,
|
||||
tile.diagnosticCandidates().getFirst().rejection());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generatedSurfaceConnectedCaveAroundRidgeBoreIsSealed() {
|
||||
public void generatedSurfaceConnectedCaveAroundAnUndergroundReachIsSealed() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
42L,
|
||||
41L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -136,7 +136,7 @@ public class HydrologyCaveCourseFilterTest {
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
420L,
|
||||
410L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -218,12 +218,12 @@ public class HydrologyCaveCourseFilterTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ridgeBoreAboveFinalTerrainRejectsTheWholeCourse() {
|
||||
public void undergroundReachAboveFinalTerrainRejectsTheWholeCourse() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
52L,
|
||||
51L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -255,12 +255,12 @@ public class HydrologyCaveCourseFilterTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void surfaceRidgeExposurePreflightChecksTheFullActionBoundaryBeforeVoxelExpansion() {
|
||||
public void surfaceExposurePreflightChecksTheFullActionBoundaryBeforeVoxelExpansion() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
152L,
|
||||
151L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -294,12 +294,12 @@ public class HydrologyCaveCourseFilterTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ridgeSurfaceOpeningExemptsItsCompleteSixNeighborShell() {
|
||||
public void caveSurfaceOpeningExemptsItsCompleteSixNeighborShell() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
162L,
|
||||
161L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -505,7 +505,7 @@ public class HydrologyCaveCourseFilterTest {
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
192L,
|
||||
191L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -598,12 +598,12 @@ public class HydrologyCaveCourseFilterTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void acceptedRidgeBoreRetainsItsExactPlanOnTheImmutableTile() {
|
||||
public void acceptedCaveCourseRetainsItsExactPlanOnTheImmutableTile() {
|
||||
HydrologyTerrainSample terrain = HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
82L,
|
||||
81L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -959,7 +959,7 @@ public class HydrologyCaveCourseFilterTest {
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
102L,
|
||||
101L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
@@ -1034,7 +1034,7 @@ public class HydrologyCaveCourseFilterTest {
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
92L,
|
||||
91L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
20,
|
||||
20,
|
||||
2,
|
||||
|
||||
+64
-129
@@ -16,6 +16,57 @@ import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class HydrologyFootprintCompilerTest {
|
||||
private static final int[][] CARDINALS = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
|
||||
|
||||
/**
|
||||
* Published dry cells cardinally adjacent to owned water whose final terrain sits below the
|
||||
* water head plus the configured freeboard.
|
||||
*/
|
||||
private static int unsupportedBankCells(RiverFootprint footprint, long courseId) {
|
||||
int freeboard = HydrologyPlannerSettings.defaults().surface().banks().freeboard();
|
||||
int unsupported = 0;
|
||||
for (HydrologyColumnSample sample : footprint.columns().values()) {
|
||||
HydrologyColumnLayer fluid = sample.primarySurfaceFluidLayer().orElse(null);
|
||||
if (fluid == null
|
||||
|| fluid.feature().courseId() != courseId
|
||||
|| fluid.oceanApron()
|
||||
|| fluid.fallingFluid()) {
|
||||
continue;
|
||||
}
|
||||
for (int[] offset : CARDINALS) {
|
||||
HydrologyColumnSample neighbor = footprint
|
||||
.sample(sample.x() + offset[0], sample.z() + offset[1])
|
||||
.orElse(null);
|
||||
if (neighbor == null || neighbor.primarySurfaceFluidLayer().isPresent()) {
|
||||
continue;
|
||||
}
|
||||
if (neighbor.terrainHeight() < fluid.fluidHeadY() + freeboard) {
|
||||
unsupported++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return unsupported;
|
||||
}
|
||||
|
||||
/** Deepest cut between natural terrain and the published water head over an owned channel. */
|
||||
private static int maximumSurfaceCut(RiverFootprint footprint, long courseId) {
|
||||
int maximum = 0;
|
||||
for (HydrologyColumnSample sample : footprint.columns().values()) {
|
||||
HydrologyColumnLayer fluid = sample.primarySurfaceFluidLayer().orElse(null);
|
||||
if (fluid == null
|
||||
|| fluid.feature().courseId() != courseId
|
||||
|| fluid.feature().type() == HydrologyFeatureType.MOUTH
|
||||
|| fluid.oceanApron()
|
||||
|| fluid.fallingFluid()
|
||||
|| !fluid.channel()
|
||||
|| !fluid.fluidOwned()) {
|
||||
continue;
|
||||
}
|
||||
maximum = Math.max(maximum, sample.naturalHeight() - fluid.fluidHeadY());
|
||||
}
|
||||
return maximum;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void surfaceChannelNeverRaisesTerrainOrPublishesUnsupportedFluid() {
|
||||
HydraulicSegment segment = new HydraulicSegment(
|
||||
@@ -78,7 +129,7 @@ public class HydrologyFootprintCompilerTest {
|
||||
RiverFootprint footprint = new HydrologyFootprintCompiler(
|
||||
HydrologyPlannerSettings.defaults(),
|
||||
terrain,
|
||||
HydrologyGeometrySampler.deterministic(1L, terrain)
|
||||
HydrologyGeometrySampler.deterministic(terrain)
|
||||
).compile(List.of(course));
|
||||
|
||||
for (int x = 0; x <= 8; x++) {
|
||||
@@ -162,7 +213,7 @@ public class HydrologyFootprintCompilerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void surfaceChannelAtTerrainLevelIsReportedAsUncontained() {
|
||||
public void surfaceChannelAtTerrainLevelHasNoContainingBank() {
|
||||
HydraulicSegment segment = new HydraulicSegment(
|
||||
15L,
|
||||
14L,
|
||||
@@ -180,7 +231,7 @@ public class HydrologyFootprintCompilerTest {
|
||||
HydrologyFootprintCompiler compiler = compiler(terrain);
|
||||
RiverFootprint footprint = compiler.compile(List.of(course));
|
||||
|
||||
assertFalse(compiler.surfaceBanksContained(course));
|
||||
assertTrue(unsupportedBankCells(footprint, 14L) > 0);
|
||||
for (HydrologyColumnSample sample : footprint.columns().values()) {
|
||||
assertTrue(sample.terrainHeight() <= sample.naturalHeight());
|
||||
}
|
||||
@@ -1026,51 +1077,6 @@ public class HydrologyFootprintCompilerTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void surfaceBankGradingTapersAnIntersectingBoreInsteadOfOpeningItsSide() {
|
||||
HydraulicSegment surface = new HydraulicSegment(
|
||||
321L,
|
||||
320L,
|
||||
HydrologyFeatureType.SURFACE_POOL,
|
||||
70,
|
||||
70,
|
||||
6,
|
||||
2,
|
||||
false,
|
||||
false,
|
||||
List.of(new HydrologyPoint(0, 70, 0), new HydrologyPoint(8, 70, 0))
|
||||
);
|
||||
HydraulicSegment ridge = new HydraulicSegment(
|
||||
322L,
|
||||
320L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
74,
|
||||
74,
|
||||
4,
|
||||
2,
|
||||
false,
|
||||
false,
|
||||
List.of(new HydrologyPoint(0, 74, 8), new HydrologyPoint(8, 74, 8))
|
||||
);
|
||||
HydrologyTerrainSampler terrain = (int x, int z) -> HydrologyTerrainSample.openLand(80, 0D, "parent");
|
||||
RiverFootprint footprint = compiler(terrain).compile(List.of(new RiverCourse(
|
||||
320L,
|
||||
RiverCourseType.SURFACE,
|
||||
OptionalLong.of(1L),
|
||||
OptionalLong.of(2L),
|
||||
"water",
|
||||
1,
|
||||
List.of(),
|
||||
List.of(surface, ridge)
|
||||
)));
|
||||
|
||||
HydrologyColumnSample gradedBank = footprint.sample(4, 8).orElseThrow();
|
||||
assertTrue(gradedBank.layers().stream().noneMatch(
|
||||
(HydrologyColumnLayer layer) -> layer.feature().type() == HydrologyFeatureType.RIDGE_BORE
|
||||
));
|
||||
assertTrue(gradedBank.terrainHeight() < gradedBank.naturalHeight());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void compactValidationMatchesFullRasterAcrossOverlapsOceanAndSurfaceOnlyCourses() {
|
||||
RiverCourse mixed = new RiverCourse(
|
||||
@@ -1389,64 +1395,6 @@ public class HydrologyFootprintCompilerTest {
|
||||
int sourceDepth = source.fluidHeadY() - source.bedY();
|
||||
int cruiseDepth = cruise.fluidHeadY() - cruise.bedY();
|
||||
assertTrue(Math.abs(sourceDepth - cruiseDepth) <= 1);
|
||||
assertTrue(compiler.surfaceHeadwaterRampSupported(course));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void incompleteSurfaceBoreCenterlineRejectsTheWholeCourse() {
|
||||
HydraulicSegment entry = new HydraulicSegment(
|
||||
532L,
|
||||
531L,
|
||||
HydrologyFeatureType.SURFACE_POOL,
|
||||
70,
|
||||
70,
|
||||
8,
|
||||
3,
|
||||
false,
|
||||
false,
|
||||
List.of(new HydrologyPoint(0, 70, 0), new HydrologyPoint(16, 70, 0))
|
||||
);
|
||||
HydraulicSegment bore = new HydraulicSegment(
|
||||
533L,
|
||||
531L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
70,
|
||||
70,
|
||||
8,
|
||||
3,
|
||||
false,
|
||||
false,
|
||||
List.of(new HydrologyPoint(16, 70, 0), new HydrologyPoint(48, 70, 0))
|
||||
);
|
||||
HydraulicSegment exit = new HydraulicSegment(
|
||||
534L,
|
||||
531L,
|
||||
HydrologyFeatureType.SURFACE_POOL,
|
||||
70,
|
||||
70,
|
||||
8,
|
||||
3,
|
||||
false,
|
||||
false,
|
||||
List.of(new HydrologyPoint(48, 70, 0), new HydrologyPoint(64, 70, 0))
|
||||
);
|
||||
HydrologyTerrainSampler terrain = (int x, int z) -> HydrologyTerrainSample.openLand(
|
||||
x == 32 ? 70 : 82,
|
||||
0D,
|
||||
"parent"
|
||||
);
|
||||
RiverCourse course = new RiverCourse(
|
||||
531L,
|
||||
RiverCourseType.SURFACE,
|
||||
OptionalLong.of(1L),
|
||||
OptionalLong.of(2L),
|
||||
"water",
|
||||
1,
|
||||
List.of(),
|
||||
List.of(entry, bore, exit)
|
||||
);
|
||||
|
||||
assertFalse(compiler(terrain).surfaceBanksContained(course));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1519,17 +1467,17 @@ public class HydrologyFootprintCompilerTest {
|
||||
RiverFootprint lowBankFootprint = lowBankCompiler.compile(List.of(course));
|
||||
HydrologyColumnSample lowBank = lowBankFootprint.sample(12, lowBankZ).orElseThrow();
|
||||
|
||||
assertTrue(highCompiler.surfaceBanksContained(course));
|
||||
assertEquals(0, unsupportedBankCells(highFootprint, 528L));
|
||||
assertEquals(70, lowBank.naturalHeight());
|
||||
assertEquals(70, lowBank.terrainHeight());
|
||||
assertFalse(lowBankCompiler.surfaceBanksContained(course));
|
||||
assertTrue(unsupportedBankCells(lowBankFootprint, 528L) > 0);
|
||||
for (HydrologyColumnSample sample : lowBankFootprint.columns().values()) {
|
||||
assertTrue(sample.terrainHeight() <= sample.naturalHeight());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void surfaceIncisionContainmentUsesFinalTerrainHeight() {
|
||||
public void publishedSurfaceChannelStaysWithinTheConfiguredIncision() {
|
||||
HydraulicSegment channel = new HydraulicSegment(
|
||||
529L,
|
||||
528L,
|
||||
@@ -1543,28 +1491,16 @@ public class HydrologyFootprintCompilerTest {
|
||||
List.of(new HydrologyPoint(0, 70, 0), new HydrologyPoint(24, 70, 0))
|
||||
);
|
||||
RiverCourse course = course(528L, RiverCourseType.SURFACE, channel);
|
||||
HydrologyFootprintCompiler supported = compiler((int x, int z) ->
|
||||
HydrologyFootprintCompiler compiler = compiler((int x, int z) ->
|
||||
HydrologyTerrainSample.openLand(76, 0D, "parent"));
|
||||
HydrologyTerrainSample routingBasis = HydrologyTerrainSample.openLand(76, 0D, "parent");
|
||||
HydrologyFootprintCompiler excessive = new HydrologyFootprintCompiler(
|
||||
HydrologyPlannerSettings.defaults(),
|
||||
new HydrologyFootprintCompiler.Sampling(
|
||||
(int x, int z) -> HydrologyTerrainSample.openLand(83, 0D, "parent"),
|
||||
request -> request.minimum(),
|
||||
new CountingNaturalSampler(
|
||||
routingBasis,
|
||||
HydrologyRoutingTerrainSampler.NaturalClassification.LAND
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
assertTrue(supported.surfaceIncisionContained(course));
|
||||
RiverFootprint excessiveFootprint = excessive.compile(List.of(course));
|
||||
assertFalse(
|
||||
"center=" + excessiveFootprint.sample(12, 0),
|
||||
excessive.surfaceIncisionContained(course)
|
||||
RiverFootprint footprint = compiler.compile(List.of(course));
|
||||
|
||||
assertTrue(
|
||||
"center=" + footprint.sample(12, 0),
|
||||
maximumSurfaceCut(footprint, 528L)
|
||||
<= HydrologyPlannerSettings.defaults().surface().maximumIncision()
|
||||
);
|
||||
assertFalse(excessive.surfaceIncisionContained(course, excessiveFootprint));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1592,7 +1528,6 @@ public class HydrologyFootprintCompilerTest {
|
||||
HydrologyFootprintCompiler compiler = compiler(terrain);
|
||||
|
||||
assertTrue(compiler.compile(List.of(course)).isEmpty());
|
||||
assertFalse(compiler.surfaceBanksContained(course));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -153,7 +153,7 @@ public class HydrologyModelTest {
|
||||
HydraulicSegment containedLip = new HydraulicSegment(
|
||||
4L,
|
||||
9L,
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.SURFACE_POOL,
|
||||
80,
|
||||
80,
|
||||
4,
|
||||
|
||||
+2
-19
@@ -252,8 +252,7 @@ public class HydrologyPlannerCrossTileCaveAdmissionIntegrationTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(256, 16, 4, 1_089, 256,
|
||||
new HydrologyPlannerSettings.Branching(16, 8), 0.5D, 12D, 0.5D, 0.2D),
|
||||
new HydrologyPlannerSettings.Routing(256, 16, 1_089, 256, 16, 8, 0.5D, 12D, 0.5D, 0.2D),
|
||||
new HydrologyPlannerSettings.Surface(
|
||||
true,
|
||||
surfaceSources,
|
||||
@@ -261,18 +260,10 @@ public class HydrologyPlannerCrossTileCaveAdmissionIntegrationTest {
|
||||
20,
|
||||
2,
|
||||
5,
|
||||
4,
|
||||
8,
|
||||
12,
|
||||
1.5D,
|
||||
4,
|
||||
10,
|
||||
true,
|
||||
96,
|
||||
10
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(12, 40, 1, 3, 8, 4),
|
||||
new HydrologyPlannerSettings.Hydraulics(4),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
true,
|
||||
undergroundSources,
|
||||
@@ -343,16 +334,8 @@ public class HydrologyPlannerCrossTileCaveAdmissionIntegrationTest {
|
||||
baseSurface.maximumWidth(),
|
||||
baseSurface.minimumDepth(),
|
||||
baseSurface.maximumDepth(),
|
||||
baseSurface.minimumSurfaceInset(),
|
||||
baseSurface.maximumSurfaceInset(),
|
||||
64,
|
||||
baseSurface.shoreWidth(),
|
||||
baseSurface.minimumTerrainBlendWidth(),
|
||||
baseSurface.maximumTerrainBlendWidth(),
|
||||
baseSurface.ridgeTunnelsEnabled(),
|
||||
baseSurface.maximumRidgeTunnelLength(),
|
||||
baseSurface.ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
base.hydraulics(),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
|
||||
+9
-28
@@ -639,33 +639,31 @@ public class HydrologyPlannerGlobalInvariantTest {
|
||||
boolean undergroundEnabled,
|
||||
List<HydrologyPlannerSettings.DeepFluid> deepFluids
|
||||
) {
|
||||
return settingsWithRefinement(
|
||||
return plannerSettings(
|
||||
surfaceSources,
|
||||
undergroundSources,
|
||||
surfaceEnabled,
|
||||
undergroundEnabled,
|
||||
deepFluids,
|
||||
4
|
||||
deepFluids
|
||||
);
|
||||
}
|
||||
|
||||
private HydrologyPlannerSettings settingsWithRefinement(
|
||||
private HydrologyPlannerSettings plannerSettings(
|
||||
HydrologyPlannerSettings.Source surfaceSources,
|
||||
HydrologyPlannerSettings.Source undergroundSources,
|
||||
boolean surfaceEnabled,
|
||||
boolean undergroundEnabled,
|
||||
List<HydrologyPlannerSettings.DeepFluid> deepFluids,
|
||||
int refinementSpacing
|
||||
List<HydrologyPlannerSettings.DeepFluid> deepFluids
|
||||
) {
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(
|
||||
TILE_SIZE,
|
||||
16,
|
||||
refinementSpacing,
|
||||
512,
|
||||
256,
|
||||
new HydrologyPlannerSettings.Branching(16, 8),
|
||||
16,
|
||||
8,
|
||||
0.5D,
|
||||
12D,
|
||||
0.5D,
|
||||
@@ -678,18 +676,10 @@ public class HydrologyPlannerGlobalInvariantTest {
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
128,
|
||||
1D,
|
||||
1,
|
||||
2,
|
||||
false,
|
||||
0,
|
||||
0
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(8, 16, 1, 3, 8, 4),
|
||||
new HydrologyPlannerSettings.Hydraulics(4),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
undergroundEnabled,
|
||||
undergroundSources,
|
||||
@@ -724,13 +714,12 @@ public class HydrologyPlannerGlobalInvariantTest {
|
||||
boolean surfaceEnabled,
|
||||
boolean undergroundEnabled
|
||||
) {
|
||||
HydrologyPlannerSettings base = settingsWithRefinement(
|
||||
HydrologyPlannerSettings base = plannerSettings(
|
||||
surfaceSources,
|
||||
undergroundSources,
|
||||
surfaceEnabled,
|
||||
undergroundEnabled,
|
||||
List.of(),
|
||||
8
|
||||
List.of()
|
||||
);
|
||||
HydrologyPlannerSettings.Surface surface = base.surface();
|
||||
HydrologyPlannerSettings.Underground underground = base.underground();
|
||||
@@ -744,16 +733,8 @@ public class HydrologyPlannerGlobalInvariantTest {
|
||||
surface.minimumWidth(),
|
||||
surface.minimumDepth(),
|
||||
surface.maximumDepth(),
|
||||
surface.minimumSurfaceInset(),
|
||||
surface.maximumSurfaceInset(),
|
||||
surface.maximumIncision(),
|
||||
surface.shoreWidth(),
|
||||
surface.minimumTerrainBlendWidth(),
|
||||
surface.maximumTerrainBlendWidth(),
|
||||
surface.ridgeTunnelsEnabled(),
|
||||
surface.maximumRidgeTunnelLength(),
|
||||
surface.ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
base.hydraulics(),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
|
||||
+3
-3
@@ -38,7 +38,7 @@ public class HydrologyPlannerRoutingSamplerTest {
|
||||
settings,
|
||||
detailSampler,
|
||||
routingSampler,
|
||||
HydrologyGeometrySampler.deterministic(17L, detailSampler),
|
||||
HydrologyGeometrySampler.deterministic(detailSampler),
|
||||
-4096,
|
||||
footprint -> new HydrologyTerrainCaveVoxelView(detailSampler, settings.seaLevel(), -4096, 4096)
|
||||
);
|
||||
@@ -70,7 +70,7 @@ public class HydrologyPlannerRoutingSamplerTest {
|
||||
settings,
|
||||
detailSampler,
|
||||
routingSampler,
|
||||
HydrologyGeometrySampler.deterministic(19L, detailSampler),
|
||||
HydrologyGeometrySampler.deterministic(detailSampler),
|
||||
-4096,
|
||||
footprint -> new HydrologyTerrainCaveVoxelView(detailSampler, settings.seaLevel(), -4096, 4096)
|
||||
);
|
||||
@@ -108,7 +108,7 @@ public class HydrologyPlannerRoutingSamplerTest {
|
||||
settings,
|
||||
detailSampler,
|
||||
routingSampler,
|
||||
HydrologyGeometrySampler.deterministic(23L, detailSampler),
|
||||
HydrologyGeometrySampler.deterministic(detailSampler),
|
||||
-4096,
|
||||
footprint -> new HydrologyTerrainCaveVoxelView(detailSampler, settings.seaLevel(), -4096, 4096)
|
||||
);
|
||||
|
||||
+18
-32
@@ -11,11 +11,19 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class HydrologyPlannerSettingsTest {
|
||||
@Test
|
||||
public void branchingUsesIndependentSurfaceAndUndergroundCourseFloors() {
|
||||
HydrologyPlannerSettings.Branching branching = new HydrologyPlannerSettings.Branching(384, 192);
|
||||
public void routingUsesIndependentSurfaceAndUndergroundCourseFloors() {
|
||||
HydrologyPlannerSettings.Routing routing = HydrologyPlannerSettings.defaults().routing();
|
||||
|
||||
assertEquals(384, branching.minimumCourseLength(true));
|
||||
assertEquals(192, branching.minimumCourseLength(false));
|
||||
assertEquals(384, routing.minimumCourseLength(true));
|
||||
assertEquals(192, routing.minimumCourseLength(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refinementSpacingIsDerivedFromTheSampleLattice() {
|
||||
assertEquals(4, HydrologyPlannerSettings.Routing.refinementSpacing(64));
|
||||
assertEquals(2, HydrologyPlannerSettings.Routing.refinementSpacing(50));
|
||||
assertEquals(1, HydrologyPlannerSettings.Routing.refinementSpacing(45));
|
||||
assertEquals(4, HydrologyPlannerSettings.defaults().routing().refinementSpacing());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,10 +71,10 @@ public class HydrologyPlannerSettingsTest {
|
||||
HydrologyPlannerSettings.Routing routing = new HydrologyPlannerSettings.Routing(
|
||||
512,
|
||||
512,
|
||||
64,
|
||||
4,
|
||||
256,
|
||||
new HydrologyPlannerSettings.Branching(0, 0),
|
||||
0,
|
||||
0,
|
||||
0D,
|
||||
0D,
|
||||
0D,
|
||||
@@ -80,25 +88,10 @@ public class HydrologyPlannerSettingsTest {
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1D,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
0,
|
||||
0
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults());
|
||||
HydrologyPlannerSettings.Hydraulics hydraulics = new HydrologyPlannerSettings.Hydraulics(
|
||||
8,
|
||||
8,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1
|
||||
);
|
||||
HydrologyPlannerSettings.Hydraulics hydraulics = new HydrologyPlannerSettings.Hydraulics(1);
|
||||
HydrologyPlannerSettings.Grotto grotto = new HydrologyPlannerSettings.Grotto(true, 1, 1, 1, 1);
|
||||
HydrologyPlannerSettings.Outlets outlets = new HydrologyPlannerSettings.Outlets(
|
||||
true,
|
||||
@@ -168,20 +161,13 @@ public class HydrologyPlannerSettingsTest {
|
||||
assertThrows(IllegalArgumentException.class, () -> new HydrologyPlannerSettings.Surface(
|
||||
true,
|
||||
new HydrologyPlannerSettings.Source(true, 1D, 0, 0, 1, 0),
|
||||
1, 1, 1, 1, 1, 1, 0, 1D, 0, 0, false, 0, 0,
|
||||
1, 1, 1, 1, 0, 1D,
|
||||
null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void inconsistentHydraulicThresholdsAreRejected() {
|
||||
assertThrows(IllegalArgumentException.class, () -> new HydrologyPlannerSettings.Hydraulics(
|
||||
8,
|
||||
16,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
));
|
||||
public void nonPositiveWaterfallThresholdsAreRejected() {
|
||||
assertThrows(IllegalArgumentException.class, () -> new HydrologyPlannerSettings.Hydraulics(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -522,35 +522,14 @@ public class HydrologyPlannerTest {
|
||||
assertFalse("diagnostics=" + tile.diagnosticCandidates(), surfaceCourses(tile).isEmpty());
|
||||
boolean aggregateTransition = false;
|
||||
for (RiverCourse course : surfaceCourses(tile)) {
|
||||
double recovery = Double.POSITIVE_INFINITY;
|
||||
boolean transitionActive = false;
|
||||
for (HydraulicSegment segment : course.segments()) {
|
||||
boolean surfaceDrop = segment.type().isSurface() && segment.type().isDrop();
|
||||
if (surfaceDrop) {
|
||||
if (!transitionActive) {
|
||||
assertTrue(
|
||||
"segments=" + course.segments(),
|
||||
!Double.isFinite(recovery)
|
||||
|| recovery >= settings.hydraulics().minimumTargetPoolLength()
|
||||
);
|
||||
}
|
||||
recovery = 0D;
|
||||
transitionActive = !segment.receivingPool();
|
||||
if (segment.type() == HydrologyFeatureType.WATERFALL
|
||||
&& segment.drop() >= settings.hydraulics().waterfallMinimumDrop()) {
|
||||
aggregateTransition = true;
|
||||
}
|
||||
if (segment.drop() < settings.hydraulics().waterfallMinimumDrop()) {
|
||||
continue;
|
||||
}
|
||||
if (segment.type() == HydrologyFeatureType.UNDERGROUND_DROP
|
||||
&& segment.drop() >= settings.hydraulics().waterfallMinimumDrop()) {
|
||||
if (segment.type() == HydrologyFeatureType.WATERFALL
|
||||
|| segment.type() == HydrologyFeatureType.UNDERGROUND_DROP) {
|
||||
aggregateTransition = true;
|
||||
}
|
||||
if (transitionActive && segment.receivingPool()) {
|
||||
transitionActive = false;
|
||||
} else if (!transitionActive && Double.isFinite(recovery)) {
|
||||
recovery += segmentLength(segment);
|
||||
}
|
||||
}
|
||||
}
|
||||
assertTrue("courses=" + surfaceCourses(tile), aggregateTransition);
|
||||
@@ -597,10 +576,8 @@ public class HydrologyPlannerTest {
|
||||
new HydrologyPlannerSettings.Routing(
|
||||
routing.tileSize(),
|
||||
routing.sampleSpacing(),
|
||||
routing.refinementSpacing(),
|
||||
routing.maximumRouteNodes(),
|
||||
routing.maximumRouteLength(),
|
||||
new HydrologyPlannerSettings.Branching(96, 0),
|
||||
routing.maximumRouteLength(), 96, 0,
|
||||
routing.valleyPreference(),
|
||||
routing.uphillPenalty(),
|
||||
routing.slopePenalty(),
|
||||
@@ -792,7 +769,7 @@ public class HydrologyPlannerTest {
|
||||
333L,
|
||||
settings,
|
||||
coast,
|
||||
HydrologyGeometrySampler.deterministic(333L, coast),
|
||||
HydrologyGeometrySampler.deterministic(coast),
|
||||
-4096,
|
||||
footprint -> solidCaveView()
|
||||
).plan(TILE);
|
||||
@@ -1134,16 +1111,8 @@ public class HydrologyPlannerTest {
|
||||
base.surface().maximumWidth(),
|
||||
base.surface().minimumDepth(),
|
||||
8,
|
||||
base.surface().minimumSurfaceInset(),
|
||||
base.surface().maximumSurfaceInset(),
|
||||
128,
|
||||
base.surface().shoreWidth(),
|
||||
base.surface().minimumTerrainBlendWidth(),
|
||||
base.surface().maximumTerrainBlendWidth(),
|
||||
base.surface().ridgeTunnelsEnabled(),
|
||||
base.surface().maximumRidgeTunnelLength(),
|
||||
base.surface().ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults());
|
||||
HydrologyPlannerSettings shaped = new HydrologyPlannerSettings(
|
||||
base.seaLevel(),
|
||||
@@ -1432,16 +1401,8 @@ public class HydrologyPlannerTest {
|
||||
surface.maximumWidth(),
|
||||
surface.minimumDepth(),
|
||||
surface.maximumDepth(),
|
||||
surface.minimumSurfaceInset(),
|
||||
surface.maximumSurfaceInset(),
|
||||
surface.maximumIncision(),
|
||||
surface.shoreWidth(),
|
||||
surface.minimumTerrainBlendWidth(),
|
||||
surface.maximumTerrainBlendWidth(),
|
||||
surface.ridgeTunnelsEnabled(),
|
||||
32,
|
||||
surface.ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
base.hydraulics(),
|
||||
base.underground(),
|
||||
@@ -1772,8 +1733,7 @@ public class HydrologyPlannerTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 4, 512, 256,
|
||||
new HydrologyPlannerSettings.Branching(0, 0), 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 512, 256, 0, 0, 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Surface(
|
||||
surfaceDensity > 0D || surfaceSources.maximumPerTile() > 0,
|
||||
surfaceSources,
|
||||
@@ -1781,18 +1741,10 @@ public class HydrologyPlannerTest {
|
||||
18,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
8,
|
||||
10,
|
||||
1.5D,
|
||||
4,
|
||||
8,
|
||||
true,
|
||||
64,
|
||||
8
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(12, 28, 1, 3, 8, 4),
|
||||
new HydrologyPlannerSettings.Hydraulics(4),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
undergroundDensity > 0D,
|
||||
undergroundSources,
|
||||
@@ -1842,10 +1794,8 @@ public class HydrologyPlannerTest {
|
||||
new HydrologyPlannerSettings.Routing(
|
||||
512,
|
||||
64,
|
||||
4,
|
||||
1024,
|
||||
2048,
|
||||
new HydrologyPlannerSettings.Branching(64, 32),
|
||||
2048, 64, 32,
|
||||
1.5D,
|
||||
24D,
|
||||
2D,
|
||||
@@ -1858,18 +1808,10 @@ public class HydrologyPlannerTest {
|
||||
surface.maximumWidth(),
|
||||
surface.minimumDepth(),
|
||||
surface.maximumDepth(),
|
||||
surface.minimumSurfaceInset(),
|
||||
surface.maximumSurfaceInset(),
|
||||
96,
|
||||
surface.shoreWidth(),
|
||||
surface.minimumTerrainBlendWidth(),
|
||||
surface.maximumTerrainBlendWidth(),
|
||||
surface.ridgeTunnelsEnabled(),
|
||||
192,
|
||||
surface.ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(12, 28, 1, 4, 12, 5),
|
||||
new HydrologyPlannerSettings.Hydraulics(5),
|
||||
base.underground(),
|
||||
new HydrologyPlannerSettings.Outlets(
|
||||
true,
|
||||
@@ -2172,16 +2114,8 @@ public class HydrologyPlannerTest {
|
||||
surface.maximumWidth(),
|
||||
surface.minimumDepth(),
|
||||
surface.maximumDepth(),
|
||||
surface.minimumSurfaceInset(),
|
||||
surface.maximumSurfaceInset(),
|
||||
surface.maximumIncision(),
|
||||
surface.shoreWidth(),
|
||||
surface.minimumTerrainBlendWidth(),
|
||||
surface.maximumTerrainBlendWidth(),
|
||||
surface.ridgeTunnelsEnabled(),
|
||||
surface.maximumRidgeTunnelLength(),
|
||||
surface.ridgeTunnelHeadroom()
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
settings.hydraulics(),
|
||||
settings.underground(),
|
||||
|
||||
+2
-11
@@ -192,8 +192,7 @@ public class HydrologyStyledGeometryTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 4, 512, 256,
|
||||
new HydrologyPlannerSettings.Branching(16, 8), 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 512, 256, 16, 8, 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Surface(
|
||||
surfaceDensity > 0D,
|
||||
surfaceSources,
|
||||
@@ -201,18 +200,10 @@ public class HydrologyStyledGeometryTest {
|
||||
18,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
8,
|
||||
10,
|
||||
1.5D,
|
||||
4,
|
||||
8,
|
||||
true,
|
||||
96,
|
||||
8
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(12, 28, 1, 3, 8, 4),
|
||||
new HydrologyPlannerSettings.Hydraulics(4),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
undergroundDensity > 0D,
|
||||
undergroundSources,
|
||||
|
||||
@@ -243,10 +243,10 @@ public class HydrologyTileCacheTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(64, 16, 4, 128, 64,
|
||||
new HydrologyPlannerSettings.Branching(0, 0), 0D, 0D, 0D, 0D),
|
||||
new HydrologyPlannerSettings.Surface(false, disabled, 2, 4, 1, 2, 2, 4, 4, 1D, 2, 4, false, 0, 0, HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(8, 16, 1, 2, 8, 3),
|
||||
new HydrologyPlannerSettings.Routing(64, 16, 128, 64, 0, 0, 0D, 0D, 0D, 0D),
|
||||
new HydrologyPlannerSettings.Surface(false, disabled, 2, 4, 1, 2, 4, 1D,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(3),
|
||||
new HydrologyPlannerSettings.Underground(false, disabled, -32, 32, 2, 4, 1, 2, 3, 4, false),
|
||||
new HydrologyPlannerSettings.Outlets(
|
||||
false,
|
||||
@@ -282,10 +282,9 @@ public class HydrologyTileCacheTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(64, 16, 4, 128, 96,
|
||||
new HydrologyPlannerSettings.Branching(16, 8), 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Surface(true, surfaceSources, 4, 8, 2, 3, 4, 8, 20, 1.5D, 2, 4, true, 96, 8, tileBoundedBanks()),
|
||||
new HydrologyPlannerSettings.Hydraulics(8, 16, 1, 2, 8, 3),
|
||||
new HydrologyPlannerSettings.Routing(64, 16, 128, 96, 16, 8, 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Surface(true, surfaceSources, 4, 8, 2, 3, 20, 1.5D, tileBoundedBanks()),
|
||||
new HydrologyPlannerSettings.Hydraulics(3),
|
||||
new HydrologyPlannerSettings.Underground(false, disabled, -32, 32, 2, 4, 1, 2, 3, 4, false),
|
||||
new HydrologyPlannerSettings.Outlets(
|
||||
true,
|
||||
|
||||
+4
-4
@@ -114,14 +114,14 @@ public class IrisHydrologyRuntimeSettingsTest {
|
||||
assertEquals(8, settings.hydraulics().waterfallMinimumDrop());
|
||||
assertEquals(96, settings.outlets().mouthLevelingDistance());
|
||||
assertEquals(4, settings.routing().refinementSpacing());
|
||||
assertEquals(500, settings.routing().branching().minimumSurfaceCourseLength());
|
||||
assertEquals(250, settings.routing().branching().minimumUndergroundCourseLength());
|
||||
assertEquals(500, settings.routing().minimumSurfaceCourseLength());
|
||||
assertEquals(250, settings.routing().minimumUndergroundCourseLength());
|
||||
assertEquals(2.5D, settings.routing().valleyPreference(), 0D);
|
||||
assertEquals(30D, settings.routing().uphillPenalty(), 0D);
|
||||
assertEquals(3D, settings.routing().slopePenalty(), 0D);
|
||||
assertEquals(0.4D, settings.routing().confluenceAttraction(), 0D);
|
||||
assertEquals(2, IrisHydrologyRuntime.refinementSpacing(50));
|
||||
assertEquals(1, IrisHydrologyRuntime.refinementSpacing(45));
|
||||
assertEquals(2, HydrologyPlannerSettings.Routing.refinementSpacing(50));
|
||||
assertEquals(1, HydrologyPlannerSettings.Routing.refinementSpacing(45));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+1
-1
@@ -172,7 +172,7 @@ public class ErosionFieldCompilerTest {
|
||||
return new HydrologyPlannerSettings.Surface(
|
||||
true,
|
||||
defaults.sources(),
|
||||
4, 8, 2, 4, 1, 1, 10, 1.5D, 4, 32, false, 1, 1,
|
||||
4, 8, 2, 4, 10, 1.5D,
|
||||
new HydrologyPlannerSettings.Banks(1, 1, 3D, 4, 32, 0D, 16, 2, 6, 1.6D, true)
|
||||
);
|
||||
}
|
||||
|
||||
+8
-17
@@ -746,10 +746,10 @@ public class MantleHydrologyComponentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sameCourseSurfaceFluidOwnsAChangedRidgeBoundary() {
|
||||
public void sameCourseSurfaceFluidOwnsAChangedCaveBoundary() {
|
||||
long courseId = 33L;
|
||||
HydrologyColumnLayer ridge = layerForCourse(
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
34L,
|
||||
courseId,
|
||||
10L,
|
||||
@@ -1115,7 +1115,7 @@ public class MantleHydrologyComponentTest {
|
||||
"river"
|
||||
);
|
||||
HydrologyColumnLayer cave = layer(
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
72L,
|
||||
15L,
|
||||
20,
|
||||
@@ -1158,7 +1158,7 @@ public class MantleHydrologyComponentTest {
|
||||
"river"
|
||||
);
|
||||
HydrologyColumnLayer cave = layer(
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
72L,
|
||||
15L,
|
||||
20,
|
||||
@@ -1192,7 +1192,7 @@ public class MantleHydrologyComponentTest {
|
||||
"river"
|
||||
);
|
||||
HydrologyColumnLayer cave = layer(
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
74L,
|
||||
17L,
|
||||
20,
|
||||
@@ -1245,7 +1245,7 @@ public class MantleHydrologyComponentTest {
|
||||
"lava"
|
||||
);
|
||||
HydrologyColumnLayer cave = layer(
|
||||
HydrologyFeatureType.RIDGE_BORE,
|
||||
HydrologyFeatureType.UNDERGROUND_POOL,
|
||||
76L,
|
||||
19L,
|
||||
17,
|
||||
@@ -1530,8 +1530,7 @@ public class MantleHydrologyComponentTest {
|
||||
);
|
||||
return new HydrologyPlannerSettings(
|
||||
63,
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 8, 512, 256,
|
||||
new HydrologyPlannerSettings.Branching(16, 8), 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Routing(128, 16, 512, 256, 16, 8, 0.5D, 12D, 0.5D, 0.1D),
|
||||
new HydrologyPlannerSettings.Surface(
|
||||
true,
|
||||
surfaceSources,
|
||||
@@ -1539,18 +1538,10 @@ public class MantleHydrologyComponentTest {
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
128,
|
||||
0D,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
0,
|
||||
0
|
||||
,
|
||||
HydrologyPlannerSettings.Banks.defaults()),
|
||||
new HydrologyPlannerSettings.Hydraulics(8, 16, 1, 3, 8, 4),
|
||||
new HydrologyPlannerSettings.Hydraulics(4),
|
||||
new HydrologyPlannerSettings.Underground(
|
||||
false,
|
||||
disabledSources,
|
||||
|
||||
Reference in new issue
Block a user