From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Sat, 2 Dec 2023 15:14:15 +0000 Subject: [PATCH] Legacy lava block formation diff --git a/net/minecraft/world/level/block/LiquidBlock.java b/net/minecraft/world/level/block/LiquidBlock.java index 1e8574d7900ffde16c2e1ee9f92a77c47c85af61..e9895a986dffd2ca170916b3e11f88bf36adae50 100644 --- a/net/minecraft/world/level/block/LiquidBlock.java +++ b/net/minecraft/world/level/block/LiquidBlock.java @@ -199,7 +199,14 @@ public class LiquidBlock extends Block implements BucketPickup { final FluidState fluidState = state.getFluidState(); final Block block = fluidState.isSource() ? Blocks.OBSIDIAN : Blocks.COBBLESTONE; if (block == Blocks.COBBLESTONE) { - final me.samsuik.sakura.physics.PhysicsVersion physics = level.localConfig().config(pos).physicsVersion; + // Sakura start - legacy lava block formation + final me.samsuik.sakura.physics.PhysicsVersion physics; + if (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation) { + physics = me.samsuik.sakura.physics.PhysicsVersion.v1_12; + } else { + physics = level.localConfig().config(pos).physicsVersion; + } + // Sakura end - legacy lava block formation // SANITY: In legacy a patch by paper removes the fluid level condition from vanilla. if (physics.before(1_16_0) && !physics.isLegacy() && diff --git a/net/minecraft/world/level/material/LavaFluid.java b/net/minecraft/world/level/material/LavaFluid.java index 34a40cf00c4337acd716358f7767aa81a936f1dc..ac052ccb2bfbd8a824b8f8d2ce8d55d8214b5fa9 100644 --- a/net/minecraft/world/level/material/LavaFluid.java +++ b/net/minecraft/world/level/material/LavaFluid.java @@ -186,7 +186,8 @@ public abstract class LavaFluid extends FlowingFluid { public boolean canBeReplacedWith(FluidState fluidState, BlockGetter blockReader, BlockPos pos, Fluid fluid, Direction direction) { // Sakura start - configure cannon physics return fluidState.getHeight(blockReader, pos) >= 0.44444445F && fluid.is(FluidTags.WATER) - && blockReader instanceof Level level && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0); + && blockReader instanceof Level level && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0) + && !level.sakuraConfig().environment.blockGeneration.legacyBlockFormation; // Sakura - legacy lava block formation // Sakura end - configure cannon physics } diff --git a/net/minecraft/world/level/material/WaterFluid.java b/net/minecraft/world/level/material/WaterFluid.java index 62a51972df8edd1cc7f892376ba6e37eba1a301a..c8ebf065b250cc44fddd47c8622fb2110f2bfc0e 100644 --- a/net/minecraft/world/level/material/WaterFluid.java +++ b/net/minecraft/world/level/material/WaterFluid.java @@ -128,7 +128,10 @@ public abstract class WaterFluid extends FlowingFluid { if (direction == Direction.DOWN && !fluid.is(FluidTags.WATER) || !(blockReader instanceof Level level)) { return true; } - return fluid.is(FluidTags.LAVA) && level.localConfig().config(pos).physicsVersion.before(1_13_0); + // Sakura start - legacy lava block formation + return fluid.is(FluidTags.LAVA) && (level.localConfig().config(pos).physicsVersion.before(1_13_0) + || level.sakuraConfig().environment.blockGeneration.legacyBlockFormation); + // Sakura end - legacy lava block formation // Sakura end - configure cannon physics }