Interface SingleSlotStorage<T>
- Type Parameters:
T
- The type of the stored resource. Experimental feature, we reserve the right to remove or change it without further notice. The transfer API is a complex addition, and we want to be able to correct possible design mistakes.
- All Superinterfaces:
Iterable<StorageView<T>>
,SlottedStorage<T>
,Storage<T>
,StorageView<T>
- All Known Implementing Classes:
FullItemFluidStorage
,SingleFluidStorage
,SingleItemStorage
,SingleStackStorage
,SingleVariantItemStorage
,SingleVariantStorage
A storage that is also its only storage view.
It can be used in APIs for storages that are wrappers around a single "slot", or for slightly more convenient implementation.
-
Method Summary
Modifier and TypeMethodDescriptiondefault SingleSlotStorage<T>
getSlot
(int slot) Retrieve a specific slot of this storage.default int
Retrieve the number of slots in this storage.default Iterator<StorageView<T>>
iterator()
Iterate through the contents of this storage.Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.SlottedStorage
getSlots
Methods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.Storage
exactView, extract, getVersion, insert, nonEmptyIterator, nonEmptyViews, simulateExtract, simulateInsert, supportsExtraction, supportsInsertion
Methods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.StorageView
extract, getAmount, getCapacity, getResource, getUnderlyingView, isResourceBlank
-
Method Details
-
iterator
Description copied from interface:Storage
Iterate through the contents of this storage. Every visitedStorageView
represents a stored resource and an amount. The iterator doesn't guarantee that a single resource only occurs once during an iteration. Calling remove on the iterator is not allowed.Storage.insert(T, long, net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext)
andStorage.extract(T, long, net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext)
may be called safely during iteration. Extractions should be visible to an open iterator, but insertions are not required to. In particular, inventories with a fixed amount of slots may wish to make insertions visible to iterators, but inventories with a dynamic or very large amount of slots should not do that to ensure timely termination of the iteration. -
getSlotCount
default int getSlotCount()Description copied from interface:SlottedStorage
Retrieve the number of slots in this storage.- Specified by:
getSlotCount
in interfaceSlottedStorage<T>
-
getSlot
Description copied from interface:SlottedStorage
Retrieve a specific slot of this storage.- Specified by:
getSlot
in interfaceSlottedStorage<T>
-