code: static TextureAtlasSprite getParticleIcon(IBlockState state)
  	{
  		Icon icon = null;
  		IIconProvider provider = IComponent.getComponent(IIconProvider.class, state.getBlock());
  		if (provider instanceof IBlockIconProvider)
  			icon = ((IBlockIconProvider) provider).getParticleIcon(state);
  		else if (provider != null)
  			icon = provider.getIcon();
  
  		return icon != null ? icon : Icon.missing;
  	}
docs: Gets the {@link TextureAtlasSprite} to used for the {@link IBlockState}.<br>
  Called via ASM from {@link BlockModelShapes#getTexture(IBlockState)}
  
  @param state the state
  @return the particle icon