package buildcraft.api.inventory; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeDirection; public interface ISpecialInventory extends IInventory { /** * Offers an ItemStack for addition to the inventory. * * @param stack * ItemStack offered for addition. Do not manipulate this! * @param doAdd * If false no actual addition should take place. Implementors should simulate. * @param from * Orientation the ItemStack is offered from. * @return Amount of items used from the passed stack. */ int addItem(ItemStack stack, boolean doAdd, ForgeDirection from); /** * Requests items to be extracted from the inventory * * @param doRemove * If false no actual extraction may occur. Implementors should simulate. * Can be used to "peek" at what the result would be * @param from * Orientation the ItemStack is requested from. * @param maxItemCount * Maximum amount of items to extract (spread over all returned item stacks) * @return Array of item stacks that were/would be extracted from the inventory */ ItemStack[] extractItem(boolean doRemove, ForgeDirection from, int maxItemCount); }