2022-06-08 16:29:32 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
|
|
|
|
Date: Fri, 3 Dec 2021 17:09:24 -0800
|
|
|
|
Subject: [PATCH] Fix kelp modifier changing growth for other crops
|
|
|
|
|
|
|
|
Also add growth modifiers for twisting vines, weeping vines, cave vines,
|
|
|
|
and glow berries
|
|
|
|
|
|
|
|
Also fix above-mentioned modifiers from having the reverse effect
|
|
|
|
|
|
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
|
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
|
|
|
|
@@ -0,0 +0,0 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected BlockState getGrowIntoState(BlockState state, RandomSource random) {
|
|
|
|
- return (BlockState) super.getGrowIntoState(state, random).setValue(CaveVinesBlock.BERRIES, random.nextFloat() < 0.11F);
|
|
|
|
+ // Paper start
|
|
|
|
+ return this.getGrowIntoState(state, random, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) {
|
2022-06-15 00:37:14 +02:00
|
|
|
+ final boolean value = random.nextFloat() < (level != null ? (0.11F * (level.spigotConfig.glowBerryModifier / 100.0F)) : 0.11F);
|
2022-06-08 16:29:32 +02:00
|
|
|
+ return (BlockState) super.getGrowIntoState(state, random).setValue(CaveVinesBlock.BERRIES, value);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
@Override
|
|
|
|
public ItemStack getCloneItemStack(BlockGetter world, BlockPos pos, BlockState state) {
|
|
|
|
return new ItemStack(Items.GLOW_BERRIES);
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
|
|
|
BlockPos blockposition1 = pos.relative(this.growthDirection);
|
|
|
|
|
|
|
|
if (this.canGrowInto(world.getBlockState(blockposition1))) {
|
|
|
|
- org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random)); // CraftBukkit
|
|
|
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random, world)); // CraftBukkit // Paper
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
+ protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) {
|
|
|
|
+ return this.getGrowIntoState(state, random);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
protected BlockState getGrowIntoState(BlockState state, RandomSource random) {
|
|
|
|
return (BlockState) state.cycle(GrowingPlantHeadBlock.AGE);
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
@@ -0,0 +0,0 @@ public class SpigotWorldConfig
|
2022-10-23 19:41:34 +02:00
|
|
|
public int twistingVinesModifier;
|
|
|
|
public int weepingVinesModifier;
|
|
|
|
public int caveVinesModifier;
|
|
|
|
+ public int glowBerryModifier; // Paper
|
2022-06-08 16:29:32 +02:00
|
|
|
private int getAndValidateGrowth(String crop)
|
|
|
|
{
|
|
|
|
int modifier = this.getInt( "growth." + crop.toLowerCase(java.util.Locale.ENGLISH) + "-modifier", 100 );
|
|
|
|
@@ -0,0 +0,0 @@ public class SpigotWorldConfig
|
2022-10-23 19:41:34 +02:00
|
|
|
this.twistingVinesModifier = this.getAndValidateGrowth( "TwistingVines" );
|
|
|
|
this.weepingVinesModifier = this.getAndValidateGrowth( "WeepingVines" );
|
|
|
|
this.caveVinesModifier = this.getAndValidateGrowth( "CaveVines" );
|
|
|
|
+ this.glowBerryModifier = this.getAndValidateGrowth("GlowBerry"); // Paper
|
2022-06-08 16:29:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public double itemMerge;
|