Interface AbstractItemInvView
- All Known Subinterfaces:
FixedItemInv
,FixedItemInv.CopyingFixedItemInv
,FixedItemInv.ModifiableFixedItemInv
,FixedItemInvView
,GroupedItemInv
,GroupedItemInvView
,LimitedFixedItemInv
,LimitedGroupedItemInv
- All Known Implementing Classes:
AbstractPartialFixedItemInvView
,CombinedFixedItemInv
,CombinedFixedItemInv.OfCopying
,CombinedFixedItemInv.OfModifiable
,CombinedFixedItemInvView
,CombinedGroupedItemInv
,CombinedGroupedItemInvView
,DelegatingFixedItemInv
,DelegatingFixedItemInv.OfCopying
,DelegatingFixedItemInv.OfModifiable
,DelegatingGroupedItemInv
,DirectFixedItemInv
,EmptyFixedItemInv
,EmptyGroupedItemInv
,FixedInvEmiItemInv
,FixedInventoryVanillaWrapper
,FixedInventoryViewVanillaWrapper
,FixedSidedInventoryVanillaWrapper
,FullFixedItemInv
,GroupedItemInvFixedWrapper
,GroupedItemInvViewFixedWrapper
,MappedFixedItemInv
,MappedFixedItemInv.OfCopying
,MappedFixedItemInv.OfModifiable
,MappedFixedItemInvView
,SimpleFixedItemInv
,SimpleGroupedItemInv
,SimpleLimitedFixedItemInv
,SimpleLimitedFixedItemInv.OfCopying
,SimpleLimitedFixedItemInv.OfModifiable
,SimpleLimitedGroupedItemInv
,SubFixedItemInv
,SubFixedItemInv.OfCopying
,SubFixedItemInv.OfModifiable
,SubFixedItemInvView
public interface AbstractItemInvView
FixedItemInvView
and GroupedItemInvView
.-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
AbstractItemInvView.DefaultChangeTracker
-
Method Summary
Modifier and Type Method Description default 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()
).default int
getChangeValue()
-
Method Details
-
getChangeValue
default int getChangeValue()- 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
@Nullable default 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()
).If the listener is registered (and thus this returns null) then it implies that
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!
- 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.
-