58 lines
3.3 KiB
Diff
58 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: AlphaKR93 <dev@alpha93.kr>
|
|
Date: Tue, 7 Nov 2023 15:32:24 +0900
|
|
Subject: [PATCH] Configurable cave lava sea level
|
|
|
|
This patch also fix MC-237017.
|
|
|
|
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..e3990d5f5a49aca501289e92f7462a5f2709db9b 100644
|
|
--- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
|
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
|
|
@@ -72,6 +72,15 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator {
|
|
}
|
|
|
|
private static Aquifer.FluidPicker createFluidPicker(NoiseGeneratorSettings settings) {
|
|
+ // Plazma start - Configurable cave lava sea level
|
|
+ if (true) {
|
|
+ org.plazmamc.plazma.configurations.GlobalConfiguration config = org.plazmamc.plazma.configurations.GlobalConfiguration.get();
|
|
+ return (x, y, z) -> new Aquifer.FluidStatus(
|
|
+ config.worldgen.caveLavaSeaLevel.useCustomSeaLevel ? config.worldgen.caveLavaSeaLevel.customSeaLevel : settings.seaLevel(),
|
|
+ config.worldgen.caveLavaSeaLevel.customSeaLevel(settings)
|
|
+ );
|
|
+ }
|
|
+ // Plazma end - Configurable cave lava sea level
|
|
Aquifer.FluidStatus aquifer_b = new Aquifer.FluidStatus(-54, Blocks.LAVA.defaultBlockState());
|
|
int i = settings.seaLevel();
|
|
Aquifer.FluidStatus aquifer_b1 = new Aquifer.FluidStatus(i, settings.defaultFluid());
|
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
index f7e4d14a7eaa3e35c9b03f3c6a01ae8712ded569..4f3ed01e12ccb8a6f1a5c4f605451bb36370a236 100644
|
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
@@ -35,6 +35,25 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
public WorldGeneration worldgen;
|
|
public class WorldGeneration extends ConfigurationPart {
|
|
|
|
+ public CaveLavaSeaLevel caveLavaSeaLevel;
|
|
+ public class CaveLavaSeaLevel extends ConfigurationPart {
|
|
+
|
|
+ public boolean useCustomSeaLevel = false;
|
|
+ public int customSeaLevel = -54;
|
|
+ String customSeaBlock = "default";
|
|
+
|
|
+ public net.minecraft.world.level.block.state.BlockState customSeaLevel(net.minecraft.world.level.levelgen.NoiseGeneratorSettings settings) {
|
|
+ if (this.customSeaBlock.equalsIgnoreCase("default")) return settings.defaultFluid();
|
|
+ return net.minecraft.core.registries.BuiltInRegistries.BLOCK
|
|
+ .getOptional(new net.minecraft.resources.ResourceLocation(this.customSeaBlock))
|
|
+ .orElseGet(() -> {
|
|
+ PlazmaConfigurations.LOGGER.warn("Invalid custom sea level block: {}, defaulting to lava", this.customSeaBlock);
|
|
+ return net.minecraft.world.level.block.Blocks.LAVA;
|
|
+ })
|
|
+ .defaultBlockState();
|
|
+ }
|
|
+
|
|
+ }
|
|
|
|
}
|
|
|