9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-20 23:39:34 +00:00
Files
LeavesMC/patches/server/0082-Cache-world-generator-sea-level.patch
violetc f40d340092 1.20.6 (#216)
---------

Co-authored-by: MC_XiaoHei <xiaohei.xor7studio@foxmail.com>
Co-authored-by: Bluemangoo <chenfy2006@qq.com>
2024-05-20 23:03:56 +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 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<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
});
}
@@ -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