diff --git a/patches/server/0202-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0202-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch deleted file mode 100644 index 156350afc..000000000 --- a/patches/server/0202-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Mon, 23 Aug 2021 20:57:04 -0500 -Subject: [PATCH] Chance for azalea blocks to grow into trees naturally - - -diff --git a/net/minecraft/world/level/block/AzaleaBlock.java b/net/minecraft/world/level/block/AzaleaBlock.java -index affbbf6abc6bc09ecb652c1dee92aa297458bc39..c58e07f2a99e3cbb5bd5d3693c006919e0710b7a 100644 ---- a/net/minecraft/world/level/block/AzaleaBlock.java -+++ b/net/minecraft/world/level/block/AzaleaBlock.java -@@ -50,6 +50,20 @@ public class AzaleaBlock extends BushBlock implements BonemealableBlock { - - @Override - public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { -+ // Purpur start - Chance for azalea blocks to grow into trees naturally -+ growTree(world, random, pos, state); -+ } -+ -+ @Override -+ public void randomTick(net.minecraft.world.level.block.state.BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { -+ double chance = state.getBlock() == Blocks.FLOWERING_AZALEA ? world.purpurConfig.floweringAzaleaGrowthChance : world.purpurConfig.azaleaGrowthChance; -+ if (chance > 0.0D && world.getMaxLocalRawBrightness(pos.above()) > 9 && random.nextDouble() < chance) { -+ growTree(world, random, pos, state); -+ } -+ } -+ -+ private void growTree(ServerLevel world, RandomSource random, BlockPos pos, net.minecraft.world.level.block.state.BlockState state) { -+ // Purpur end - Chance for azalea blocks to grow into trees naturally - TreeGrower.AZALEA.growTree(world, world.getChunkSource().getGenerator(), pos, state, random); - } - -diff --git a/net/minecraft/world/level/block/Blocks.java b/net/minecraft/world/level/block/Blocks.java -index 9bafac9b2c7b487f745fb64354f4bbc6a7ded468..c5f8227cd9631d98cc8404e3f6d6109a55c617aa 100644 ---- a/net/minecraft/world/level/block/Blocks.java -+++ b/net/minecraft/world/level/block/Blocks.java -@@ -6454,6 +6454,7 @@ public class Blocks { - BlockBehaviour.Properties.of() - .mapColor(MapColor.PLANT) - .forceSolidOff() -+ .randomTicks() // Purpur - Chance for azalea blocks to grow into trees naturally - .instabreak() - .sound(SoundType.AZALEA) - .noOcclusion() -@@ -6465,6 +6466,7 @@ public class Blocks { - BlockBehaviour.Properties.of() - .mapColor(MapColor.PLANT) - .forceSolidOff() -+ .randomTicks() // Purpur - Chance for azalea blocks to grow into trees naturally - .instabreak() - .sound(SoundType.FLOWERING_AZALEA) - .noOcclusion() -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e5934c276e286820944488e2d629b01d58dbf200..c44be697e59049adb50967b6d91016035fb69956 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -774,6 +774,11 @@ public class PurpurWorldConfig { - anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); - } - -+ public double azaleaGrowthChance = 0.0D; -+ private void azaleaSettings() { -+ azaleaGrowthChance = getDouble("blocks.azalea.growth-chance", azaleaGrowthChance); -+ } -+ - public int beaconLevelOne = 20; - public int beaconLevelTwo = 30; - public int beaconLevelThree = 40; -@@ -911,6 +916,11 @@ public class PurpurWorldConfig { - farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); - } - -+ public double floweringAzaleaGrowthChance = 0.0D; -+ private void floweringAzaleaSettings() { -+ floweringAzaleaGrowthChance = getDouble("blocks.flowering_azalea.growth-chance", floweringAzaleaGrowthChance); -+ } -+ - public boolean furnaceUseLavaFromUnderneath = false; - private void furnaceSettings() { - if (PurpurConfig.version < 17) { diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/AzaleaBlock.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/AzaleaBlock.java.patch new file mode 100644 index 000000000..066e2cfd6 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/AzaleaBlock.java.patch @@ -0,0 +1,23 @@ +--- a/net/minecraft/world/level/block/AzaleaBlock.java ++++ b/net/minecraft/world/level/block/AzaleaBlock.java +@@ -50,6 +_,20 @@ + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { ++ // Purpur start - Chance for azalea blocks to grow into trees naturally ++ growTree(level, random, pos, state); ++ } ++ ++ @Override ++ public void randomTick(net.minecraft.world.level.block.state.BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { ++ double chance = state.getBlock() == Blocks.FLOWERING_AZALEA ? world.purpurConfig.floweringAzaleaGrowthChance : world.purpurConfig.azaleaGrowthChance; ++ if (chance > 0.0D && world.getMaxLocalRawBrightness(pos.above()) > 9 && random.nextDouble() < chance) { ++ growTree(world, random, pos, state); ++ } ++ } ++ ++ private void growTree(ServerLevel level, RandomSource random, BlockPos pos, net.minecraft.world.level.block.state.BlockState state) { ++ // Purpur end - Chance for azalea blocks to grow into trees naturally + TreeGrower.AZALEA.growTree(level, level.getChunkSource().getGenerator(), pos, state, random); + } + diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch new file mode 100644 index 000000000..be0a86f42 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch @@ -0,0 +1,18 @@ +--- a/net/minecraft/world/level/block/Blocks.java ++++ b/net/minecraft/world/level/block/Blocks.java +@@ -6486,6 +_,7 @@ + BlockBehaviour.Properties.of() + .mapColor(MapColor.PLANT) + .forceSolidOff() ++ .randomTicks() // Purpur - Chance for azalea blocks to grow into trees naturally + .instabreak() + .sound(SoundType.AZALEA) + .noOcclusion() +@@ -6497,6 +_,7 @@ + BlockBehaviour.Properties.of() + .mapColor(MapColor.PLANT) + .forceSolidOff() ++ .randomTicks() // Purpur - Chance for azalea blocks to grow into trees naturally + .instabreak() + .sound(SoundType.FLOWERING_AZALEA) + .noOcclusion() diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 69a6a023f..6e6589290 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -773,6 +773,11 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } + public double azaleaGrowthChance = 0.0D; + private void azaleaSettings() { + azaleaGrowthChance = getDouble("blocks.azalea.growth-chance", azaleaGrowthChance); + } + public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; @@ -910,6 +915,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } + public double floweringAzaleaGrowthChance = 0.0D; + private void floweringAzaleaSettings() { + floweringAzaleaGrowthChance = getDouble("blocks.flowering_azalea.growth-chance", floweringAzaleaGrowthChance); + } + public boolean furnaceUseLavaFromUnderneath = false; private void furnaceSettings() { if (PurpurConfig.version < 17) {