Goto Object

This commit is contained in:
Daniel Mills
2020-11-14 21:38:22 -05:00
parent 6b8610b72d
commit d9e18e0f3b
13 changed files with 406 additions and 40 deletions

View File

@@ -49,7 +49,6 @@ public class IrisComplex implements DataProvider
private ProceduralStream<IrisDecorator> shoreSurfaceDecoration;
private ProceduralStream<BlockData> rockStream;
private ProceduralStream<BlockData> fluidStream;
private ProceduralStream<BlockData> glassStream;
public ProceduralStream<IrisBiome> getBiomeStream(InferredType type)
{
@@ -76,14 +75,12 @@ public class IrisComplex implements DataProvider
public IrisComplex(Engine engine)
{
int cacheSize = 8192;
BlockData glass = B.get("GLASS");
this.rng = new RNG(engine.getWorld().getSeed());
this.data = engine.getData();
double height = engine.getHeight();
fluidHeight = engine.getDimension().getFluidHeight();
generators = new KList<>();
RNG rng = new RNG(engine.getWorld().getSeed());
glassStream = ProceduralStream.of((x,y,z) -> glass, Interpolated.BLOCK_DATA);
//@builder
engine.getDimension().getRegions().forEach((i) -> data.getRegionLoader().load(i)
.getAllBiomes(this).forEach((b) -> b
@@ -145,9 +142,11 @@ public class IrisComplex implements DataProvider
baseBiomeStream = bridgeStream.convertAware2D((t, x, z) -> t.equals(InferredType.SEA)
? seaBiomeStream.get(x, z) : landBiomeStream.get(x, z))
.convertAware2D(this::implode).cache2D(cacheSize);
heightStream = baseBiomeStream.convertAware2D((b, x, z) -> getHeight(b, x, z, engine.getWorld().getSeed()))
.roundDouble().cache2D(cacheSize);
slopeStream = heightStream.slope().cache2D(cacheSize);
heightStream = ProceduralStream.of((x, z) -> {
IrisBiome b = baseBiomeStream.get(x, z);
return getHeight(b, x, z, engine.getWorld().getSeed());
}, Interpolated.DOUBLE).cache2D(cacheSize);
slopeStream = heightStream.slope(4).interpolate().bilinear(4, 4).cache2D(cacheSize);
trueBiomeStream = heightStream
.convertAware2D((h, x, z) ->
fixBiomeType(h, baseBiomeStream.get(x, z),

View File

@@ -95,10 +95,11 @@ public class IrisEngine extends BlockPopulator implements Engine
() -> getFramework().getRavineModifier().modify(x, z, blocks)
);
MultiBurst.burst.burst(
() -> getFramework().getDecorantActuator().actuate(x, z, blocks),
() -> getFramework().getDepositModifier().modify(x, z, blocks),
() -> getFramework().getPostModifier().modify(x, z, blocks)
() -> getFramework().getPostModifier().modify(x, z, blocks),
() -> getFramework().getDecorantActuator().actuate(x, z, blocks)
);
;
getFramework().getEngineParallax().insertParallax(x, z, blocks);
getFramework().recycle();