From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:22:06 +0800 Subject: [PATCH] Cache world generator sea level This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java index 8ce870a5341a61fbbaf42021ef7f7f615a6a3e09..d217bccc5af50360e3b3b265953fba91aaf204db 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java @@ -62,12 +62,17 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { private static final BlockState AIR = Blocks.AIR.defaultBlockState(); public final Holder settings; private final Supplier globalFluidPicker; + private int cachedSeaLevel; // Leaves - cache world generator sea level public NoiseBasedChunkGenerator(BiomeSource biomeSource, Holder settings) { super(biomeSource); this.settings = settings; this.globalFluidPicker = Suppliers.memoize(() -> { - return NoiseBasedChunkGenerator.createFluidPicker((NoiseGeneratorSettings) settings.value()); + // Leaves start - cache world generator sea level + var fluidPicker = NoiseBasedChunkGenerator.createFluidPicker((NoiseGeneratorSettings) settings.value()); + this.cachedSeaLevel = settings.value().seaLevel(); + return fluidPicker; + // Leaves end - cache world generator sea level }); } @@ -394,7 +399,13 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { @Override public int getSeaLevel() { - return ((NoiseGeneratorSettings) this.settings.value()).seaLevel(); + // Leaves start - cache world generator sea level + if (!org.leavesmc.leaves.LeavesConfig.cacheWorldGeneratorSeaLevel) { + return ((NoiseGeneratorSettings) this.settings.value()).seaLevel(); + } else { + return cachedSeaLevel; + } + // Leaves end - cache world generator sea level } @Override