9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-21 15:59:33 +00:00
Files
LeavesMC/patches/removed/server/0067-Cache-world-generator-sea-level.patch
2025-01-15 14:10:10 +08:00

46 lines
2.3 KiB
Diff

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 3f39d6c786d9dfdd9ad591e08ff05fcbb41a1df6..be411653a89e4c3585db95509e3a93d140a05fba 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
@@ -61,12 +61,17 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator {
private static final BlockState AIR = Blocks.AIR.defaultBlockState();
public final Holder<NoiseGeneratorSettings> settings;
private final Supplier<Aquifer.FluidPicker> globalFluidPicker;
+ private int cachedSeaLevel; // Leaves - cache world generator sea level
public NoiseBasedChunkGenerator(BiomeSource biomeSource, Holder<NoiseGeneratorSettings> 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
});
}
@@ -409,7 +414,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.performance.cacheWorldGeneratorSeaLevel) {
+ return ((NoiseGeneratorSettings) this.settings.value()).seaLevel();
+ } else {
+ return cachedSeaLevel;
+ }
+ // Leaves end - cache world generator sea level
}
@Override