From 01a9a13402dded0f15dbc55d54208fb8607b8e66 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Wed, 2 Dec 2020 01:40:49 -0500 Subject: [PATCH] Fix seed breaking on restarts --- .../com/volmit/iris/generator/IrisComplex.java | 16 ++++++++-------- .../com/volmit/iris/generator/noise/CNG.java | 18 ++++-------------- src/main/java/com/volmit/iris/util/RNG.java | 5 ----- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/volmit/iris/generator/IrisComplex.java b/src/main/java/com/volmit/iris/generator/IrisComplex.java index c41b470ac..e230cb3de 100644 --- a/src/main/java/com/volmit/iris/generator/IrisComplex.java +++ b/src/main/java/com/volmit/iris/generator/IrisComplex.java @@ -92,16 +92,16 @@ public class IrisComplex implements DataProvider rngStream = ProceduralStream.of((x, z) -> new RNG(((x.longValue()) << 32) | (z.longValue() & 0xffffffffL)) .nextParallelRNG(engine.getWorld().getSeed()), Interpolated.RNG); 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)); - 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)); - regionStream = engine.getDimension().getRegionStyle().create(rng.nextRNG()).stream() + regionStream = engine.getDimension().getRegionStyle().create(rng.nextParallelRNG(883)).stream() .zoom(engine.getDimension().getRegionZoom()) .selectRarity(engine.getDimension().getRegions()) .convertCached((s) -> data.getRegionLoader().load(s)).cache2D(cacheSize); caveBiomeStream = regionStream.convert((r) - -> engine.getDimension().getCaveBiomeStyle().create(rng.nextRNG()).stream() + -> engine.getDimension().getCaveBiomeStyle().create(rng.nextParallelRNG(1221)).stream() .zoom(r.getCaveBiomeZoom()) .selectRarity(r.getCaveBiomes()) .onNull("") @@ -116,7 +116,7 @@ public class IrisComplex implements DataProvider }) ).convertAware2D(ProceduralStream::get).cache2D(cacheSize); landBiomeStream = regionStream.convert((r) - -> engine.getDimension().getLandBiomeStyle().create(rng.nextRNG()).stream() + -> engine.getDimension().getLandBiomeStyle().create(rng.nextParallelRNG(234234234)).stream() .zoom(r.getLandBiomeZoom()) .selectRarity(r.getLandBiomes()) .convertCached((s) -> data.getBiomeLoader().load(s) @@ -124,7 +124,7 @@ public class IrisComplex implements DataProvider ).convertAware2D(ProceduralStream::get) .cache2D(cacheSize); seaBiomeStream = regionStream.convert((r) - -> engine.getDimension().getSeaBiomeStyle().create(rng.nextRNG()).stream() + -> engine.getDimension().getSeaBiomeStyle().create(rng.nextParallelRNG(11232323)).stream() .zoom(r.getSeaBiomeZoom()) .selectRarity(r.getSeaBiomes()) .convertCached((s) -> data.getBiomeLoader().load(s) @@ -132,13 +132,13 @@ public class IrisComplex implements DataProvider ).convertAware2D(ProceduralStream::get) .cache2D(cacheSize); shoreBiomeStream = regionStream.convert((r) - -> engine.getDimension().getShoreBiomeStyle().create(rng.nextRNG()).stream() + -> engine.getDimension().getShoreBiomeStyle().create(rng.nextParallelRNG(7787845)).stream() .zoom(r.getShoreBiomeZoom()) .selectRarity(r.getShoreBiomes()) .convertCached((s) -> data.getBiomeLoader().load(s) .setInferredType(InferredType.SHORE)) ).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); baseBiomeStream = bridgeStream.convertAware2D((t, x, z) -> t.equals(InferredType.SEA) ? seaBiomeStream.get(x, z) : landBiomeStream.get(x, z)) diff --git a/src/main/java/com/volmit/iris/generator/noise/CNG.java b/src/main/java/com/volmit/iris/generator/noise/CNG.java index 578147a5d..106a03e9f 100644 --- a/src/main/java/com/volmit/iris/generator/noise/CNG.java +++ b/src/main/java/com/volmit/iris/generator/noise/CNG.java @@ -1,18 +1,14 @@ package com.volmit.iris.generator.noise; -import java.util.List; - import com.volmit.iris.Iris; 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.util.IRare; -import com.volmit.iris.util.IrisInterpolation; -import com.volmit.iris.util.KList; -import com.volmit.iris.util.NoiseInjector; -import com.volmit.iris.util.RNG; +import com.volmit.iris.scaffold.stream.sources.CNGStream; +import com.volmit.iris.util.*; import lombok.Data; +import java.util.List; + @Data public class CNG { @@ -163,12 +159,6 @@ public class CNG return this; } - @Deprecated - public RNG nextRNG() - { - return getRNG().nextRNG(); - } - public RNG getRNG() { return rng; diff --git a/src/main/java/com/volmit/iris/util/RNG.java b/src/main/java/com/volmit/iris/util/RNG.java index 503d99e12..5917f9c6b 100644 --- a/src/main/java/com/volmit/iris/util/RNG.java +++ b/src/main/java/com/volmit/iris/util/RNG.java @@ -44,11 +44,6 @@ public class RNG extends Random return new RNG(sx + signature); } - public RNG nextRNG() - { - return new RNG(nextLong()); - } - public String s(int length) { StringBuilder sb = new StringBuilder();