Class SimpleLimitedGroupedItemInv
java.lang.Object
alexiil.mc.lib.attributes.item.impl.DelegatingGroupedItemInv
alexiil.mc.lib.attributes.item.impl.SimpleLimitedGroupedItemInv
- All Implemented Interfaces:
AbstractItemInvView
,GroupedItemInv
,GroupedItemInvView
,ItemExtractable
,ItemInsertable
,ItemTransferable
,LimitedGroupedItemInv
,LimitedConsumer<net.minecraft.item.ItemStack>
public class SimpleLimitedGroupedItemInv
extends DelegatingGroupedItemInv
implements LimitedGroupedItemInv
-
Nested Class Summary
Nested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.AbstractItemInvView
AbstractItemInvView.DefaultChangeTracker
Nested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.GroupedItemInvView
GroupedItemInvView.ItemInvStatistic
Nested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.LimitedGroupedItemInv
LimitedGroupedItemInv.ItemLimitRule
-
Field Summary
Fields inherited from class alexiil.mc.lib.attributes.item.impl.DelegatingGroupedItemInv
delegate
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
net.minecraft.item.ItemStack
attemptExtraction(ItemFilter filter, int maxAmount, Simulation simulation)
net.minecraft.item.ItemStack
attemptInsertion(net.minecraft.item.ItemStack stack, Simulation simulation)
Inserts the given stack into this insertable, and returns the excess.copy()
Creates a copy of thisLimitedGroupedItemInv
(with the same backing inventory and the same rules), but not marked as final.Returns anItemFilter
to determine ifItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept a stack.getRule(ItemFilter filter)
Marks this object as final, and disallows any further changes to this.Methods inherited from class alexiil.mc.lib.attributes.item.impl.DelegatingGroupedItemInv
addListener, attemptAnyExtraction, getChangeValue, getStatistics, getStoredStacks, getTotalCapacity
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.AbstractItemInvView
getChangeValue
Methods inherited from interface alexiil.mc.lib.attributes.item.GroupedItemInv
createLimitedGroupedInv, filtered
Methods inherited from interface alexiil.mc.lib.attributes.item.GroupedItemInvView
addListener, addListener, getAmount, getAmount, getCapacity, getGroupedView, getSpace, getStatistics, getStatistics, getStoredStacks, getTotalCapacity, isEmpty
Methods inherited from interface alexiil.mc.lib.attributes.item.ItemExtractable
attemptAnyExtraction, couldExtractAnything, extract, extract, extract, getPureExtractable
Methods inherited from interface alexiil.mc.lib.attributes.item.ItemInsertable
getPureInsertable, insert, offer, offer, wouldAccept, wouldPartiallyAccept
Methods inherited from interface alexiil.mc.lib.attributes.item.LimitedGroupedItemInv
asUnmodifiable, getAllRule, getRule, reset
-
Constructor Details
-
SimpleLimitedGroupedItemInv
-
-
Method Details
-
markFinal
Description copied from interface:LimitedGroupedItemInv
Marks this object as final, and disallows any further changes to this. If this is called thenLimitedGroupedItemInv.asUnmodifiable()
will return this object.- Specified by:
markFinal
in interfaceLimitedGroupedItemInv
- Returns:
- this.
-
assertMutable
protected void assertMutable() -
copy
Description copied from interface:LimitedGroupedItemInv
Creates a copy of thisLimitedGroupedItemInv
(with the same backing inventory and the same rules), but not marked as final.- Specified by:
copy
in interfaceLimitedGroupedItemInv
-
attemptExtraction
public net.minecraft.item.ItemStack attemptExtraction(ItemFilter filter, int maxAmount, Simulation simulation)Description copied from interface:ItemExtractable
- Specified by:
attemptExtraction
in interfaceItemExtractable
- Overrides:
attemptExtraction
in classDelegatingGroupedItemInv
maxAmount
- The maximum number of items that can be extracted. Negative numbers throw an exception.simulation
- IfSimulation.SIMULATE
then this should return the same result that a call withSimulation.ACTION
would do, but without modifying anything else.- Returns:
- A new, independent
ItemStack
that was extracted.
-
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
- Overrides:
attemptInsertion
in classDelegatingGroupedItemInv
- 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.
-
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
- Overrides:
getInsertionFilter
in classDelegatingGroupedItemInv
- Returns:
- A filter to determine if
ItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept the entirety of a given stack.
-
getRule
- Specified by:
getRule
in interfaceLimitedGroupedItemInv
- Returns:
- An
LimitedGroupedItemInv.ItemLimitRule
that applies to every item that matches the given filter.
-