64 lines
3.4 KiB
Diff
64 lines
3.4 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 68be0d51aa64b5d917fb53dbbbdf8966d4f4abd8..688d9a2fe0ad0f176cd19a3ed7f2669fef2c962e 100644
|
|
--- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
|
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java
|
|
@@ -71,14 +71,14 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator {
|
|
}
|
|
|
|
private static Aquifer.FluidPicker createFluidPicker(NoiseGeneratorSettings settings) {
|
|
- 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());
|
|
- Aquifer.FluidStatus aquifer_b2 = new Aquifer.FluidStatus(DimensionType.MIN_Y * 2, Blocks.AIR.defaultBlockState());
|
|
-
|
|
- return (j, k, l) -> {
|
|
- return k < Math.min(-54, i) ? aquifer_b : aquifer_b1;
|
|
- };
|
|
+ // Plazma start - Configurable default lava sea level
|
|
+ int i = org.plazmamc.plazma.configurations.GlobalConfiguration.get().worldgen.lavaSea.startLevel;
|
|
+ int j = settings.seaLevel();
|
|
+ Aquifer.FluidStatus aquifer1 = new Aquifer.FluidStatus(i, org.plazmamc.plazma.configurations.GlobalConfiguration.get().worldgen.lavaSea.seaBlock());
|
|
+ Aquifer.FluidStatus aquifer2 = new Aquifer.FluidStatus(j, settings.defaultFluid());
|
|
+
|
|
+ return (x, y, z) -> y < Math.min(i, j) ? aquifer1 : aquifer2;
|
|
+ // Plazma end - Configurable default lava sea level
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
index af89ad0fcaebb5776ae3c18d02441c48f4227251..aa8b0a9b3d98e2c2fb1bd3c374cd2e742e6e17cf 100644
|
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
@@ -35,6 +35,24 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
public WorldGeneration worldgen;
|
|
public class WorldGeneration extends ConfigurationPart {
|
|
|
|
+ public LavaSea lavaSea;
|
|
+ public class LavaSea extends ConfigurationPart {
|
|
+
|
|
+ public int startLevel = -54;
|
|
+ String seaBlock = "default";
|
|
+
|
|
+ public net.minecraft.world.level.block.state.BlockState seaBlock() {
|
|
+ if (this.seaBlock.equalsIgnoreCase("default")) return net.minecraft.world.level.block.Blocks.LAVA.defaultBlockState();
|
|
+ return net.minecraft.core.registries.BuiltInRegistries.BLOCK
|
|
+ .getOptional(net.minecraft.resources.ResourceLocation.tryParse(this.seaBlock))
|
|
+ .orElseGet(() -> {
|
|
+ PlazmaConfigurations.LOGGER.warn("Invalid custom sea level block: {}, defaulting to lava", this.seaBlock);
|
|
+ return net.minecraft.world.level.block.Blocks.LAVA;
|
|
+ })
|
|
+ .defaultBlockState();
|
|
+ }
|
|
+
|
|
+ }
|
|
|
|
}
|
|
|