aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0754-Configurable-feature-seeds.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0754-Configurable-feature-seeds.patch')
-rw-r--r--patches/server/0754-Configurable-feature-seeds.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/patches/server/0754-Configurable-feature-seeds.patch b/patches/server/0754-Configurable-feature-seeds.patch
new file mode 100644
index 0000000000..6e138bc312
--- /dev/null
+++ b/patches/server/0754-Configurable-feature-seeds.patch
@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nassim Jahnke <[email protected]>
+Date: Tue, 31 Aug 2021 17:05:27 +0200
+Subject: [PATCH] Configurable feature seeds
+
+Co-authored-by: Thonk <[email protected]>
+
+diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
+index 98171f6c8e23f6ef89b897e4b80e3afb2a1950a0..06bff37e4c1fddd3be6343049a66787c63fb420c 100644
+--- a/src/main/java/co/aikar/timings/TimingsExport.java
++++ b/src/main/java/co/aikar/timings/TimingsExport.java
+@@ -287,7 +287,7 @@ public class TimingsExport extends Thread {
+ JSONObject object = new JSONObject();
+ for (String key : config.getKeys(false)) {
+ String fullKey = (parentKey != null ? parentKey + "." + key : key);
+- if (fullKey.equals("database") || fullKey.equals("settings.bungeecord-addresses") || TimingsManager.hiddenConfigs.contains(fullKey) || key.startsWith("seed-") || key.equals("worldeditregentempworld")) {
++ if (fullKey.equals("database") || fullKey.equals("settings.bungeecord-addresses") || TimingsManager.hiddenConfigs.contains(fullKey) || key.startsWith("seed-") || key.equals("worldeditregentempworld") || key.equals("feature-seeds")) {
+ continue;
+ }
+ final Object val = config.get(key);
+diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+index 50b9c2fbe3a5c12a43b4711d678ed2398dbdee58..cc79ca7ee770408ec59b1f6a3f4ec58e23bd2619 100644
+--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
++++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+@@ -606,7 +606,14 @@ public abstract class ChunkGenerator {
+ return (String) optional.orElseGet(placedfeature::toString);
+ };
+
+- seededrandom.setFeatureSeed(i, l1, l);
++ // Paper start - change populationSeed used in random
++ long featurePopulationSeed = i;
++ final long configFeatureSeed = generatoraccessseed.getMinecraftWorld().paperConfig().featureSeeds.features.getLong(placedfeature.feature());
++ if (configFeatureSeed != -1) {
++ featurePopulationSeed = seededrandom.setDecorationSeed(configFeatureSeed, blockposition.getX(), blockposition.getZ()); // See seededrandom.setDecorationSeed from above
++ }
++ seededrandom.setFeatureSeed(featurePopulationSeed, l1, l);
++ // Paper end
+
+ try {
+ generatoraccessseed.setCurrentlyGenerating(supplier1);