From 93011bc195bce53a94358015a08227fc587308ea Mon Sep 17 00:00:00 2001 From: linaTetris Date: Sat, 3 May 2025 19:32:59 -0400 Subject: [PATCH] Add configuration setting to re-add End void rings (#1656) Co-authored-by: granny --- .../world/level/levelgen/DensityFunctions.java.patch | 11 +++++++++++ .../main/java/org/purpurmc/purpur/PurpurConfig.java | 5 +++++ 2 files changed, 16 insertions(+) create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/DensityFunctions.java.patch diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/DensityFunctions.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/DensityFunctions.java.patch new file mode 100644 index 000000000..51e0ad919 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/DensityFunctions.java.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/world/level/levelgen/DensityFunctions.java ++++ b/net/minecraft/world/level/levelgen/DensityFunctions.java +@@ -528,7 +_,7 @@ + int i1 = z / 2; + int i2 = x % 2; + int i3 = z % 2; +- float f = 100.0F - Mth.sqrt((long)x * (long)x + (long)z * (long)z) * 8.0F; // Paper - cast ints to long to avoid integer overflow ++ float f = 100.0F - Mth.sqrt(org.purpurmc.purpur.PurpurConfig.generateEndVoidRings ? x * x + z * z : (long)x * (long)x + (long)z * (long)z) * 8.0F; // Paper - cast ints to long to avoid integer overflow // Purpur - Setting to reintroduce end void rings + f = Mth.clamp(f, -100.0F, 80.0F); + + NoiseCache cache = noiseCache.get().computeIfAbsent(noise, noiseKey -> new NoiseCache()); // Paper - Perf: Optimize end generation diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java index 282057126..3dc90c1b1 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -610,4 +610,9 @@ public class PurpurConfig { startupCommands.add(command); }); } + + public static boolean generateEndVoidRings = false; + private static void generateEndVoidRings() { + generateEndVoidRings = getBoolean("settings.generate-end-void-rings", generateEndVoidRings); + } }