mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 10:27:44 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 9a129fa99 Add #getEligibleHumans to SkeletonHorseTrapEvent b5e23c7a6 Fix merging spawning values a932e8ad7 Turn off spigot verbose world by default 8ced89f65 Fix Delegation to vanilla chunk gen
125 lines
6.2 KiB
Diff
125 lines
6.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
|
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/server/BlockGrowingTop.java b/src/main/java/net/minecraft/server/BlockGrowingTop.java
|
|
index 6c084ad5cd..6d49422c33 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockGrowingTop.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockGrowingTop.java
|
|
@@ -15,7 +15,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
|
|
@@ -25,9 +25,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))) {
|
|
@@ -72,13 +74,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/server/BlockKelp.java b/src/main/java/net/minecraft/server/BlockKelp.java
|
|
index 2a7a6e5943..b35c115e34 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockKelp.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockKelp.java
|
|
@@ -58,5 +58,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/server/BlockTwistingVines.java b/src/main/java/net/minecraft/server/BlockTwistingVines.java
|
|
index 146638111c..71b9b7183d 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockTwistingVines.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockTwistingVines.java
|
|
@@ -29,5 +29,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/server/BlockWeepingVines.java b/src/main/java/net/minecraft/server/BlockWeepingVines.java
|
|
index 94ffadb91f..067df63ab2 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockWeepingVines.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockWeepingVines.java
|
|
@@ -29,5 +29,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 24179c3d5d..bd4c68bbfb 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -355,6 +355,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;
|
|
@@ -409,13 +414,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;
|