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 e719be50ff73610046696a21053671332951ca9c..b096ef72d5a2e9b931be85dda4dc41673229d57f 100644 --- a/net/minecraft/world/level/block/LiquidBlock.java +++ b/net/minecraft/world/level/block/LiquidBlock.java @@ -194,7 +194,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 9b714ddad7208dd9509bf9f8434f1acea5a6f213..d073864e6d4be4e8001ff6e6a0a1dd92e95a9323 100644 --- a/net/minecraft/world/level/material/LavaFluid.java +++ b/net/minecraft/world/level/material/LavaFluid.java @@ -174,7 +174,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 6f478324e9edaf52f8938fb6e24208495463454f..a1677a683dc530c0af5f2ead275cf57482860737 100644 --- a/net/minecraft/world/level/material/WaterFluid.java +++ b/net/minecraft/world/level/material/WaterFluid.java @@ -118,7 +118,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 }