Class GroupedItemInvViewFixedWrapper
- All Implemented Interfaces:
AbstractItemInvView
,GroupedItemInvView
,OpenWrapper
- Direct Known Subclasses:
GroupedItemInvFixedWrapper
public class GroupedItemInvViewFixedWrapper extends java.lang.Object implements GroupedItemInvView, OpenWrapper
GroupedItemInvView
that wraps a FixedItemInvView
.-
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
-
Constructor Summary
Constructors Constructor Description GroupedItemInvViewFixedWrapper(FixedItemInvView inv)
-
Method Summary
Modifier and Type Method Description ListenerToken
addListener(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()
).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.int
getChangeValue()
GroupedItemInvView.ItemInvStatistic
getStatistics(ItemFilter filter)
java.util.Set<net.minecraft.item.ItemStack>
getStoredStacks()
int
getTotalCapacity()
java.lang.Object
getWrapped()
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.GroupedItemInvView
getAmount, getAmount, getCapacity, getGroupedView, getSpace, getStatistics, isEmpty
-
Constructor Details
-
Method Details
-
getStoredStacks
public java.util.Set<net.minecraft.item.ItemStack> getStoredStacks()- Specified by:
getStoredStacks
in interfaceGroupedItemInvView
- 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 inItemStackCollections
otherwise comparison methods won't work correctly!
-
getTotalCapacity
public int getTotalCapacity()- Specified by:
getTotalCapacity
in interfaceGroupedItemInvView
- Returns:
- The total capacity for every
ItemStack
that can be stored in this inventory.NOTE: This value might not be equal to the sum of
GroupedItemInvView.getCapacity(ItemStack)
overGroupedItemInvView.getStoredStacks()
!
-
getStatistics
- Specified by:
getStatistics
in interfaceGroupedItemInvView
- Parameters:
filter
- The filter to check on.- Returns:
- Statistics about the currently stored amount, capacity, and space for everything that matches the given filter.
-
getChangeValue
public int getChangeValue()- Specified by:
getChangeValue
in interfaceAbstractItemInvView
- Returns:
- A value that indicates whether an inventory might have changed if it differs from the last value
returned. This number doesn't have to start at 0, but it must change every time that the inventory is
changed, although it can change even without any observable changes to this inventory.
Inventories that don't support this might increment the change number every time that this is called - so you should never write a loop that depends on the returned value settling down on a particular value.
Inventories that support
listeners
highly encouraged to support this - by definition if an inventory knows when it changed then it should be able to count the number of changes. It is also implied that any changes to this value will also invoke every registeredInvMarkDirtyListener
.The default implementation returns an ever-increasing value.
-
addListener
Description copied from interface:AbstractItemInvView
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()
).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:
addListener
in interfaceAbstractItemInvView
- Specified by:
addListener
in interfaceGroupedItemInvView
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.
-
addListener
public ListenerToken addListener(ItemInvAmountChangeListener listener, ListenerRemovalToken removalToken)Description copied from interface:GroupedItemInvView
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!
- Specified by:
addListener
in interfaceGroupedItemInvView
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.
-
getWrapped
public java.lang.Object getWrapped()- Specified by:
getWrapped
in interfaceOpenWrapper
- Returns:
- The object that this wraps, or null if the wrapped object cannot be converted cleanly without exposing
additional details.
For example LBA's
Inventory
toFixedItemInvView
wrapper (FixedInventoryViewVanillaWrapper
) implements this to return theInventory
, but theSidedInventory
variant (FixedSidedInventoryVanillaWrapper
) returns null, as it is not possible to cleanly open the original inventory without exposing additional slots.
-