Подскажите пожалуйста гайд о направлении блока.

Версия Minecraft
1.12.2
21
1
Нужно сделать так, чтобы блок при его установке был лицевой стороной направлен на игрока (как, например, печка). Пробовал всё сделать так же, как и в коде печки (BlockFurnace.java), но клиент после этого выдаёт ошибку.
Ну или же подскажите, что не так в этом коде (наверное, всё):
Java:
public class KnockedPlanks extends Block
{
   
    protected static final AxisAlignedBB FULL_BLOCK_AABB = new AxisAlignedBB(0.0D, 0.0D, 1.0D, 1.0D, 1.0D, 0.875D);
    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
    {
        this.setDefaultFacing(worldIn, pos, state);
    }
    private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state)
    {
        if (!worldIn.isRemote)
        {
            IBlockState iblockstate = worldIn.getBlockState(pos.north());
            IBlockState iblockstate1 = worldIn.getBlockState(pos.south());
            IBlockState iblockstate2 = worldIn.getBlockState(pos.west());
            IBlockState iblockstate3 = worldIn.getBlockState(pos.east());
            EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);

            if (enumfacing == EnumFacing.NORTH && iblockstate.isFullBlock() && !iblockstate1.isFullBlock())
            {
                enumfacing = EnumFacing.SOUTH;
            }
            else if (enumfacing == EnumFacing.SOUTH && iblockstate1.isFullBlock() && !iblockstate.isFullBlock())
            {
                enumfacing = EnumFacing.NORTH;
            }
            else if (enumfacing == EnumFacing.WEST && iblockstate2.isFullBlock() && !iblockstate3.isFullBlock())
            {
                enumfacing = EnumFacing.EAST;
            }
            else if (enumfacing == EnumFacing.EAST && iblockstate3.isFullBlock() && !iblockstate2.isFullBlock())
            {
                enumfacing = EnumFacing.WEST;
            }

            worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
        }
    }
    public KnockedPlanks(String name)
    {
        super(Material.WOOD);
        this.setRegistryName("kplanks");
        this.setUnlocalizedName("KnockedPlanks");
        this.setCreativeTab(FirstMod.CTABBLOCKS);
        this.setHardness(3);
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
    }
    @Override
    public boolean isOpaqueCube(IBlockState state)
    {
        return false;
    }
    @Override
    public boolean isFullCube(IBlockState state)
    {
        return false;
    }
   
    private static final AxisAlignedBB[] KPLANKS_AABB = new AxisAlignedBB[] {
            new AxisAlignedBB(0.0, 0.125, 1.0, 1.0, 1.0, 0.875)
        };
   
    @Override
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
        addCollisionBoxToList(pos, entityBox, collidingBoxes, KPLANKS_AABB[0]);
    }
    public AxisAlignedBB getBoundingBox(IBlockState blockState, IBlockAccess source, BlockPos position) {

        return FULL_BLOCK_AABB;
    }
}
 
Сверху