mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Cauldron fill chances
This commit is contained in:
@@ -1,68 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Encode42 <me@encode42.dev>
|
|
||||||
Date: Sun, 8 Aug 2021 18:38:44 -0400
|
|
||||||
Subject: [PATCH] Cauldron fill chances
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/block/CauldronBlock.java b/net/minecraft/world/level/block/CauldronBlock.java
|
|
||||||
index c9968934f4ecaa8d81e545f279b3001c7b1ce545..03e4fce6f8226451365fc2831b5bf1e5e6091730 100644
|
|
||||||
--- a/net/minecraft/world/level/block/CauldronBlock.java
|
|
||||||
+++ b/net/minecraft/world/level/block/CauldronBlock.java
|
|
||||||
@@ -37,7 +37,7 @@ public class CauldronBlock extends AbstractCauldronBlock {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static boolean shouldHandlePrecipitation(Level world, Biome.Precipitation precipitation) {
|
|
||||||
- return precipitation == Biome.Precipitation.RAIN ? world.getRandom().nextFloat() < 0.05F : (precipitation == Biome.Precipitation.SNOW ? world.getRandom().nextFloat() < 0.1F : false);
|
|
||||||
+ return precipitation == Biome.Precipitation.RAIN ? world.getRandom().nextFloat() < world.purpurConfig.cauldronRainChance : (precipitation == Biome.Precipitation.SNOW ? world.getRandom().nextFloat() < world.purpurConfig.cauldronPowderSnowChance : false); // Purpur
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
diff --git a/net/minecraft/world/level/block/PointedDripstoneBlock.java b/net/minecraft/world/level/block/PointedDripstoneBlock.java
|
|
||||||
index 53cea36ec931de89e0060613acf87beb51dc16ec..fd5489993dca0f940da69e9163f78e5c2e6ee063 100644
|
|
||||||
--- a/net/minecraft/world/level/block/PointedDripstoneBlock.java
|
|
||||||
+++ b/net/minecraft/world/level/block/PointedDripstoneBlock.java
|
|
||||||
@@ -194,7 +194,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate
|
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
public static void maybeTransferFluid(BlockState state, ServerLevel world, BlockPos pos, float dripChance) {
|
|
||||||
- if (dripChance <= 0.17578125F || dripChance <= 0.05859375F) {
|
|
||||||
+ if (dripChance <= world.purpurConfig.cauldronDripstoneWaterFillChance || dripChance <= world.purpurConfig.cauldronDripstoneLavaFillChance) { // Purpur
|
|
||||||
if (PointedDripstoneBlock.isStalactiteStartPos(state, world, pos)) {
|
|
||||||
Optional<PointedDripstoneBlock.FluidInfo> optional = PointedDripstoneBlock.getFluidAboveStalactite(world, pos, state);
|
|
||||||
|
|
||||||
@@ -203,13 +203,13 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate
|
|
||||||
float f1;
|
|
||||||
|
|
||||||
if (fluidtype == Fluids.WATER) {
|
|
||||||
- f1 = 0.17578125F;
|
|
||||||
+ f1 = world.purpurConfig.cauldronDripstoneWaterFillChance; // Purpur
|
|
||||||
} else {
|
|
||||||
if (fluidtype != Fluids.LAVA) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- f1 = 0.05859375F;
|
|
||||||
+ f1 = world.purpurConfig.cauldronDripstoneLavaFillChance; // Purpur
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dripChance < f1) {
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index df054975a396856693eb6e70637a50b089836e37..5f97cbbe75ffd6a75cb39db7fc24c61e26068cf8 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -3062,4 +3062,15 @@ public class PurpurWorldConfig {
|
|
||||||
});
|
|
||||||
conduitBlocks = conduitBlockList.toArray(Block[]::new);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public float cauldronRainChance = 0.05F;
|
|
||||||
+ public float cauldronPowderSnowChance = 0.1F;
|
|
||||||
+ public float cauldronDripstoneWaterFillChance = 0.17578125F;
|
|
||||||
+ public float cauldronDripstoneLavaFillChance = 0.05859375F;
|
|
||||||
+ private void cauldronSettings() {
|
|
||||||
+ cauldronRainChance = (float) getDouble("blocks.cauldron.fill-chances.rain", cauldronRainChance);
|
|
||||||
+ cauldronPowderSnowChance = (float) getDouble("blocks.cauldron.fill-chances.powder-snow", cauldronPowderSnowChance);
|
|
||||||
+ cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance);
|
|
||||||
+ cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
--- a/net/minecraft/world/level/block/CauldronBlock.java
|
||||||
|
+++ b/net/minecraft/world/level/block/CauldronBlock.java
|
||||||
|
@@ -32,8 +_,8 @@
|
||||||
|
|
||||||
|
protected static boolean shouldHandlePrecipitation(Level level, Biome.Precipitation precipitation) {
|
||||||
|
return precipitation == Biome.Precipitation.RAIN
|
||||||
|
- ? level.getRandom().nextFloat() < 0.05F
|
||||||
|
- : precipitation == Biome.Precipitation.SNOW && level.getRandom().nextFloat() < 0.1F;
|
||||||
|
+ ? level.getRandom().nextFloat() < level.purpurConfig.cauldronRainChance // Purpur - Cauldron fill chances
|
||||||
|
+ : precipitation == Biome.Precipitation.SNOW && level.getRandom().nextFloat() < level.purpurConfig.cauldronPowderSnowChance; // Purpur - Cauldron fill chances
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
--- a/net/minecraft/world/level/block/PointedDripstoneBlock.java
|
||||||
|
+++ b/net/minecraft/world/level/block/PointedDripstoneBlock.java
|
||||||
|
@@ -197,20 +_,20 @@
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
public static void maybeTransferFluid(BlockState state, ServerLevel level, BlockPos pos, float randChance) {
|
||||||
|
- if (!(randChance > 0.17578125F) || !(randChance > 0.05859375F)) {
|
||||||
|
+ if (!(randChance > level.purpurConfig.cauldronDripstoneWaterFillChance) || !(randChance > level.purpurConfig.cauldronDripstoneLavaFillChance)) { // Purpur - Cauldron fill chances
|
||||||
|
if (isStalactiteStartPos(state, level, pos)) {
|
||||||
|
Optional<PointedDripstoneBlock.FluidInfo> fluidAboveStalactite = getFluidAboveStalactite(level, pos, state);
|
||||||
|
if (!fluidAboveStalactite.isEmpty()) {
|
||||||
|
Fluid fluid = fluidAboveStalactite.get().fluid;
|
||||||
|
float f;
|
||||||
|
if (fluid == Fluids.WATER) {
|
||||||
|
- f = 0.17578125F;
|
||||||
|
+ f = level.purpurConfig.cauldronDripstoneWaterFillChance; // Purpur - Cauldron fill chances
|
||||||
|
} else {
|
||||||
|
if (fluid != Fluids.LAVA) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- f = 0.05859375F;
|
||||||
|
+ f = level.purpurConfig.cauldronDripstoneLavaFillChance; // Purpur - Cauldron fill chances
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(randChance >= f)) {
|
||||||
@@ -3061,4 +3061,15 @@ public class PurpurWorldConfig {
|
|||||||
});
|
});
|
||||||
conduitBlocks = conduitBlockList.toArray(Block[]::new);
|
conduitBlocks = conduitBlockList.toArray(Block[]::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float cauldronRainChance = 0.05F;
|
||||||
|
public float cauldronPowderSnowChance = 0.1F;
|
||||||
|
public float cauldronDripstoneWaterFillChance = 0.17578125F;
|
||||||
|
public float cauldronDripstoneLavaFillChance = 0.05859375F;
|
||||||
|
private void cauldronSettings() {
|
||||||
|
cauldronRainChance = (float) getDouble("blocks.cauldron.fill-chances.rain", cauldronRainChance);
|
||||||
|
cauldronPowderSnowChance = (float) getDouble("blocks.cauldron.fill-chances.powder-snow", cauldronPowderSnowChance);
|
||||||
|
cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance);
|
||||||
|
cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user