Class FilteredItemInsertable
java.lang.Object
alexiil.mc.lib.attributes.item.impl.FilteredItemInsertable
- All Implemented Interfaces:
ItemInsertable
,LimitedConsumer<net.minecraft.item.ItemStack>
public final class FilteredItemInsertable extends java.lang.Object implements ItemInsertable
An
ItemInsertable
that delegates to another ItemInsertable
, but has an additional filter as to what
can be inserted.-
Field Summary
Fields Modifier and Type Field Description ItemFilter
filter
-
Constructor Summary
Constructors Constructor Description FilteredItemInsertable(ItemInsertable real, ItemFilter filter)
-
Method Summary
Modifier and Type Method Description net.minecraft.item.ItemStack
attemptInsertion(net.minecraft.item.ItemStack stack, Simulation simulation)
Inserts the given stack into this insertable, and returns the excess.ItemInsertable
filtered(ItemFilter filter)
ItemFilter
getInsertionFilter()
Returns anItemFilter
to determine ifItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept a stack.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface alexiil.mc.lib.attributes.item.ItemInsertable
getPureInsertable, insert, offer, offer, wouldAccept, wouldPartiallyAccept
-
Field Details
-
Constructor Details
-
Method Details
-
getInsertionFilter
Description copied from interface:ItemInsertable
Returns anItemFilter
to determine ifItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept a stack. The default implementation is a call toattemptInsertion
(stack,Simulation.SIMULATE
), and it is only useful to override this if the resulting filter contains information that might be usable by the caller.- Specified by:
getInsertionFilter
in interfaceItemInsertable
- Returns:
- A filter to determine if
ItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept the entirety of a given stack.
-
attemptInsertion
public net.minecraft.item.ItemStack attemptInsertion(net.minecraft.item.ItemStack stack, Simulation simulation)Description copied from interface:ItemInsertable
Inserts the given stack into this insertable, and returns the excess.- Specified by:
attemptInsertion
in interfaceItemInsertable
- Parameters:
stack
- The incoming stack. Must not be modified by this call.simulation
- IfSimulation.SIMULATE
then this shouldn't modify anything.- Returns:
- the excess
ItemStack
that wasn't accepted. This will be independent of this insertable, however it might be the given stack instead of a completely new object.
-
filtered
- Specified by:
filtered
in interfaceItemInsertable
-