Class EmptyHandler

    • Constructor Summary

      Constructors 
      Constructor Description
      EmptyHandler()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ItemStack extractItem​(int slot, int amount, boolean simulate)
      Extracts an ItemStack from the given slot.
      int getSlotLimit​(int slot)
      Retrieves the maximum stack size allowed to exist in the given slot.
      int getSlots()
      Returns the number of slots available
      ItemStack getStackInSlot​(int slot)
      Returns the ItemStack in a given slot.
      ItemStack insertItem​(int slot, ItemStack stack, boolean simulate)
      Inserts an ItemStack into the given slot and return the remainder.
      boolean isItemValid​(int slot, ItemStack stack)
      This function re-implements the vanilla function IInventory#isItemValidForSlot(int, ItemStack).
      void setStackInSlot​(int slot, ItemStack stack)
      Overrides the stack in the given slot.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EmptyHandler

        public EmptyHandler()
    • Method Detail

      • getSlots

        public int getSlots()
        Description copied from interface: IItemHandler
        Returns the number of slots available
        Specified by:
        getSlots in interface IItemHandler
        Returns:
        The number of slots available
      • getStackInSlot

        @Nonnull
        public ItemStack getStackInSlot​(int slot)
        Description copied from interface: IItemHandler
        Returns the ItemStack in a given slot. The result's stack size may be greater than the itemstack's max size. If the result is empty, then the slot is empty.

        IMPORTANT: This ItemStack MUST NOT be modified. This method is not for altering an inventory's contents. Any implementers who are able to detect modification through this method should throw an exception.

        SERIOUSLY: DO NOT MODIFY THE RETURNED ITEMSTACK

        Specified by:
        getStackInSlot in interface IItemHandler
        Parameters:
        slot - Slot to query
        Returns:
        ItemStack in given slot. Empty Itemstack if the slot is empty.
      • insertItem

        @Nonnull
        public ItemStack insertItem​(int slot,
                                    @Nonnull
                                    ItemStack stack,
                                    boolean simulate)
        Description copied from interface: IItemHandler

        Inserts an ItemStack into the given slot and return the remainder. The ItemStack should not be modified in this function!

        Note: This behaviour is subtly different from IFluidHandler#fill(FluidStack, boolean)
        Specified by:
        insertItem in interface IItemHandler
        Parameters:
        slot - Slot to insert into.
        stack - ItemStack to insert. This must not be modified by the item handler.
        simulate - If true, the insertion is only simulated
        Returns:
        The remaining ItemStack that was not inserted (if the entire stack is accepted, then return an empty ItemStack). May be the same as the input ItemStack if unchanged, otherwise a new ItemStack. The returned ItemStack can be safely modified after.
      • extractItem

        @Nonnull
        public ItemStack extractItem​(int slot,
                                     int amount,
                                     boolean simulate)
        Description copied from interface: IItemHandler
        Extracts an ItemStack from the given slot.

        The returned value must be empty if nothing is extracted, otherwise its stack size must be less than or equal to amount and ItemStack.getMaxStackSize().

        Specified by:
        extractItem in interface IItemHandler
        Parameters:
        slot - Slot to extract from.
        amount - Amount to extract (may be greater than the current stack's max limit)
        simulate - If true, the extraction is only simulated
        Returns:
        ItemStack extracted from the slot, must be empty if nothing can be extracted. The returned ItemStack can be safely modified after, so item handlers should return a new or copied stack.
      • setStackInSlot

        public void setStackInSlot​(int slot,
                                   @Nonnull
                                   ItemStack stack)
        Description copied from interface: IItemHandlerModifiable
        Overrides the stack in the given slot. This method is used by the standard Forge helper methods and classes. It is not intended for general use by other mods, and the handler may throw an error if it is called unexpectedly.
        Specified by:
        setStackInSlot in interface IItemHandlerModifiable
        Parameters:
        slot - Slot to modify
        stack - ItemStack to set slot to (may be empty).
      • getSlotLimit

        public int getSlotLimit​(int slot)
        Description copied from interface: IItemHandler
        Retrieves the maximum stack size allowed to exist in the given slot.
        Specified by:
        getSlotLimit in interface IItemHandler
        Parameters:
        slot - Slot to query.
        Returns:
        The maximum stack size allowed in the slot.
      • isItemValid

        public boolean isItemValid​(int slot,
                                   @Nonnull
                                   ItemStack stack)
        Description copied from interface: IItemHandler

        This function re-implements the vanilla function IInventory#isItemValidForSlot(int, ItemStack). It should be used instead of simulated insertions in cases where the contents and state of the inventory are irrelevant, mainly for the purpose of automation and logic (for instance, testing if a minecart can wait to deposit its items into a full inventory, or if the items in the minecart can never be placed into the inventory and should move on).

        • isItemValid is false when insertion of the item is never valid.
        • When isItemValid is true, no assumptions can be made and insertion must be simulated case-by-case.
        • The actual items in the inventory, its fullness, or any other state are not considered by isItemValid.
        Specified by:
        isItemValid in interface IItemHandler
        Parameters:
        slot - Slot to query for validity
        stack - Stack to test with for validity
        Returns:
        true if the slot can insert the ItemStack, not considering the current state of the inventory. false if the slot can never insert the ItemStack in any situation.