|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | + |
| 3 | +Date: Sat, 2 Dec 2023 15:14:15 +0000 |
| 4 | +Subject: [PATCH] Add option for legacy lava block formation |
| 5 | + |
| 6 | + |
| 7 | +diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java |
| 8 | +index 727a2fc45de4995cafb371bde43db483a760fa6e..f17bdbb56461f3adb409bc121d73b461227004dd 100644 |
| 9 | +--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java |
| 10 | ++++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java |
| 11 | +@@ -167,7 +167,15 @@ public class LiquidBlock extends Block implements BucketPickup { |
| 12 | + if (fluidState.isSource()) { |
| 13 | + block = Blocks.OBSIDIAN; |
| 14 | + } else { |
| 15 | +- final me.samsuik.sakura.physics.PhysicsVersion physics = world.localConfig().config(pos).physicsVersion; |
| 16 | ++ // Sakura start - legacy block formation |
| 17 | ++ final me.samsuik.sakura.physics.PhysicsVersion physics; |
| 18 | ++ |
| 19 | ++ if (world.sakuraConfig().environment.blockGeneration.legacyBlockFormation) { |
| 20 | ++ physics = me.samsuik.sakura.physics.PhysicsVersion.v1_12; |
| 21 | ++ } else { |
| 22 | ++ physics = world.localConfig().config(pos).physicsVersion; |
| 23 | ++ } |
| 24 | ++ // Sakura end |
| 25 | + |
| 26 | + // SANITY: In legacy a patch by paper removes the fluid level condition from vanilla. |
| 27 | + if (physics.afterOrEqual(1_16_0) || physics.isLegacy() |
| 28 | +diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java |
| 29 | +index cae1adf85ff35947a9747a21ff887a2ec0a4367a..56dcba3560fb13be9d13b400aea681de98ca800d 100644 |
| 30 | +--- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java |
| 31 | ++++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java |
| 32 | +@@ -177,7 +177,7 @@ public abstract class LavaFluid extends FlowingFluid { |
| 33 | + public boolean canBeReplacedWith(FluidState state, BlockGetter world, BlockPos pos, Fluid fluid, Direction direction) { |
| 34 | + // Sakura start |
| 35 | + return state.getHeight(world, pos) >= 0.44444445F && fluid.is(FluidTags.WATER) |
| 36 | +- && world instanceof Level level && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0); |
| 37 | ++ && world instanceof Level level && !level.sakuraConfig().environment.blockGeneration.legacyBlockFormation && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0); |
| 38 | + // Sakura end |
| 39 | + } |
| 40 | + |
| 41 | +diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java |
| 42 | +index 521b8084e490d5f3ecacd1d7368dddee22647aa9..7987b45130e2eeba1dca4bc8bba9efe0cd8b209c 100644 |
| 43 | +--- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java |
| 44 | ++++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java |
| 45 | +@@ -106,7 +106,7 @@ public abstract class WaterFluid extends FlowingFluid { |
| 46 | + public boolean canBeReplacedWith(FluidState state, BlockGetter world, BlockPos pos, Fluid fluid, Direction direction) { |
| 47 | + // Sakura start |
| 48 | + return direction == Direction.DOWN && !fluid.is(FluidTags.WATER) |
| 49 | +- || fluid.is(FluidTags.LAVA) && world instanceof Level level && level.localConfig().config(pos).physicsVersion.before(1_13_0); |
| 50 | ++ || fluid.is(FluidTags.LAVA) && world instanceof Level level && (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation || level.localConfig().config(pos).physicsVersion.before(1_13_0)); |
| 51 | + // Sakura end |
| 52 | + } |
| 53 | + |
0 commit comments