mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 18:37:42 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 7232d8f2a EntityLoadCrossbowEvent#shouldConsumeItem 4740bd6c8 Mark PlayerInventory#getItem as nullable bd9ace578 Add a config option to limit the number of entities of each type to load/save in a chunk (#4792) 6bafeb5a9 Move logic from last patch into correct place 9668118fd disable entity ticking flag after watchdog obliteration
125 lines
6.5 KiB
Diff
125 lines
6.5 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 6c084ad5cda41425eed04465d942f6a73968cd61..6d49422c3358b06369e1a31ee5580ff4a0057c5f 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 2a7a6e5943f2ff87815c398ffec01bb78d320690..b35c115e34cf5f7a24cd26ca31c19a63c82e0080 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 146638111c56ec81ab46b514d45a7cc8aac2b36a..71b9b7183df5702f2753c7372d0c491b2230b365 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 94ffadb91fec65a721cf0c8fa98bad708a2ca269..067df63ab27ecb9fe0a0d012b16efbd546fdfff7 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 cf6fa370ce968a882311f1403556cea618c7c7fe..91ba7f0b3ddb2846119e4b74ba501f6b40938702 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -348,6 +348,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;
|
|
@@ -402,13 +407,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;
|