mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-05 15:26:28 +00:00
Remove vertical domains for now
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
package com.volmit.iris.engine;
|
||||
|
||||
import com.google.common.util.concurrent.AtomicDouble;
|
||||
import com.google.gson.Gson;
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.core.project.loader.IrisData;
|
||||
import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator;
|
||||
@@ -33,10 +34,12 @@ import com.volmit.iris.engine.object.dimensional.IrisTerrainMode;
|
||||
import com.volmit.iris.engine.object.feature.IrisFeaturePositional;
|
||||
import com.volmit.iris.engine.object.noise.IrisGenerator;
|
||||
import com.volmit.iris.engine.object.noise.IrisInterpolator;
|
||||
import com.volmit.iris.engine.object.noise.IrisShapedGeneratorStyle;
|
||||
import com.volmit.iris.engine.object.regional.IrisRegion;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.collection.KMap;
|
||||
import com.volmit.iris.util.data.DataProvider;
|
||||
import com.volmit.iris.util.function.NoiseProvider;
|
||||
import com.volmit.iris.util.math.M;
|
||||
import com.volmit.iris.util.math.RNG;
|
||||
import com.volmit.iris.util.noise.CNG;
|
||||
@@ -77,16 +80,15 @@ public class IrisComplex implements DataProvider {
|
||||
private ProceduralStream<Biome> trueBiomeDerivativeStream;
|
||||
private ProceduralStream<Double> heightStream;
|
||||
private ProceduralStream<Double> heightStreamNoFeatures;
|
||||
private ProceduralStream<Double> heightDomainStreamNoFeatures;
|
||||
private ProceduralStream<Double> objectChanceStream;
|
||||
private ProceduralStream<Double> maxHeightStream;
|
||||
private ProceduralStream<Double> overlayStream;
|
||||
private ProceduralStream<Double> heightFluidStream;
|
||||
private ProceduralStream<Integer> trueHeightStream;
|
||||
private ProceduralStream<Integer> trueHeightDomainStream;
|
||||
private ProceduralStream<Double> slopeStream;
|
||||
private ProceduralStream<Integer> islandTopStream;
|
||||
private ProceduralStream<Integer> islandBottomStream;
|
||||
private ProceduralStream<Integer> topSurfaceStream;
|
||||
private ProceduralStream<RNG> rngStream;
|
||||
private ProceduralStream<RNG> chunkRngStream;
|
||||
private ProceduralStream<IrisDecorator> terrainSurfaceDecoration;
|
||||
@@ -229,25 +231,6 @@ public class IrisComplex implements DataProvider {
|
||||
IrisBiome b = focus != null ? focus : baseBiomeStream.get(x, z);
|
||||
return getHeight(engine, b, x, z, engine.getWorld().seed(), false);
|
||||
}, Interpolated.DOUBLE).clamp(0, engine.getHeight()).cache2D(cacheSize);
|
||||
heightDomainStreamNoFeatures = engine.getDimension().getVerticalDomain().isFlat()
|
||||
? heightStreamNoFeatures
|
||||
: ProceduralStream.of((x, z) -> {
|
||||
double hh = 0;
|
||||
double v, i;
|
||||
|
||||
for(i = 0; i < engine.getHeight(); i++)
|
||||
{
|
||||
double ox = engine.getDimension().getVerticalDomain().get(rng, getData(), i - 12345);
|
||||
double oz = engine.getDimension().getVerticalDomain().get(rng, getData(), i + 54321);
|
||||
v = heightStreamNoFeatures.get(x+ox, z+oz);
|
||||
if(v > hh)
|
||||
{
|
||||
hh = v;
|
||||
}
|
||||
}
|
||||
|
||||
return hh;
|
||||
}, Interpolated.DOUBLE).cache2D(cacheSize);
|
||||
slopeStream = heightStream.slope(3).cache2D(cacheSize);
|
||||
objectChanceStream = ProceduralStream.ofDouble((x, z) -> {
|
||||
if (engine.getDimension().hasFeatures(engine)) {
|
||||
@@ -345,7 +328,6 @@ public class IrisComplex implements DataProvider {
|
||||
.convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_SURFACE)).cache2D(cacheSize);
|
||||
seaFloorDecoration = trueBiomeStream
|
||||
.convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_FLOOR)).cache2D(cacheSize);
|
||||
|
||||
trueHeightStream = ProceduralStream.of((x, z) -> {
|
||||
int rx = (int) Math.round(engine.modifyX(x));
|
||||
int rz = (int) Math.round(engine.modifyZ(z));
|
||||
@@ -393,26 +375,6 @@ public class IrisComplex implements DataProvider {
|
||||
.get(x, z) : 0);
|
||||
islandBottomStream = islandStream.convertAware2D((i, x, z) ->
|
||||
i ? islandHeightStream.subtract(islandDepthStream).round().get(x, z) : 0);
|
||||
|
||||
trueHeightDomainStream = engine.getDimension().getVerticalDomain().isFlat()
|
||||
? trueHeightStream
|
||||
: ProceduralStream.of((x, z) -> {
|
||||
double hh = 0;
|
||||
double v, i;
|
||||
|
||||
for(i = 0; i < engine.getHeight(); i++)
|
||||
{
|
||||
double ox = engine.getDimension().getVerticalDomain().get(rng, getData(), i - 12345);
|
||||
double oz = engine.getDimension().getVerticalDomain().get(rng, getData(), i + 54321);
|
||||
v = trueHeightStream.get(x+ox, z+oz);
|
||||
if(v > hh)
|
||||
{
|
||||
hh = v;
|
||||
}
|
||||
}
|
||||
|
||||
return (int)Math.round(hh);
|
||||
}, Interpolated.INT).cache2D(cacheSize);
|
||||
//@done
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user