9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-04 15:41:40 +00:00

Fix structure locate issue related to faster random generator (#248)

This commit is contained in:
Creeam
2025-03-09 09:07:31 +14:00
committed by GitHub
parent 0d57b02c40
commit 4e00b55022

View File

@@ -27,7 +27,7 @@ index 4070a6eb52f6097e38c2d85c231d39ea3785cf46..bb76dbf98979fdc725676c98dafe64ea
final ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkData chunkData = ((ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkSystemChunkHolder)((ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkSystemLevelChunk)levelChunk).moonrise$getChunkAndHolder().holder())
.moonrise$getRealChunkHolder().holderData;
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 8c739c7a168c84b7735288da3c10a6c97408a05e..dd27e6b47233776fdec8860391be772029c987aa 100644
index 3c92508724bd2c8244ee4591c6b00b01657216f2..0290e1f0c45677d337f77a0c8269894b32a43ca9 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -902,7 +902,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -49,10 +49,10 @@ index 8c739c7a168c84b7735288da3c10a6c97408a05e..dd27e6b47233776fdec8860391be7720
boolean isRaining = this.isRaining();
int minBlockX = pos.getMinBlockX();
diff --git a/net/minecraft/util/RandomSource.java b/net/minecraft/util/RandomSource.java
index 98a54bc4de251014342cda6d0951b7fea79ce553..6d56134cc9ed9d73104ae77b1a0baa5a0a45759c 100644
index 98a54bc4de251014342cda6d0951b7fea79ce553..d6e86369689e5651698a569ef32d6e4cf4bb6229 100644
--- a/net/minecraft/util/RandomSource.java
+++ b/net/minecraft/util/RandomSource.java
@@ -15,18 +15,32 @@ public interface RandomSource {
@@ -15,18 +15,40 @@ public interface RandomSource {
return create(RandomSupport.generateUniqueSeed());
}
@@ -83,13 +83,21 @@ index 98a54bc4de251014342cda6d0951b7fea79ce553..6d56134cc9ed9d73104ae77b1a0baa5a
+ return org.dreeam.leaf.config.modules.opt.FastRNG.enabled
+ ? new org.dreeam.leaf.util.math.random.FasterRandomSource(RandomSupport.generateUniqueSeed())
+ : new SingleThreadedRandomSource(ThreadLocalRandom.current().nextLong());
+ }
+
+ static RandomSource createLegacy() {
+ return new LegacyRandomSource(RandomSupport.generateUniqueSeed());
+ }
+
+ static RandomSource createLegacy(long seed) {
+ return new LegacyRandomSource(seed);
}
+ // Leaf end - Faster random generator
RandomSource fork();
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index b775996b6dbc09c95c83a542da12dee7bf65bf4c..970420761b2c3b82a60479c556e76e385bf211e1 100644
index f500f4e32e676712fcd0c877498acc2722baae98..18dfaa60da8de12aea95cda21ee55636bf66f487 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -143,7 +143,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -167,6 +175,19 @@ index 8a4ce8b3b050ad9fb7de007129f5f460110d0b09..176adfcaa0fc458043d4bc05ead18618
worldgenRandom.setLargeFeatureSeed(structureState.getLevelSeed(), pos.x, pos.z);
}
// Leaf end - Matter - Secure Seed
diff --git a/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java b/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
index 426692d9627f46d708f551bd22ce3c52b2a23b37..8a19fd2b816b07a7374cb9dc96896a122f95db20 100644
--- a/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
+++ b/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
@@ -208,7 +208,7 @@ public class ChunkGeneratorStructureState {
// Leaf start - Matter - Secure Seed
RandomSource randomSource = org.dreeam.leaf.config.modules.misc.SecureSeed.enabled
? new su.plo.matter.WorldgenCryptoRandom(0, 0, su.plo.matter.Globals.Salt.STRONGHOLDS, 0)
- : RandomSource.create();
+ : RandomSource.createLegacy(); // Leaf - Faster random generator
// Leaf end - Matter - Secure Seed
if (!org.dreeam.leaf.config.modules.misc.SecureSeed.enabled) {
// Paper start - Add missing structure set seed configs
diff --git a/net/minecraft/world/level/levelgen/DensityFunctions.java b/net/minecraft/world/level/levelgen/DensityFunctions.java
index 04527a5c65ad630f794fed9071d485aedd02257a..15fc39f9c77fdd03a0ca4a39d173c851b9454f08 100644
--- a/net/minecraft/world/level/levelgen/DensityFunctions.java