9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00
Files
Leaf/leaf-archived-patches/removed/hardfork/server/0064-Cache-world-generator-sea-level.patch
2025-03-28 23:21:41 -04:00

52 lines
2.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martijn Muijsers <martijnmuijsers@live.nl>
Date: Thu, 1 Dec 2022 14:18:46 +0100
Subject: [PATCH] Cache world generator sea level
Removed since 1.21.4 hardfork, as the cache captured the wrong value and caused LeavesMC/Leaves#392.
Also this opt has been disabled by default in Lithium since 08/12/2022 due to the early access of registry crash.
License: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
Gale - https://galemc.org
This patch is based on the following mixin:
"net/caffeinemc/mods/lithium/mixin/gen/cached_generator_settings/NoiseBasedChunkGeneratorMixin.java"
By: SuperCoder7979 <k.pranav@gmail.com>
As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java b/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
index 65728ef17e63d71833677fdcbd5bb90794b4822b..de0f33fd008d8cd08b6da9ab37e98bd7f51ce0ca 100644
--- a/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
+++ b/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
@@ -57,11 +57,19 @@ 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; // Gale - Lithium - cache world generator sea level
public NoiseBasedChunkGenerator(BiomeSource biomeSource, Holder<NoiseGeneratorSettings> settings) {
super(biomeSource);
this.settings = settings;
- this.globalFluidPicker = Suppliers.memoize(() -> createFluidPicker(settings.value()));
+ // Gale start - Lithium - cache world generator sea level
+ this.globalFluidPicker = Suppliers.memoize(() -> {
+ var fluidPicker = createFluidPicker(settings.value());
+ this.cachedSeaLevel = settings.value().seaLevel();
+ return fluidPicker;
+
+ });
+ // Gale end - Lithium - cache world generator sea level
}
private static Aquifer.FluidPicker createFluidPicker(NoiseGeneratorSettings settings) {
@@ -407,7 +415,7 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator {
@Override
public int getSeaLevel() {
- return this.settings.value().seaLevel();
+ return this.cachedSeaLevel; // Gale - Lithium - cache world generator sea level
}
@Override