From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Thu, 21 Sep 2023 02:56:22 -0400 Subject: [PATCH] Faster Natural Spawning Removed since Leaf 1.21.4, useless diff --git a/src/main/java/net/minecraft/util/RandomSource.java b/src/main/java/net/minecraft/util/RandomSource.java index 9c6f5b55b1f1376fa75e216cd366ee47c79fafc4..67d94b649148b3165f09d75d8c9db10db4cc7874 100644 --- a/src/main/java/net/minecraft/util/RandomSource.java +++ b/src/main/java/net/minecraft/util/RandomSource.java @@ -15,6 +15,12 @@ public interface RandomSource { return create(RandomSupport.generateUniqueSeed()); } + // Leaf start - Generate random seed faster + static RandomSource createFaster() { + return create(RandomSupport.generateFasterSeed()); + } + // Leaf end - Generate random seed faster + @Deprecated static RandomSource createThreadSafe() { return new ThreadSafeLegacyRandomSource(RandomSupport.generateUniqueSeed()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java index 02747911e13fc99df7a69f5d382782e07a375fd3..981bb6faec42c8b4d6d02cf42eebd410da0047b5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -130,6 +130,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl protected float oThunderLevel; public float thunderLevel; public final RandomSource random = RandomSource.create(); + public final RandomSource randomFaster = RandomSource.createFaster(); // Leaf - Generate random seed faster /** @deprecated */ @Deprecated private final RandomSource threadSafeRandom = RandomSource.createThreadSafe(); diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java index 88d68784dd1dcf9e67fd596cab4e83ebeada8e45..4d009e649fedd4fc2fbbd4856cad33cdd38ff1eb 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -404,10 +404,12 @@ public final class NaturalSpawner { private static BlockPos getRandomPosWithin(Level world, LevelChunk chunk) { ChunkPos chunkcoordintpair = chunk.getPos(); - int i = chunkcoordintpair.getMinBlockX() + world.random.nextInt(16); - int j = chunkcoordintpair.getMinBlockZ() + world.random.nextInt(16); + // Leaf start - Generate random seed faster + int i = chunkcoordintpair.getMinBlockX() + world.randomFaster.nextInt(16); + int j = chunkcoordintpair.getMinBlockZ() + world.randomFaster.nextInt(16); int k = chunk.getHeight(Heightmap.Types.WORLD_SURFACE, i, j) + 1; - int l = Mth.randomBetweenInclusive(world.random, world.getMinBuildHeight(), k); + int l = Mth.randomBetweenInclusive(world.randomFaster, world.getMinBuildHeight(), k); + // Leaf end - Generate random seed faster return new BlockPos(i, l, j); } diff --git a/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java b/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java index 4327bee689e986561d126d6018d3fee7d2623176..82ee2aaabf6563cf3d6ae1e5b63242240a8e5521 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java +++ b/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java @@ -41,6 +41,12 @@ public final class RandomSupport { return SEED_UNIQUIFIER.updateAndGet(seedUniquifier -> seedUniquifier * 1181783497276652981L) ^ System.nanoTime(); } + // Leaf start - Generate random seed faster + public static long generateFasterSeed() { + return SEED_UNIQUIFIER.updateAndGet((seedUniquifier) -> seedUniquifier * 1181783497276652981L)^ java.util.concurrent.ThreadLocalRandom.current().nextLong(); + } + // Leaf end - Generate random seed faster + public static record Seed128bit(long seedLo, long seedHi) { public RandomSupport.Seed128bit xor(long seedLo, long seedHi) { return new RandomSupport.Seed128bit(this.seedLo ^ seedLo, this.seedHi ^ seedHi);