From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 22 Nov 2020 20:13:27 -0600 Subject: [PATCH] Kelp weeping and twisting vines configurable max growth age diff --git a/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java b/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java index 546c7877647bac41753a600bd25c630a0510be56..3d6a1131a138114424b683a81d04478e92d05544 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java +++ b/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java @@ -30,7 +30,7 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB @Override public IBlockData a(GeneratorAccess generatoraccess) { - return (IBlockData) this.getBlockData().set(BlockGrowingTop.d, generatoraccess.getRandom().nextInt(25)); + return (IBlockData) this.getBlockData().set(BlockGrowingTop.d, generatoraccess.getRandom().nextInt(getMaxGrowthAge(generatoraccess.getMinecraftWorld()))); // Purpur } @Override @@ -40,9 +40,11 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB public abstract double getGrowthModifier(WorldServer worldserver); // Purpur + public abstract int getMaxGrowthAge(WorldServer worldserver); // Purpur + @Override public void tick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) { - if ((Integer) iblockdata.get(BlockGrowingTop.d) < 25 && random.nextDouble() < (100.0D / getGrowthModifier(worldserver)) * this.e) { // Spigot // Purpur + if ((Integer) iblockdata.get(BlockGrowingTop.d) < getMaxGrowthAge(worldserver) && random.nextDouble() < (100.0D / getGrowthModifier(worldserver)) * this.e) { // Spigot // Purpur BlockPosition blockposition1 = blockposition.shift(this.a); if (this.h(worldserver.getType(blockposition1))) { @@ -87,13 +89,13 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB @Override public void a(WorldServer worldserver, Random random, BlockPosition blockposition, IBlockData iblockdata) { BlockPosition blockposition1 = blockposition.shift(this.a); - int i = Math.min((Integer) iblockdata.get(BlockGrowingTop.d) + 1, 25); + int i = Math.min((Integer) iblockdata.get(BlockGrowingTop.d) + 1, getMaxGrowthAge(worldserver)); // Purpur int j = this.a(random); for (int k = 0; k < j && this.h(worldserver.getType(blockposition1)); ++k) { worldserver.setTypeUpdate(blockposition1, (IBlockData) iblockdata.set(BlockGrowingTop.d, i)); blockposition1 = blockposition1.shift(this.a); - i = Math.min(i + 1, 25); + i = Math.min(i + 1, getMaxGrowthAge(worldserver)); // Purpur } } diff --git a/src/main/java/net/minecraft/world/level/block/BlockKelp.java b/src/main/java/net/minecraft/world/level/block/BlockKelp.java index 27f1cbe8786d7c37d62193a21baf0a2bdc6f0294..90ad39d40e4f979126d80c70df292e01e07ed793 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockKelp.java +++ b/src/main/java/net/minecraft/world/level/block/BlockKelp.java @@ -72,5 +72,9 @@ public class BlockKelp extends BlockGrowingTop implements IFluidContainer { public double getGrowthModifier(WorldServer worldserver) { return worldserver.spigotConfig.kelpModifier; } + + public int getMaxGrowthAge(WorldServer worldserver) { + return worldserver.purpurConfig.kelpMaxGrowthAge; + } // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/BlockTwistingVines.java b/src/main/java/net/minecraft/world/level/block/BlockTwistingVines.java index 3a8d08a1ee8f066cea36e6acff492e5af62993c5..d95151d50d2652e5f1b215267c898402f0b28829 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockTwistingVines.java +++ b/src/main/java/net/minecraft/world/level/block/BlockTwistingVines.java @@ -34,5 +34,9 @@ public class BlockTwistingVines extends BlockGrowingTop { public double getGrowthModifier(WorldServer worldserver) { return worldserver.purpurConfig.twistingVinesGrowthModifier; } + + public int getMaxGrowthAge(WorldServer worldserver) { + return worldserver.purpurConfig.twistingVinesMaxGrowthAge; + } // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/BlockWeepingVines.java b/src/main/java/net/minecraft/world/level/block/BlockWeepingVines.java index 198bd8857571872ed3f7437529c330dceeb825db..a71f97e87ee7210f3246e542dd768403905f7679 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockWeepingVines.java +++ b/src/main/java/net/minecraft/world/level/block/BlockWeepingVines.java @@ -34,5 +34,9 @@ public class BlockWeepingVines extends BlockGrowingTop { public double getGrowthModifier(WorldServer worldserver) { return worldserver.purpurConfig.weepingVinesGrowthModifier; } + + public int getMaxGrowthAge(WorldServer worldserver) { + return worldserver.purpurConfig.weepingVinesMaxGrowthAge; + } // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 17bbe2ceea016bcb00dc5542bea47e083e723ea5..221b6d3c98afe1c72481a922ac7eeff9801d8c2f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -424,6 +424,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } + public int kelpMaxGrowthAge = 25; + private void kelpSettings() { + kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); + } + public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; @@ -478,13 +483,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; + public int twistingVinesMaxGrowthAge = 25; private void twistingVinesSettings() { twistingVinesGrowthModifier = getDouble("blocks.twisting_vines.growth-modifier", twistingVinesGrowthModifier); + twistingVinesMaxGrowthAge = getInt("blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge); } public double weepingVinesGrowthModifier = 0.10D; + public int weepingVinesMaxGrowthAge = 25; private void weepingVinesSettings() { weepingVinesGrowthModifier = getDouble("blocks.weeping_vines.growth-modifier", weepingVinesGrowthModifier); + weepingVinesMaxGrowthAge = getInt("blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge); } public boolean babiesAreRidable = true;