geforkt von Mirrors/Paper
89a1469d3f
Their chunk is set to null before removal, so we kept them around.
69 Zeilen
3.4 KiB
Diff
69 Zeilen
3.4 KiB
Diff
From e239a54a6ced679fb3e92c1caa50abd682ce598d Mon Sep 17 00:00:00 2001
|
|
From: Byteflux <byte@byteflux.net>
|
|
Date: Wed, 8 Aug 2018 16:33:21 -0600
|
|
Subject: [PATCH] Configurable speed for water flowing over lava
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 2b5402b009..2c27be63ea 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -401,6 +401,12 @@ public class PaperWorldConfig {
|
|
}
|
|
}
|
|
|
|
+ public int waterOverLavaFlowSpeed;
|
|
+ private void waterOverLavaFlowSpeed() {
|
|
+ waterOverLavaFlowSpeed = getInt("water-over-lava-flow-speed", 5);
|
|
+ log("Water over lava flow speed: " + waterOverLavaFlowSpeed);
|
|
+ }
|
|
+
|
|
public boolean armorStandTick = true;
|
|
private void armorStandTick() {
|
|
this.armorStandTick = this.getBoolean("armor-stands-tick", this.armorStandTick);
|
|
diff --git a/src/main/java/net/minecraft/server/BlockFluids.java b/src/main/java/net/minecraft/server/BlockFluids.java
|
|
index 44e00339f2..b4616f259e 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockFluids.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockFluids.java
|
|
@@ -70,11 +70,27 @@ public class BlockFluids extends Block implements IFluidSource {
|
|
@Override
|
|
public void onPlace(IBlockData iblockdata, World world, BlockPosition blockposition, IBlockData iblockdata1, boolean flag) {
|
|
if (this.a(world, blockposition, iblockdata)) {
|
|
- world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.a((IWorldReader) world));
|
|
+ world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.getFlowSpeed(world, blockposition)); // Paper
|
|
}
|
|
|
|
}
|
|
|
|
+ // Paper start - Get flow speed. Throttle if its water and flowing adjacent to lava
|
|
+ public int getFlowSpeed(World world, BlockPosition blockposition) {
|
|
+ if (this.material == Material.WATER) {
|
|
+ if (
|
|
+ world.getMaterialIfLoaded(blockposition.north(1)) == Material.LAVA ||
|
|
+ world.getMaterialIfLoaded(blockposition.south(1)) == Material.LAVA ||
|
|
+ world.getMaterialIfLoaded(blockposition.west(1)) == Material.LAVA ||
|
|
+ world.getMaterialIfLoaded(blockposition.east(1)) == Material.LAVA
|
|
+ ) {
|
|
+ return world.paperConfig.waterOverLavaFlowSpeed;
|
|
+ }
|
|
+ }
|
|
+ return this.a(world);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public IBlockData updateState(IBlockData iblockdata, EnumDirection enumdirection, IBlockData iblockdata1, GeneratorAccess generatoraccess, BlockPosition blockposition, BlockPosition blockposition1) {
|
|
if (iblockdata.p().isSource() || iblockdata1.p().isSource()) {
|
|
@@ -87,7 +103,7 @@ public class BlockFluids extends Block implements IFluidSource {
|
|
@Override
|
|
public void doPhysics(IBlockData iblockdata, World world, BlockPosition blockposition, Block block, BlockPosition blockposition1, boolean flag) {
|
|
if (this.a(world, blockposition, iblockdata)) {
|
|
- world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.a((IWorldReader) world));
|
|
+ world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.getFlowSpeed(world, blockposition)); // Paper
|
|
}
|
|
|
|
}
|
|
--
|
|
2.21.0
|
|
|