mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-30 20:29:14 +00:00
78 lines
4.7 KiB
Diff
78 lines
4.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samsuik <kfian294ma4@gmail.com>
|
|
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 e6091c252f252373481f46a3ef119ddc32baddf0..cf624b29ed2b7ca2d6af24b3cac6bb316199d287 100644
|
|
--- a/net/minecraft/world/level/block/LiquidBlock.java
|
|
+++ b/net/minecraft/world/level/block/LiquidBlock.java
|
|
@@ -198,7 +198,14 @@ public class LiquidBlock extends Block implements BucketPickup {
|
|
// Sakura start - configure cannon physics
|
|
final FluidState fluidState = state.getFluidState();
|
|
final Block block = fluidState.isSource() ? Blocks.OBSIDIAN : Blocks.COBBLESTONE;
|
|
- final me.samsuik.sakura.mechanics.MinecraftMechanicsTarget mechanicsTarget = level.localConfig().at(pos).mechanicsTarget;
|
|
+ // Sakura start - legacy lava block formation
|
|
+ final me.samsuik.sakura.mechanics.MinecraftMechanicsTarget mechanicsTarget;
|
|
+ if (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation) {
|
|
+ mechanicsTarget = me.samsuik.sakura.mechanics.MinecraftMechanicsTarget.legacy();
|
|
+ } else {
|
|
+ mechanicsTarget = level.localConfig().at(pos).mechanicsTarget;
|
|
+ }
|
|
+ // Sakura end - legacy lava block formation
|
|
if (block == Blocks.COBBLESTONE && !me.samsuik.sakura.mechanics.LiquidBehaviour.canLiquidSolidify(level, pos, fluidState, mechanicsTarget)) {
|
|
return true;
|
|
}
|
|
diff --git a/net/minecraft/world/level/material/LavaFluid.java b/net/minecraft/world/level/material/LavaFluid.java
|
|
index 752099419e46070b42f9f2ecff1016d28a6ebf49..b6f198a8ef365c0414d2560b36a9c7d13d86ccbf 100644
|
|
--- a/net/minecraft/world/level/material/LavaFluid.java
|
|
+++ b/net/minecraft/world/level/material/LavaFluid.java
|
|
@@ -184,9 +184,16 @@ public abstract class LavaFluid extends FlowingFluid {
|
|
|
|
@Override
|
|
public boolean canBeReplacedWith(FluidState fluidState, BlockGetter blockReader, BlockPos pos, Fluid fluid, Direction direction) {
|
|
- // Sakura start - configure cannon physics
|
|
- if (blockReader instanceof Level level && level.localConfig().at(pos).mechanicsTarget.before(me.samsuik.sakura.mechanics.MechanicVersion.v1_13)) {
|
|
- return false;
|
|
+ // Sakura start - configure cannon physics & legacy lava block formation
|
|
+ if (blockReader instanceof Level level) {
|
|
+ if (level.localConfig().at(pos).mechanicsTarget.before(me.samsuik.sakura.mechanics.MechanicVersion.v1_13)) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ if (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation) {
|
|
+ return false;
|
|
+ }
|
|
+ // Sakura end - legacy lava block formation
|
|
}
|
|
// Sakura end - configure cannon physics
|
|
return fluidState.getHeight(blockReader, pos) >= 0.44444445F && fluid.is(FluidTags.WATER);
|
|
diff --git a/net/minecraft/world/level/material/WaterFluid.java b/net/minecraft/world/level/material/WaterFluid.java
|
|
index 9fc1c56dec5201c3b700992f88b258225ceb8581..65fab5cb4af7e3357a1f65e89eb87a4c7fcd01a7 100644
|
|
--- a/net/minecraft/world/level/material/WaterFluid.java
|
|
+++ b/net/minecraft/world/level/material/WaterFluid.java
|
|
@@ -124,10 +124,18 @@ public abstract class WaterFluid extends FlowingFluid {
|
|
|
|
@Override
|
|
public boolean canBeReplacedWith(FluidState fluidState, BlockGetter blockReader, BlockPos pos, Fluid fluid, Direction direction) {
|
|
- // Sakura start - configure cannon physics
|
|
- final boolean canReplace = direction == Direction.DOWN
|
|
- || blockReader instanceof Level level
|
|
- && level.localConfig().at(pos).mechanicsTarget.before(me.samsuik.sakura.mechanics.MechanicVersion.v1_13);
|
|
+ // Sakura start - configure cannon physics & legacy lava block formation
|
|
+ boolean canReplace = false;
|
|
+ if (direction == Direction.DOWN) {
|
|
+ canReplace = true;
|
|
+ } else if (blockReader instanceof Level level) {
|
|
+ if (level.localConfig().at(pos).mechanicsTarget.before(me.samsuik.sakura.mechanics.MechanicVersion.v1_13)) {
|
|
+ canReplace = true;
|
|
+ } else if (level.sakuraConfig().environment.blockGeneration.legacyBlockFormation) {
|
|
+ canReplace = true;
|
|
+ }
|
|
+ }
|
|
+ // Sakura end - legacy lava block formation
|
|
// Before 1.13 lava could replace water
|
|
return canReplace && !fluid.is(FluidTags.WATER);
|
|
// Sakura end - configure cannon physics
|