code: @Override
  	public IBlockState mergeBlock(World world, BlockPos pos, IBlockState state, ItemStack itemStack, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
  	{
  		EnumFacing direction = DirectionalComponent.getDirection(state);
  		EnumFacing realSide = EnumFacingUtils.getRealSide(state, side);
  
  		if (realSide == EnumFacing.EAST && hitX == 1)
  			return null;
  		if (realSide == EnumFacing.WEST && hitX == 0)
  			return null;
  		if (realSide == EnumFacing.UP && hitY == 1)
  			return null;
  		if (realSide == EnumFacing.DOWN && hitX == 0)
  			return null;
  
  		boolean rotate = false;
  		switch (direction)
  		{
  			case SOUTH:
  				rotate = hitX < 0.5F;
  				break;
  			case NORTH:
  				rotate = hitX >= 0.5F;
  				break;
  			case WEST:
  				rotate = hitZ < 0.5F;
  				break;
  			case EAST:
  				rotate = hitZ >= 0.5F;
  				break;
  			default:
  				break;
  		}
  
  		if (rotate)
  			state = DirectionalComponent.rotate(state);
  
  		return state.withProperty(getProperty(), true);
  	}
docs: Merges the {@link IBlockState} into a corner if possible.
  
  @param world the world
  @param pos the pos
  @param state the state
  @param itemStack the item stack
  @param player the player
  @param side the side
  @param hitX the hit x
  @param hitY the hit y
  @param hitZ the hit z
  @return the i block state