Class DefaultSlotlessItemHandlerWrapper
java.lang.Object
org.cyclops.commoncapabilities.api.capability.itemhandler.DefaultSlotlessItemHandlerWrapper
- All Implemented Interfaces:
ISlotlessItemHandler
An naive
ISlotlessItemHandler
wrapper around an IItemHandler
.
This will perform a LIFO item algorithm.-
Constructor Summary
ConstructorDescriptionDefaultSlotlessItemHandlerWrapper
(net.neoforged.neoforge.items.IItemHandler itemHandler) -
Method Summary
Modifier and TypeMethodDescriptionnet.minecraft.world.item.ItemStack
extractItem
(int amount, boolean simulate) Extracts an ItemStack from the item handler.net.minecraft.world.item.ItemStack
extractItem
(net.minecraft.world.item.ItemStack matchStack, int matchFlags, boolean simulate) Extract an ItemStack matching the given stack from the item handler.Iterator
<net.minecraft.world.item.ItemStack> findItems
(net.minecraft.world.item.ItemStack stack, int matchFlags) Find all ItemStacks matching the given stack from the item handler.net.neoforged.neoforge.items.IItemHandler
Iterator
<net.minecraft.world.item.ItemStack> getItems()
int
getLimit()
Retrieves the total item stack count allowed to exist in this handler.net.minecraft.world.item.ItemStack
insertItem
(net.minecraft.world.item.ItemStack stack, boolean simulate) Inserts an ItemStack into the item handler and return the remainder.
-
Constructor Details
-
DefaultSlotlessItemHandlerWrapper
public DefaultSlotlessItemHandlerWrapper(net.neoforged.neoforge.items.IItemHandler itemHandler)
-
-
Method Details
-
getItemHandler
public net.neoforged.neoforge.items.IItemHandler getItemHandler() -
getItems
- Specified by:
getItems
in interfaceISlotlessItemHandler
- Returns:
- An immutable iterator over all available ingredients in this storage.
-
findItems
public Iterator<net.minecraft.world.item.ItemStack> findItems(@Nonnull net.minecraft.world.item.ItemStack stack, int matchFlags) Description copied from interface:ISlotlessItemHandler
Find all ItemStacks matching the given stack from the item handler. Calling this method will not modify the storage in any way. Results from this method MUST NOT be modified.- Specified by:
findItems
in interfaceISlotlessItemHandler
- Parameters:
stack
- The ItemStack to search for.matchFlags
- The flags to compare the given matchStack by according toItemMatch
. ItemMatch.DAMAGE | ItemMatch.NBT will for instance make sure to only extract items that have exactly the same damage value and nbt tag, while ignoring the stacksize.- Returns:
- An immutable iterator over ItemStacks that match the given stack, which may potentially be empty.
-
insertItem
@Nonnull public net.minecraft.world.item.ItemStack insertItem(@Nonnull net.minecraft.world.item.ItemStack stack, boolean simulate) Description copied from interface:ISlotlessItemHandler
Inserts an ItemStack into the item handler and return the remainder. The ItemStack should not be modified in this function! Note: This behaviour is subtly different from IFluidHandlers.fill()- Specified by:
insertItem
in interfaceISlotlessItemHandler
- Parameters:
stack
- ItemStack to insert.simulate
- If true, the insertion is only simulated- Returns:
- The remaining ItemStack that was not inserted (if the entire stack is accepted, then return
ItemStack.EMPTY
). May be the same as the input ItemStack if unchanged, otherwise a new ItemStack.
-
extractItem
@Nonnull public net.minecraft.world.item.ItemStack extractItem(int amount, boolean simulate) Description copied from interface:ISlotlessItemHandler
Extracts an ItemStack from the item handler. The returned value must be null if nothing is extracted, otherwise it's stack size must not be greater than amount or the itemstacks getMaxStackSize().- Specified by:
extractItem
in interfaceISlotlessItemHandler
- Parameters:
amount
- Amount to extract (may be greater than the current stacks max limit)simulate
- If true, the extraction is only simulated- Returns:
- ItemStack extracted from the slot, must be
ItemStack.EMPTY
, if nothing can be extracted
-
extractItem
@Nonnull public net.minecraft.world.item.ItemStack extractItem(@Nonnull net.minecraft.world.item.ItemStack matchStack, int matchFlags, boolean simulate) Description copied from interface:ISlotlessItemHandler
Extract an ItemStack matching the given stack from the item handler. If nothing is extracted, otherwise it's stack size must not be greater than the itemstacks getMaxStackSize() If the stacksize is ignored according to the matchFlags, then the stacksize of the given matchStack MUST be interpreted as the maximum quantity that must be extracted.- Specified by:
extractItem
in interfaceISlotlessItemHandler
- Parameters:
matchStack
- The ItemStack to search for.matchFlags
- The flags to compare the given matchStack by according toItemMatch
. ItemMatch.DAMAGE | ItemMatch.NBT will for instance make sure to only extract items that have exactly the same damage value and nbt tag, while ignoring the stacksize.simulate
- If true, the insertion is only simulated- Returns:
- ItemStack extracted from the slot, must be
ItemStack.EMPTY
, if nothing can be extracted
-
getLimit
public int getLimit()Description copied from interface:ISlotlessItemHandler
Retrieves the total item stack count allowed to exist in this handler.- Specified by:
getLimit
in interfaceISlotlessItemHandler
- Returns:
- The maximum item count allowed in the handler.
-