From cec7583cf2ae3d186b7b16a7d6c5ff8681738bc3 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 01:42:34 +0100 Subject: [PATCH] WIP: Implemented the rest of bonemeal block overrides. --- .../firefly_bush_backport/block/FireflyBushBlock.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java index f378063..3d1f952 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java +++ b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java @@ -36,18 +36,22 @@ public class FireflyBushBlock extends BushBlock implements BonemealableBlock { @Override public boolean isBonemealSuccess(Level pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { - return false; + return true; } @Override public void performBonemeal(ServerLevel pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { - + findSpreadableNeighbourPos(pLevel, pPos, pState).ifPresent(x -> pLevel.setBlockAndUpdate(x, this.defaultBlockState())); } static boolean hasSpreadableNeighbourPos(LevelReader levelReader, BlockPos blockPos, BlockState blockState) { return getSpreadableNeighbourPos(Direction.Plane.HORIZONTAL.stream().toList(), levelReader, blockPos, blockState).isPresent(); } + static Optional findSpreadableNeighbourPos(Level level, BlockPos blockPos, BlockState blockState) { + return getSpreadableNeighbourPos(Direction.Plane.HORIZONTAL.shuffledCopy(level.random), level, blockPos, blockState); + } + static Optional getSpreadableNeighbourPos(List directions, LevelReader levelReader, BlockPos blockPos, BlockState blockState) { for (Direction direction : directions) { BlockPos blockPosDirection = blockPos.relative(direction);