Package alexiil.mc.lib.attributes.item
Interface GroupedItemInvView
- All Superinterfaces:
 AbstractItemInvView
- All Known Subinterfaces:
 GroupedItemInv,LimitedGroupedItemInv
- All Known Implementing Classes:
 CombinedGroupedItemInv,CombinedGroupedItemInvView,DelegatingGroupedItemInv,DirectFixedItemInv,EmptyGroupedItemInv,GroupedItemInvFixedWrapper,GroupedItemInvViewFixedWrapper,SimpleGroupedItemInv,SimpleLimitedGroupedItemInv
An alternative way of storing large numbers of 
ItemStack, without using large numbers of slots in a
 FixedItemInvView. Instead of storing items in a List<ItemStack> this works more like a
 Map<ItemStack, int amount>.- 
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classStatistics associated with a singleItemFilterin a given inventory.Nested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.AbstractItemInvView
AbstractItemInvView.DefaultChangeTracker - 
Method Summary
Modifier and TypeMethodDescriptiondefault ListenerTokenaddListener(InvMarkDirtyListener listener, ListenerRemovalToken removalToken) Adds the given listener to this inventory, such thatInvMarkDirtyListener.onMarkDirty(AbstractItemInvView)will be called every time that any stored stack is changed (either fromFixedItemInv.setInvStack(int, ItemStack, Simulation)orFixedItemInv.ModifiableFixedItemInv.markDirty()).default ListenerTokenaddListener(ItemInvAmountChangeListener listener, ListenerRemovalToken removalToken) Adds the given listener to this inventory, such that theItemInvAmountChangeListener.onChange(GroupedItemInvView, ItemStack, int, int)will be called every time that this inventory changes.default intgetAmount(ItemFilter filter) default intgetAmount(net.minecraft.item.ItemStack stack) default intgetCapacity(net.minecraft.item.ItemStack stack) default GroupedItemInvViewdefault intgetSpace(net.minecraft.item.ItemStack stack) getStatistics(ItemFilter filter) getStatistics(net.minecraft.item.ItemStack stack) Set<net.minecraft.item.ItemStack>intdefault booleanisEmpty()Methods inherited from interface alexiil.mc.lib.attributes.item.AbstractItemInvView
getChangeValue 
- 
Method Details
- 
getStoredStacks
Set<net.minecraft.item.ItemStack> getStoredStacks()- Returns:
 - a set containing all of the 
ItemStack's that are stored in the inventory. NOTE: This must return a set using one of theHash.Strategy's inItemStackCollectionsotherwise comparison methods won't work correctly! 
 - 
getAmount
default int getAmount(net.minecraft.item.ItemStack stack) - Parameters:
 stack- The stack to check for. Cannot beempty.- Returns:
 - The total amount of the given stack that is stored in this inventory.
 
 - 
getCapacity
default int getCapacity(net.minecraft.item.ItemStack stack) - Parameters:
 stack- The stack to check for. Must not beempty.- Returns:
 - The total space that is available (right now!) to store the given stack.
 
 - 
getTotalCapacity
int getTotalCapacity()- Returns:
 - The total capacity for every 
ItemStackthat can be stored in this inventory.NOTE: This value might not be equal to the sum of
getCapacity(ItemStack)overgetStoredStacks()! 
 - 
getSpace
default int getSpace(net.minecraft.item.ItemStack stack) - Returns:
 - The total space that could store the given stack, not including space that is currently taken up by the
         stack (so this should change with 
getAmount(ItemFilter)). 
 - 
getStatistics
- Parameters:
 filter- The filter to check on.- Returns:
 - Statistics about the currently stored amount, capacity, and space for everything that matches the given filter.
 
 - 
getStatistics
- Parameters:
 stack- TheItemStackto check for.- Returns:
 - Statistics about the currently stored amount, capacity, and space for everything that matches the given item stack.
 
 - 
getAmount
- Returns:
 - A count of all the 
ItemStack's that match the given filter. 
 - 
isEmpty
default boolean isEmpty()- Returns:
 - True if 
getAmount(ConstantItemFilter.ANYTHING) returns a value greater than 0. 
 - 
addListener
Description copied from interface:AbstractItemInvViewAdds the given listener to this inventory, such thatInvMarkDirtyListener.onMarkDirty(AbstractItemInvView)will be called every time that any stored stack is changed (either fromFixedItemInv.setInvStack(int, ItemStack, Simulation)orFixedItemInv.ModifiableFixedItemInv.markDirty()).If the listener is registered (and thus this returns null) then it implies that
AbstractItemInvView.getChangeValue()will change every time that the given listener is invoked, always just-before it is invoked.The default implementation refuses to accept any listeners, but implementations are highly encouraged to override this if they are able to!
- Specified by:
 addListenerin interfaceAbstractItemInvViewremovalToken- A token that will be called whenever the given listener is removed from this inventory (or if this inventory itself is unloaded or otherwise invalidated).- Returns:
 - A token that represents the listener, or null if the listener could not be added.
 
 - 
addListener
default ListenerToken addListener(ItemInvAmountChangeListener listener, ListenerRemovalToken removalToken) Adds the given listener to this inventory, such that theItemInvAmountChangeListener.onChange(GroupedItemInvView, ItemStack, int, int)will be called every time that this inventory changes. However if this inventory doesn't support listeners then this will return a nulltoken.The default implementation refuses to accept any listeners, but implementations are highly encouraged to override this if they are able to!
- Parameters:
 removalToken- A token that will be called whenever the given listener is removed from this inventory (or if this inventory itself is unloaded or otherwise invalidated).- Returns:
 - A token that represents the listener, or null if the listener could not be added.
 
 - 
getGroupedView
- Returns:
 - A completely unmodifiable view of this 
GroupedItemInvView. 
 
 -