From c9cd7554a7447afb16a65d55ebf96a2c6ee3fd9f Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 12:27:07 -0600 Subject: [PATCH] Configurable lava flow speed diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java index e093f7dc1..a197af84f 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -192,4 +192,11 @@ public class PaperWorldConfig { fastDrainLava = getBoolean("fast-drain.lava", false); fastDrainWater = getBoolean("fast-drain.water", false); } + + public int lavaFlowSpeedNormal; + public int lavaFlowSpeedNether; + private void lavaFlowSpeeds() { + lavaFlowSpeedNormal = getInt("lava-flow-speed.normal", 30); + lavaFlowSpeedNether = getInt("lava-flow-speed.nether", 10); + } } diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java index 8e9de3bcb..0a2823686 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java @@ -272,6 +272,9 @@ public class BlockFlowing extends BlockFluids { * Paper - Get flow speed. Throttle if its water and flowing adjacent to lava */ public int getFlowSpeed(World world, BlockPosition blockposition) { + if (this.material == Material.LAVA) { + return world.worldProvider.isSkyMissing() ? world.paperConfig.lavaFlowSpeedNether : world.paperConfig.lavaFlowSpeedNormal; + } if (this.material == Material.WATER && ( world.getType(blockposition.north(1)).getBlock().material == Material.LAVA || world.getType(blockposition.south(1)).getBlock().material == Material.LAVA || diff --git a/src/main/java/net/minecraft/server/WorldProvider.java b/src/main/java/net/minecraft/server/WorldProvider.java index 660f3bcce..a27512c0f 100644 --- a/src/main/java/net/minecraft/server/WorldProvider.java +++ b/src/main/java/net/minecraft/server/WorldProvider.java @@ -114,6 +114,7 @@ public abstract class WorldProvider { return this.f; } + public final boolean isSkyMissing() { return this.n(); } // Paper - OBFHELPER public boolean n() { return this.e; } -- 2.12.0.windows.1