diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java b/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java index 037f77d8d..d998088b2 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java +++ b/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java @@ -52,16 +52,20 @@ public class IrisDepositModifier extends EngineAssignedModifier { BurstExecutor burst = burst().burst(multicore); long seed = x * 341873128712L + z * 132897987541L; + long mask = 0; for (IrisDepositGenerator k : getDimension().getDeposits()) { - burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(seed), x, z, false, context)); + long finalSeed = seed * ++mask; + burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(finalSeed), x, z, false, context)); } for (IrisDepositGenerator k : region.getDeposits()) { - burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(seed), x, z, false, context)); + long finalSeed = seed * ++mask; + burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(finalSeed), x, z, false, context)); } for (IrisDepositGenerator k : biome.getDeposits()) { - burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(seed), x, z, false, context)); + long finalSeed = seed * ++mask; + burst.queue(() -> generate(k, terrain, rng.nextParallelRNG(finalSeed), x, z, false, context)); } burst.complete(); } @@ -78,7 +82,7 @@ public class IrisDepositModifier extends EngineAssignedModifier { if (k.getPerClumpSpawnChance() < rng.d()) continue; - IrisObject clump = k.getClump(rng, getData()); + IrisObject clump = k.getClump(getEngine(), rng, getData()); int dim = clump.getW(); int min = dim / 2; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java index 271b54ded..19623ca39 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java @@ -20,6 +20,7 @@ package com.volmit.iris.engine.object; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.engine.data.cache.AtomicCache; +import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.annotations.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KSet; @@ -87,10 +88,10 @@ public class IrisDepositGenerator { @Desc("Ore varience is how many different objects clumps iris will create") private int varience = 3; - public IrisObject getClump(RNG rng, IrisData rdata) { + public IrisObject getClump(Engine engine, RNG rng, IrisData rdata) { KList objects = this.objects.aquire(() -> { - RNG rngv = rng.nextParallelRNG(3957778); + RNG rngv = new RNG(engine.getSeedManager().getDeposit() + hashCode()); KList objectsf = new KList<>(); for (int i = 0; i < varience; i++) {