mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-27 06:20:02 +00:00
Transition dry layer fix
- Dry layers keep head and ceiling equal to the bed after the transition taper - Displaced layers that dry out also keep head and ceiling at the bed - Transition displacement reads its datum from the original fluid head - Tests cover dry banks and drying channels across a transition band
This commit is contained in:
1 parent
7b06cd51ac
commit
3722602a78
2 files changed
+91
-21
No files matched your search
@@ -1085,16 +1085,18 @@ public class IrisComplex implements DataProvider {
|
||||
continue;
|
||||
}
|
||||
HydrologyColumnLayer original = sample.layers().get(index);
|
||||
int head = (int) Math.round(transitionDisplacement.fluidHeight(sample.x(), sample.z(), layer.fluidHeadY()));
|
||||
int displacedHead = (int) Math.round(
|
||||
transitionDisplacement.fluidHeight(sample.x(), sample.z(), original.fluidHeadY()));
|
||||
boolean channel = original.channel() && layer.bedY() <= displacedHead;
|
||||
int head = channel ? displacedHead : layer.bedY();
|
||||
if ((tapered.naturalHeight() < seaLevel || tapered.naturalHeight() == seaLevel && head > seaLevel)
|
||||
&& (original.terrainOwned() || original.fluidOwned() || original.grading() || original.shore())) {
|
||||
continue;
|
||||
}
|
||||
boolean dryChannel = original.channel() && layer.bedY() > head;
|
||||
layers.add(new HydrologyColumnLayer(layer.feature(), layer.bedY(),
|
||||
head, head, original.channel() && !dryChannel, layer.shore(), layer.grading(), original.connectedFluid() && !dryChannel,
|
||||
original.fallingFluid() && !dryChannel, original.receivingPool() && !dryChannel,
|
||||
layer.terrainOwned(), original.fluidOwned() && !dryChannel, layer.oceanApron(),
|
||||
head, head, channel, layer.shore(), layer.grading(), original.connectedFluid() && channel,
|
||||
original.fallingFluid() && channel, original.receivingPool() && channel,
|
||||
layer.terrainOwned(), original.fluidOwned() && channel, layer.oceanApron(),
|
||||
layer.profileKey(), layer.surfaceBiomeKey(), layer.mouthBiomeKey(), layer.shoreBiomeKey(),
|
||||
layer.bankBiomeKey(), layer.floodedCaveBiomeKey()));
|
||||
}
|
||||
@@ -1136,20 +1138,21 @@ public class IrisComplex implements DataProvider {
|
||||
return layer;
|
||||
}
|
||||
int bed = GenerationBlend.interpolateHeight(naturalHeight, layer.bedY(), hydrologyWeight);
|
||||
boolean dryChannel = layer.channel() && bed > layer.fluidHeadY();
|
||||
boolean channel = layer.channel() && bed <= layer.fluidHeadY();
|
||||
int head = channel ? layer.fluidHeadY() : bed;
|
||||
return new HydrologyColumnLayer(
|
||||
layer.feature(),
|
||||
bed,
|
||||
layer.fluidHeadY(),
|
||||
layer.ceilingY(),
|
||||
layer.channel() && !dryChannel,
|
||||
head,
|
||||
head,
|
||||
channel,
|
||||
layer.shore(),
|
||||
layer.grading(),
|
||||
layer.connectedFluid() && !dryChannel,
|
||||
layer.fallingFluid() && !dryChannel,
|
||||
layer.receivingPool() && !dryChannel,
|
||||
layer.connectedFluid() && channel,
|
||||
layer.fallingFluid() && channel,
|
||||
layer.receivingPool() && channel,
|
||||
layer.terrainOwned(),
|
||||
layer.fluidOwned() && !dryChannel,
|
||||
layer.fluidOwned() && channel,
|
||||
layer.oceanApron(),
|
||||
layer.profileKey(),
|
||||
layer.surfaceBiomeKey(),
|
||||
|
||||
Reference in new issue
Block a user