From e39e59699ecdb13c4581983f9cfc3e6614d45f25 Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Wed, 21 Oct 2026 19:48:15 -0400 Subject: [PATCH] Restore deposit clump RNG - Return deposit clumps to the standard RNG; the unsynchronized generator measured no gain --- .../generation/stage/IrisDepositModifier.java | 26 +------------------ .../IrisDepositModifierProbabilityTest.java | 24 ----------------- 2 files changed, 1 insertion(+), 49 deletions(-) diff --git a/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java index c6b61afb3..a422b13a1 100644 --- a/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java @@ -227,7 +227,7 @@ public class IrisDepositModifier extends EngineAssignedModifier clumps = new ArrayList<>(limit - first); for (int l = first; l < limit; l++) { - RNG clumpRng = new ClumpRandom(clumpSeed(plan.seed(), l)); + RNG clumpRng = new RNG(clumpSeed(plan.seed(), l)); if (k.getPerClumpSpawnChance() < clumpRng.d()) { continue; } @@ -631,30 +631,6 @@ public class IrisDepositModifier extends EngineAssignedModifier>> (48 - bits)); - } - } - private record PreparedDeposit(IrisDepositGenerator generator, boolean ore, List clumps) { } diff --git a/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java index af5629457..c45f8ed75 100644 --- a/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java @@ -19,30 +19,6 @@ public class IrisDepositModifierProbabilityTest { assertEquals(0.04D, accepted / (double) samples, 0.003D); } - @Test - public void clumpRandomMatchesRngDrawForDraw() { - RNG seeds = new RNG(-90181L); - for (int trial = 0; trial < 2_000; trial++) { - long seed = trial < 4 ? new long[]{0L, -1L, Long.MIN_VALUE, Long.MAX_VALUE}[trial] : seeds.nextLong(); - RNG expected = new RNG(seed); - RNG actual = new IrisDepositModifier.ClumpRandom(seed); - for (int draw = 0; draw < 48; draw++) { - String label = "seed " + seed + " draw " + draw; - switch (draw % 8) { - case 0 -> assertEquals(label, Float.floatToIntBits(expected.nextFloat()), Float.floatToIntBits(actual.nextFloat())); - case 1 -> assertEquals(label, expected.nextInt(3), actual.nextInt(3)); - case 2 -> assertEquals(label, Double.doubleToLongBits(expected.nextDouble()), Double.doubleToLongBits(actual.nextDouble())); - case 3 -> assertEquals(label, Double.doubleToLongBits(expected.d()), Double.doubleToLongBits(actual.d())); - case 4 -> assertEquals(label, expected.i(-5, 17), actual.i(-5, 17)); - case 5 -> assertEquals(label, expected.nextInt(1_000_000_007), actual.nextInt(1_000_000_007)); - case 6 -> assertEquals(label, expected.nextLong(), actual.nextLong()); - default -> assertEquals(label, expected.nextBoolean(), actual.nextBoolean()); - } - } - assertEquals(expected.getSeed(), actual.getSeed()); - } - } - @Test public void neighboringClumpChancesRemainIndependentAcrossBatchBoundaries() { int samples = 100_000;