net.minecraftforge.common

## Interface IShearable

- All Known Implementing Classes:
    BlockDeadBush, BlockDoublePlant, BlockLeaves, BlockNewLeaf, BlockOldLeaf, BlockTallGrass, BlockVine, EntityMooshroom, EntitySheep

      public interface IShearable

  This allows for mods to create there own Shear-like items and have them interact with Blocks/Entities without extra work. Also, if your block/entity supports the Shears, this allows you to support mod-shears as well.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isShearable(ItemStack item, IBlockAccess world, int x, int y, int z)` Checks if the object is currently shearable Example: Sheep return false when they have no wool
    `java.util.ArrayList<ItemStack>` | `onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)` Performs the shear function on this object.

- - ### Method Detail

    - #### isShearable

          boolean isShearable(ItemStack item,
                            IBlockAccess world,
                            int x,
                            int y,
                            int z)

      Checks if the object is currently shearable Example: Sheep return false when they have no wool
      Parameters:
        `item` - The itemstack that is being used, Possible to be null
        `world` - The current world
        `x` - The X Position
        `y` - The Y Position
        `z` - The Z Position
      Returns:
        If this is shearable, and onSheared should be called.

    - #### onSheared

          java.util.ArrayList<ItemStack> onSheared(ItemStack item,
                                                 IBlockAccess world,
                                                 int x,
                                                 int y,
                                                 int z,
                                                 int fortune)

      Performs the shear function on this object. This is called for both client, and server. The object should perform all actions related to being sheared, except for dropping of the items, and removal of the block. As those are handled by ItemShears itself. Returns a list of items that resulted from the shearing process. For entities, they should trust there internal location information over the values passed into this function.
      Parameters:
        `item` - The itemstack that is being used, Possible to be null
        `world` - The current world
        `x` - The X Position
        `y` - The Y Position
        `z` - The Z Position
        `fortune` - The fortune level of the shears being used
      Returns:
        A ArrayList containing all items from this shearing. Possible to be null.