Fix seed breaking on restarts

This commit is contained in:
Daniel Mills 2020-12-02 01:40:49 -05:00
parent ff6f76e018
commit 01a9a13402
3 changed files with 12 additions and 27 deletions

View File

@ -92,16 +92,16 @@ public class IrisComplex implements DataProvider
rngStream = ProceduralStream.of((x, z) -> new RNG(((x.longValue()) << 32) | (z.longValue() & 0xffffffffL)) rngStream = ProceduralStream.of((x, z) -> new RNG(((x.longValue()) << 32) | (z.longValue() & 0xffffffffL))
.nextParallelRNG(engine.getWorld().getSeed()), Interpolated.RNG); .nextParallelRNG(engine.getWorld().getSeed()), Interpolated.RNG);
chunkRngStream = rngStream.blockToChunkCoords(); chunkRngStream = rngStream.blockToChunkCoords();
rockStream = engine.getDimension().getRockPalette().getLayerGenerator(rng.nextRNG(), data).stream() rockStream = engine.getDimension().getRockPalette().getLayerGenerator(rng.nextParallelRNG(45), data).stream()
.select(engine.getDimension().getRockPalette().getBlockData(data)); .select(engine.getDimension().getRockPalette().getBlockData(data));
fluidStream = engine.getDimension().getFluidPalette().getLayerGenerator(rng.nextRNG(), data).stream() fluidStream = engine.getDimension().getFluidPalette().getLayerGenerator(rng.nextParallelRNG(78), data).stream()
.select(engine.getDimension().getFluidPalette().getBlockData(data)); .select(engine.getDimension().getFluidPalette().getBlockData(data));
regionStream = engine.getDimension().getRegionStyle().create(rng.nextRNG()).stream() regionStream = engine.getDimension().getRegionStyle().create(rng.nextParallelRNG(883)).stream()
.zoom(engine.getDimension().getRegionZoom()) .zoom(engine.getDimension().getRegionZoom())
.selectRarity(engine.getDimension().getRegions()) .selectRarity(engine.getDimension().getRegions())
.convertCached((s) -> data.getRegionLoader().load(s)).cache2D(cacheSize); .convertCached((s) -> data.getRegionLoader().load(s)).cache2D(cacheSize);
caveBiomeStream = regionStream.convert((r) caveBiomeStream = regionStream.convert((r)
-> engine.getDimension().getCaveBiomeStyle().create(rng.nextRNG()).stream() -> engine.getDimension().getCaveBiomeStyle().create(rng.nextParallelRNG(1221)).stream()
.zoom(r.getCaveBiomeZoom()) .zoom(r.getCaveBiomeZoom())
.selectRarity(r.getCaveBiomes()) .selectRarity(r.getCaveBiomes())
.onNull("") .onNull("")
@ -116,7 +116,7 @@ public class IrisComplex implements DataProvider
}) })
).convertAware2D(ProceduralStream::get).cache2D(cacheSize); ).convertAware2D(ProceduralStream::get).cache2D(cacheSize);
landBiomeStream = regionStream.convert((r) landBiomeStream = regionStream.convert((r)
-> engine.getDimension().getLandBiomeStyle().create(rng.nextRNG()).stream() -> engine.getDimension().getLandBiomeStyle().create(rng.nextParallelRNG(234234234)).stream()
.zoom(r.getLandBiomeZoom()) .zoom(r.getLandBiomeZoom())
.selectRarity(r.getLandBiomes()) .selectRarity(r.getLandBiomes())
.convertCached((s) -> data.getBiomeLoader().load(s) .convertCached((s) -> data.getBiomeLoader().load(s)
@ -124,7 +124,7 @@ public class IrisComplex implements DataProvider
).convertAware2D(ProceduralStream::get) ).convertAware2D(ProceduralStream::get)
.cache2D(cacheSize); .cache2D(cacheSize);
seaBiomeStream = regionStream.convert((r) seaBiomeStream = regionStream.convert((r)
-> engine.getDimension().getSeaBiomeStyle().create(rng.nextRNG()).stream() -> engine.getDimension().getSeaBiomeStyle().create(rng.nextParallelRNG(11232323)).stream()
.zoom(r.getSeaBiomeZoom()) .zoom(r.getSeaBiomeZoom())
.selectRarity(r.getSeaBiomes()) .selectRarity(r.getSeaBiomes())
.convertCached((s) -> data.getBiomeLoader().load(s) .convertCached((s) -> data.getBiomeLoader().load(s)
@ -132,13 +132,13 @@ public class IrisComplex implements DataProvider
).convertAware2D(ProceduralStream::get) ).convertAware2D(ProceduralStream::get)
.cache2D(cacheSize); .cache2D(cacheSize);
shoreBiomeStream = regionStream.convert((r) shoreBiomeStream = regionStream.convert((r)
-> engine.getDimension().getShoreBiomeStyle().create(rng.nextRNG()).stream() -> engine.getDimension().getShoreBiomeStyle().create(rng.nextParallelRNG(7787845)).stream()
.zoom(r.getShoreBiomeZoom()) .zoom(r.getShoreBiomeZoom())
.selectRarity(r.getShoreBiomes()) .selectRarity(r.getShoreBiomes())
.convertCached((s) -> data.getBiomeLoader().load(s) .convertCached((s) -> data.getBiomeLoader().load(s)
.setInferredType(InferredType.SHORE)) .setInferredType(InferredType.SHORE))
).convertAware2D(ProceduralStream::get).cache2D(cacheSize); ).convertAware2D(ProceduralStream::get).cache2D(cacheSize);
bridgeStream = engine.getDimension().getContinentalStyle().create(rng.nextRNG()).bake().scale(1D / engine.getDimension().getContinentZoom()).bake().stream() bridgeStream = engine.getDimension().getContinentalStyle().create(rng.nextParallelRNG(234234565)).bake().scale(1D / engine.getDimension().getContinentZoom()).bake().stream()
.convert((v) -> v >= engine.getDimension().getLandChance() ? InferredType.SEA : InferredType.LAND); .convert((v) -> v >= engine.getDimension().getLandChance() ? InferredType.SEA : InferredType.LAND);
baseBiomeStream = bridgeStream.convertAware2D((t, x, z) -> t.equals(InferredType.SEA) baseBiomeStream = bridgeStream.convertAware2D((t, x, z) -> t.equals(InferredType.SEA)
? seaBiomeStream.get(x, z) : landBiomeStream.get(x, z)) ? seaBiomeStream.get(x, z) : landBiomeStream.get(x, z))

View File

@ -1,18 +1,14 @@
package com.volmit.iris.generator.noise; package com.volmit.iris.generator.noise;
import java.util.List;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.scaffold.stream.ProceduralStream; import com.volmit.iris.scaffold.stream.ProceduralStream;
import com.volmit.iris.scaffold.stream.sources.CNGStream;
import com.volmit.iris.scaffold.stream.arithmetic.FittedStream; import com.volmit.iris.scaffold.stream.arithmetic.FittedStream;
import com.volmit.iris.util.IRare; import com.volmit.iris.scaffold.stream.sources.CNGStream;
import com.volmit.iris.util.IrisInterpolation; import com.volmit.iris.util.*;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.NoiseInjector;
import com.volmit.iris.util.RNG;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class CNG public class CNG
{ {
@ -163,12 +159,6 @@ public class CNG
return this; return this;
} }
@Deprecated
public RNG nextRNG()
{
return getRNG().nextRNG();
}
public RNG getRNG() public RNG getRNG()
{ {
return rng; return rng;

View File

@ -44,11 +44,6 @@ public class RNG extends Random
return new RNG(sx + signature); return new RNG(sx + signature);
} }
public RNG nextRNG()
{
return new RNG(nextLong());
}
public String s(int length) public String s(int length)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();