public void randomTick(BlockState p_152728_, ServerLevel p_152729_, BlockPos p_152730_, Random p_152731_) {
if (p_152731_.nextInt(5) == 0) {
Direction direction = DIRECTIONS[p_152731_.nextInt(DIRECTIONS.length)];
BlockPos blockpos = p_152730_.relative(direction);
BlockState blockstate = p_152729_.getBlockState(blockpos);
RegistryObject<Block> block = null;
if (canClusterGrowAtState(blockstate)) {
block = RegistryObject.of(new ResourceLocation("tachismod:small_amber_bud"), ForgeRegistries.BLOCKS);
} else if (blockstate.is(Blocks.SMALL_AMETHYST_BUD) && blockstate.getValue(AmberClusterBlock.FACING) == direction) {
block = RegistryObject.of(new ResourceLocation("tachismod:medium_amber_bud"), ForgeRegistries.BLOCKS);
} else if (blockstate.is(Blocks.MEDIUM_AMETHYST_BUD) && blockstate.getValue(AmberClusterBlock.FACING) == direction) {
block = RegistryObject.of(new ResourceLocation("tachismod:large_amber_bud"), ForgeRegistries.BLOCKS);
} else if (blockstate.is(Blocks.LARGE_AMETHYST_BUD) && blockstate.getValue(AmberClusterBlock.FACING) == direction) {
block = RegistryObject.of(new ResourceLocation("tachismod:amber_cluster_block"), ForgeRegistries.BLOCKS);
}
if (block != null) {
BlockState blockstate1 = block.defaultBlockState().setValue(AmberClusterBlock.FACING, direction).setValue(AmberClusterBlock.WATERLOGGED, Boolean.valueOf(blockstate.getFluidState().getType() == Fluids.WATER));
p_152729_.setBlockAndUpdate(blockpos, blockstate1);
}
Not sure if this was the solution you were hoping for but its still throwing errors at me unfortunately.