package net.minecraftforge.common; import java.util.ArrayList; import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; /** * * 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. * */ public interface IShearable { /** * Checks if the object is currently shearable * Example: Sheep return false when they have no wool * * @param item The itemstack that is being used, Possible to be null * @param world The current world * @param x The X Position * @param y The Y Position * @param z The Z Position * @return If this is shearable, and onSheared should be called. */ public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z); /** * 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. * * @param item The itemstack that is being used, Possible to be null * @param world The current world * @param x The X Position * @param y The Y Position * @param z The Z Position * @param fortune The fortune level of the shears being used * @return A ArrayList containing all items from this shearing. Possible to be null. */ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune); }