mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Kelp, cave, weeping, and twisting vines configurable max growth age
This commit is contained in:
committed by
granny
parent
9532ff01ee
commit
039e35b681
@@ -1,182 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 22 Nov 2020 20:13:27 -0600
|
||||
Subject: [PATCH] Kelp, cave, weeping, and twisting vines configurable max
|
||||
growth age
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/level/block/CaveVinesBlock.java b/net/minecraft/world/level/block/CaveVinesBlock.java
|
||||
index 81e572783157926383dd9baa58d30f5419c1616f..84d6ae4acf80f6ff4f418739a0228e740993f950 100644
|
||||
--- a/net/minecraft/world/level/block/CaveVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/CaveVinesBlock.java
|
||||
@@ -94,4 +94,11 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements CaveVines {
|
||||
public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) {
|
||||
world.setBlock(pos, state.setValue(BERRIES, Boolean.valueOf(true)), 2);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.caveVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
||||
index 9b424d7661fedf8ee1eb9f3167c62e563f04d4d1..2af311847a085a8073e9bcb26c762d1bbe1eae2c 100644
|
||||
--- a/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
||||
+++ b/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
||||
@@ -34,12 +34,12 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(RandomSource random) {
|
||||
- return (BlockState) this.defaultBlockState().setValue(GrowingPlantHeadBlock.AGE, random.nextInt(25));
|
||||
+ return (BlockState) this.defaultBlockState().setValue(GrowingPlantHeadBlock.AGE, random.nextInt(getMaxGrowthAge())); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRandomlyTicking(BlockState state) {
|
||||
- return (Integer) state.getValue(GrowingPlantHeadBlock.AGE) < 25;
|
||||
+ return (Integer) state.getValue(GrowingPlantHeadBlock.AGE) < getMaxGrowthAge(); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,7 +55,7 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
||||
} else {
|
||||
modifier = world.spigotConfig.caveVinesModifier;
|
||||
}
|
||||
- if ((Integer) state.getValue(GrowingPlantHeadBlock.AGE) < 25 && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution
|
||||
+ if ((Integer) state.getValue(GrowingPlantHeadBlock.AGE) < getMaxGrowthAge() && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution // Purpur
|
||||
// Spigot end
|
||||
BlockPos blockposition1 = pos.relative(this.growthDirection);
|
||||
|
||||
@@ -77,11 +77,11 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
||||
}
|
||||
|
||||
public BlockState getMaxAgeState(BlockState state) {
|
||||
- return (BlockState) state.setValue(GrowingPlantHeadBlock.AGE, 25);
|
||||
+ return (BlockState) state.setValue(GrowingPlantHeadBlock.AGE, getMaxGrowthAge()); // Purpur
|
||||
}
|
||||
|
||||
public boolean isMaxAge(BlockState state) {
|
||||
- return (Integer) state.getValue(GrowingPlantHeadBlock.AGE) == 25;
|
||||
+ return (Integer) state.getValue(GrowingPlantHeadBlock.AGE) >= getMaxGrowthAge(); // Purpur
|
||||
}
|
||||
|
||||
protected BlockState updateBodyAfterConvertedFromHead(BlockState from, BlockState to) {
|
||||
@@ -123,13 +123,13 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
||||
@Override
|
||||
public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) {
|
||||
BlockPos blockposition1 = pos.relative(this.growthDirection);
|
||||
- int i = Math.min((Integer) state.getValue(GrowingPlantHeadBlock.AGE) + 1, 25);
|
||||
+ int i = Math.min((Integer) state.getValue(GrowingPlantHeadBlock.AGE) + 1, getMaxGrowthAge()); // Purpur
|
||||
int j = this.getBlocksToGrowWhenBonemealed(random);
|
||||
|
||||
for (int k = 0; k < j && this.canGrowInto(world.getBlockState(blockposition1)); ++k) {
|
||||
world.setBlockAndUpdate(blockposition1, (BlockState) state.setValue(GrowingPlantHeadBlock.AGE, i));
|
||||
blockposition1 = blockposition1.relative(this.growthDirection);
|
||||
- i = Math.min(i + 1, 25);
|
||||
+ i = Math.min(i + 1, getMaxGrowthAge()); // Purpur
|
||||
}
|
||||
|
||||
}
|
||||
@@ -142,4 +142,6 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
|
||||
protected GrowingPlantHeadBlock getHeadBlock() {
|
||||
return this;
|
||||
}
|
||||
+
|
||||
+ public abstract int getMaxGrowthAge(); // Purpur
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/KelpBlock.java b/net/minecraft/world/level/block/KelpBlock.java
|
||||
index 784b19bc78c8ad9476b6dac37b6778a409a7c675..d49dd8b20d3785cc9482ed2a34fbd7aed4c9e537 100644
|
||||
--- a/net/minecraft/world/level/block/KelpBlock.java
|
||||
+++ b/net/minecraft/world/level/block/KelpBlock.java
|
||||
@@ -72,4 +72,11 @@ public class KelpBlock extends GrowingPlantHeadBlock implements LiquidBlockConta
|
||||
protected FluidState getFluidState(BlockState state) {
|
||||
return Fluids.WATER.getSource(false);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.kelpMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/TwistingVinesBlock.java b/net/minecraft/world/level/block/TwistingVinesBlock.java
|
||||
index 6342bb11a162b9e6d9475c5989b1670d77e8f0fb..f8be92512446d3f0e5f0f21222bbefd04ab2838a 100644
|
||||
--- a/net/minecraft/world/level/block/TwistingVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/TwistingVinesBlock.java
|
||||
@@ -34,4 +34,11 @@ public class TwistingVinesBlock extends GrowingPlantHeadBlock {
|
||||
protected boolean canGrowInto(BlockState state) {
|
||||
return NetherVines.isValidGrowthState(state);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.twistingVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/WeepingVinesBlock.java b/net/minecraft/world/level/block/WeepingVinesBlock.java
|
||||
index 3dec5a082606ee35a8c8d7f746480262d6a189c5..b2f6ccae9576c176263e51a232e17a08d54543b3 100644
|
||||
--- a/net/minecraft/world/level/block/WeepingVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/WeepingVinesBlock.java
|
||||
@@ -34,4 +34,11 @@ public class WeepingVinesBlock extends GrowingPlantHeadBlock {
|
||||
protected boolean canGrowInto(BlockState state) {
|
||||
return NetherVines.isValidGrowthState(state);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.weepingVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index f84248af574887e48180e88b3e365f7008dd1c16..80647bd8a776fea7cfedf3a991e9da73ce6c5ac1 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -315,6 +315,10 @@ public class PurpurConfig {
|
||||
public static Set<Enchantment> grindstoneIgnoredEnchants = new HashSet<>();
|
||||
public static boolean grindstoneRemoveAttributes = false;
|
||||
public static boolean grindstoneRemoveDisplay = false;
|
||||
+ public static int caveVinesMaxGrowthAge = 25;
|
||||
+ public static int kelpMaxGrowthAge = 25;
|
||||
+ public static int twistingVinesMaxGrowthAge = 25;
|
||||
+ public static int weepingVinesMaxGrowthAge = 25;
|
||||
private static void blockSettings() {
|
||||
if (version < 3) {
|
||||
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
|
||||
@@ -364,6 +368,30 @@ public class PurpurConfig {
|
||||
});
|
||||
grindstoneRemoveAttributes = getBoolean("settings.blocks.grindstone.remove-attributes", grindstoneRemoveAttributes);
|
||||
grindstoneRemoveDisplay = getBoolean("settings.blocks.grindstone.remove-name-and-lore", grindstoneRemoveDisplay);
|
||||
+ caveVinesMaxGrowthAge = getInt("settings.blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge);
|
||||
+ if (caveVinesMaxGrowthAge > 25) {
|
||||
+ caveVinesMaxGrowthAge = 25;
|
||||
+ log(Level.WARNING, "blocks.cave_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
+ log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
+ }
|
||||
+ kelpMaxGrowthAge = getInt("settings.blocks.kelp.max-growth-age", kelpMaxGrowthAge);
|
||||
+ if (kelpMaxGrowthAge > 25) {
|
||||
+ kelpMaxGrowthAge = 25;
|
||||
+ log(Level.WARNING, "blocks.kelp.max-growth-age is set to above maximum allowed value of 25");
|
||||
+ log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
+ }
|
||||
+ twistingVinesMaxGrowthAge = getInt("settings.blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge);
|
||||
+ if (twistingVinesMaxGrowthAge > 25) {
|
||||
+ twistingVinesMaxGrowthAge = 25;
|
||||
+ log(Level.WARNING, "blocks.twisting_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
+ log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
+ }
|
||||
+ weepingVinesMaxGrowthAge = getInt("settings.blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge);
|
||||
+ if (weepingVinesMaxGrowthAge > 25) {
|
||||
+ weepingVinesMaxGrowthAge = 25;
|
||||
+ log(Level.WARNING, "blocks.weeping_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
+ log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
+ }
|
||||
}
|
||||
|
||||
public static boolean allowInapplicableEnchants = false;
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/level/block/CaveVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/CaveVinesBlock.java
|
||||
@@ -92,4 +_,11 @@
|
||||
public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) {
|
||||
level.setBlock(pos, state.setValue(BERRIES, Boolean.valueOf(true)), 2);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - cave vines configurable max growth age
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.caveVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end - cave vines configurable max growth age
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
--- a/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
||||
+++ b/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
|
||||
@@ -34,12 +_,12 @@
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(RandomSource random) {
|
||||
- return this.defaultBlockState().setValue(AGE, Integer.valueOf(random.nextInt(25)));
|
||||
+ return this.defaultBlockState().setValue(AGE, Integer.valueOf(random.nextInt(getMaxGrowthAge()))); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRandomlyTicking(BlockState state) {
|
||||
- return state.getValue(AGE) < 25;
|
||||
+ return state.getValue(AGE) < getMaxGrowthAge(); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,7 +_,7 @@
|
||||
} else if (this == Blocks.CAVE_VINES) {
|
||||
modifier = level.spigotConfig.caveVinesModifier;
|
||||
}
|
||||
- if (state.getValue(AGE) < 25 && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution
|
||||
+ if (state.getValue(AGE) < getMaxGrowthAge() && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
// Spigot end
|
||||
BlockPos blockPos = pos.relative(this.growthDirection);
|
||||
if (this.canGrowInto(level.getBlockState(blockPos))) {
|
||||
@@ -75,11 +_,11 @@
|
||||
}
|
||||
|
||||
public BlockState getMaxAgeState(BlockState state) {
|
||||
- return state.setValue(AGE, Integer.valueOf(25));
|
||||
+ return state.setValue(AGE, Integer.valueOf(getMaxGrowthAge())); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
|
||||
public boolean isMaxAge(BlockState state) {
|
||||
- return state.getValue(AGE) == 25;
|
||||
+ return state.getValue(AGE) >= getMaxGrowthAge(); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
|
||||
protected BlockState updateBodyAfterConvertedFromHead(BlockState head, BlockState body) {
|
||||
@@ -130,13 +_,13 @@
|
||||
@Override
|
||||
public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) {
|
||||
BlockPos blockPos = pos.relative(this.growthDirection);
|
||||
- int min = Math.min(state.getValue(AGE) + 1, 25);
|
||||
+ int min = Math.min(state.getValue(AGE) + 1, getMaxGrowthAge()); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
int blocksToGrowWhenBonemealed = this.getBlocksToGrowWhenBonemealed(random);
|
||||
|
||||
for (int i = 0; i < blocksToGrowWhenBonemealed && this.canGrowInto(level.getBlockState(blockPos)); i++) {
|
||||
level.setBlockAndUpdate(blockPos, state.setValue(AGE, Integer.valueOf(min)));
|
||||
blockPos = blockPos.relative(this.growthDirection);
|
||||
- min = Math.min(min + 1, 25);
|
||||
+ min = Math.min(min + 1, getMaxGrowthAge()); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,4 +_,6 @@
|
||||
protected GrowingPlantHeadBlock getHeadBlock() {
|
||||
return this;
|
||||
}
|
||||
+
|
||||
+ public abstract int getMaxGrowthAge(); // Purpur - kelp, cave, weeping, and twisting configurable max growth age
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/level/block/KelpBlock.java
|
||||
+++ b/net/minecraft/world/level/block/KelpBlock.java
|
||||
@@ -72,4 +_,11 @@
|
||||
protected FluidState getFluidState(BlockState state) {
|
||||
return Fluids.WATER.getSource(false);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - kelp vines configurable max growth age
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.kelpMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end - kelp vines configurable max growth age
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/level/block/TwistingVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/TwistingVinesBlock.java
|
||||
@@ -34,4 +_,11 @@
|
||||
protected boolean canGrowInto(BlockState state) {
|
||||
return NetherVines.isValidGrowthState(state);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - twisting vines configurable max growth age
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.twistingVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end - twisting vines configurable max growth age
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/level/block/WeepingVinesBlock.java
|
||||
+++ b/net/minecraft/world/level/block/WeepingVinesBlock.java
|
||||
@@ -34,4 +_,11 @@
|
||||
protected boolean canGrowInto(BlockState state) {
|
||||
return NetherVines.isValidGrowthState(state);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - weeping vines configurable max growth age
|
||||
+ @Override
|
||||
+ public int getMaxGrowthAge() {
|
||||
+ return org.purpurmc.purpur.PurpurConfig.weepingVinesMaxGrowthAge;
|
||||
+ }
|
||||
+ // Purpur end - weeping vines configurable max growth age
|
||||
}
|
||||
@@ -307,6 +307,10 @@ public class PurpurConfig {
|
||||
public static Set<Enchantment> grindstoneIgnoredEnchants = new HashSet<>();
|
||||
public static boolean grindstoneRemoveAttributes = false;
|
||||
public static boolean grindstoneRemoveDisplay = false;
|
||||
public static int caveVinesMaxGrowthAge = 25;
|
||||
public static int kelpMaxGrowthAge = 25;
|
||||
public static int twistingVinesMaxGrowthAge = 25;
|
||||
public static int weepingVinesMaxGrowthAge = 25;
|
||||
private static void blockSettings() {
|
||||
if (version < 3) {
|
||||
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
|
||||
@@ -356,6 +360,30 @@ public class PurpurConfig {
|
||||
});
|
||||
grindstoneRemoveAttributes = getBoolean("settings.blocks.grindstone.remove-attributes", grindstoneRemoveAttributes);
|
||||
grindstoneRemoveDisplay = getBoolean("settings.blocks.grindstone.remove-name-and-lore", grindstoneRemoveDisplay);
|
||||
caveVinesMaxGrowthAge = getInt("settings.blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge);
|
||||
if (caveVinesMaxGrowthAge > 25) {
|
||||
caveVinesMaxGrowthAge = 25;
|
||||
log(Level.WARNING, "blocks.cave_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
}
|
||||
kelpMaxGrowthAge = getInt("settings.blocks.kelp.max-growth-age", kelpMaxGrowthAge);
|
||||
if (kelpMaxGrowthAge > 25) {
|
||||
kelpMaxGrowthAge = 25;
|
||||
log(Level.WARNING, "blocks.kelp.max-growth-age is set to above maximum allowed value of 25");
|
||||
log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
}
|
||||
twistingVinesMaxGrowthAge = getInt("settings.blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge);
|
||||
if (twistingVinesMaxGrowthAge > 25) {
|
||||
twistingVinesMaxGrowthAge = 25;
|
||||
log(Level.WARNING, "blocks.twisting_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
}
|
||||
weepingVinesMaxGrowthAge = getInt("settings.blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge);
|
||||
if (weepingVinesMaxGrowthAge > 25) {
|
||||
weepingVinesMaxGrowthAge = 25;
|
||||
log(Level.WARNING, "blocks.weeping_vines.max-growth-age is set to above maximum allowed value of 25");
|
||||
log(Level.WARNING, "Using value of 25 to prevent issues");
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean allowInapplicableEnchants = false;
|
||||
|
||||
Reference in New Issue
Block a user