From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martijn Muijsers Date: Thu, 1 Dec 2022 14:18:46 +0100 Subject: [PATCH] Cache world generator sea level 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: "me/jellysquid/mods/lithium/mixin/gen/cached_generator_settings/NoiseChunkGeneratorMixin.java" By: SuperCoder7979 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/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java index 0d8fd4eaf912eb4d40bb9f600dd2a8d5c21ab572..66205f6d99c629ce0e7e7d7b29394674bde115fb 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; // Gale - Lithium - 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()); + // Gale start - Lithium - cache world generator sea level + var fluidPicker = NoiseBasedChunkGenerator.createFluidPicker((NoiseGeneratorSettings) settings.value()); + this.cachedSeaLevel = settings.value().seaLevel(); + return fluidPicker; + // Gale end - Lithium - cache world generator sea level }); } @@ -397,7 +402,7 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { @Override public int getSeaLevel() { - return ((NoiseGeneratorSettings) this.settings.value()).seaLevel(); + return this.cachedSeaLevel; // Gale - Lithium - cache world generator sea level } @Override