diff --git a/patches/server/0004-Sakura-Configuration-Files.patch b/patches/server/0004-Sakura-Configuration-Files.patch index b78ca14..c7c9915 100644 --- a/patches/server/0004-Sakura-Configuration-Files.patch +++ b/patches/server/0004-Sakura-Configuration-Files.patch @@ -608,10 +608,10 @@ index 0000000000000000000000000000000000000000..5fc23a0b579d7cbe03baf5324bef887a +} diff --git a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..24c18b4f8909dcc3ac6c59aec90510d01860a221 +index 0000000000000000000000000000000000000000..5bee36934f9510abcd365b3856dc5b3e69fdfe27 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java -@@ -0,0 +1,157 @@ +@@ -0,0 +1,162 @@ +package me.samsuik.sakura.configuration; + +import com.mojang.logging.LogUtils; @@ -766,6 +766,11 @@ index 0000000000000000000000000000000000000000..24c18b4f8909dcc3ac6c59aec90510d0 + public class Environment extends ConfigurationPart { + public boolean allowWaterInTheNether = false; + public boolean disableFastNetherLava = false; ++ ++ public BlockGeneration blockGeneration = new BlockGeneration(); ++ public class BlockGeneration extends ConfigurationPart { ++ public boolean legacyBlockFormation = false; ++ } + } + +} diff --git a/patches/server/0050-Add-option-for-legacy-lava-block-formation.patch b/patches/server/0050-Add-option-for-legacy-lava-block-formation.patch new file mode 100644 index 0000000..8effa3b --- /dev/null +++ b/patches/server/0050-Add-option-for-legacy-lava-block-formation.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samsuik <40902469+Samsuik@users.noreply.github.com> +Date: Sat, 2 Dec 2023 15:14:15 +0000 +Subject: [PATCH] Add option for legacy lava block formation + + +diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java +index 727a2fc45de4995cafb371bde43db483a760fa6e..f17bdbb56461f3adb409bc121d73b461227004dd 100644 +--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java +@@ -167,7 +167,15 @@ public class LiquidBlock extends Block implements BucketPickup { + if (fluidState.isSource()) { + block = Blocks.OBSIDIAN; + } else { +- final me.samsuik.sakura.physics.PhysicsVersion physics = world.localConfig().config(pos).physicsVersion; ++ // Sakura start - legacy block formation ++ final me.samsuik.sakura.physics.PhysicsVersion physics; ++ ++ if (world.sakuraConfig().environment.blockGeneration.legacyBlockFormation) { ++ physics = me.samsuik.sakura.physics.PhysicsVersion.v1_12; ++ } else { ++ physics = world.localConfig().config(pos).physicsVersion; ++ } ++ // Sakura end + + // SANITY: In legacy a patch by paper removes the fluid level condition from vanilla. + if (physics.afterOrEqual(1_16_0) || physics.isLegacy() +diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java +index cae1adf85ff35947a9747a21ff887a2ec0a4367a..56dcba3560fb13be9d13b400aea681de98ca800d 100644 +--- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java ++++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java +@@ -177,7 +177,7 @@ public abstract class LavaFluid extends FlowingFluid { + public boolean canBeReplacedWith(FluidState state, BlockGetter world, BlockPos pos, Fluid fluid, Direction direction) { + // Sakura start + return state.getHeight(world, pos) >= 0.44444445F && fluid.is(FluidTags.WATER) +- && world instanceof Level level && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0); ++ && world instanceof Level level && !level.sakuraConfig().environment.blockGeneration.legacyBlockFormation && level.localConfig().config(pos).physicsVersion.afterOrEqual(1_13_0); + // Sakura end + } + +diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java +index 521b8084e490d5f3ecacd1d7368dddee22647aa9..7987b45130e2eeba1dca4bc8bba9efe0cd8b209c 100644 +--- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java ++++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java +@@ -106,7 +106,7 @@ public abstract class WaterFluid extends FlowingFluid { + public boolean canBeReplacedWith(FluidState state, BlockGetter world, BlockPos pos, Fluid fluid, Direction direction) { + // Sakura start + return direction == Direction.DOWN && !fluid.is(FluidTags.WATER) +- || fluid.is(FluidTags.LAVA) && world instanceof Level level && level.localConfig().config(pos).physicsVersion.before(1_13_0); ++ || fluid.is(FluidTags.LAVA) && world instanceof Level level && (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation || level.localConfig().config(pos).physicsVersion.before(1_13_0)); + // Sakura end + } +