Class SingleFluidStorage
java.lang.Object
net.fabricmc.fabric.api.transfer.v1.transaction.base.SnapshotParticipant<ResourceAmount<FluidVariant>>
net.fabricmc.fabric.api.transfer.v1.storage.base.SingleVariantStorage<FluidVariant>
net.fabricmc.fabric.api.transfer.v1.fluid.base.SingleFluidStorage
- All Implemented Interfaces:
Iterable<StorageView<FluidVariant>>,SingleSlotStorage<FluidVariant>,SlottedStorage<FluidVariant>,Storage<FluidVariant>,StorageView<FluidVariant>,TransactionContext.CloseCallback,TransactionContext.OuterCloseCallback
A storage that can store a single fluid variant at any given time.
Implementors should at least override
getCapacity(FluidVariant),
and probably SnapshotParticipant.onFinalCommit() as well for markDirty() and similar calls.
This is a convenient specialization of SingleVariantStorage for fluids that additionally offers methods
to deserialize the contents of the storage.
-
Field Summary
Fields inherited from class net.fabricmc.fabric.api.transfer.v1.storage.base.SingleVariantStorage
amount, variant -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final FluidVariantReturn the blank variant.voidSimple implementation of reading fromReadView, to match what is written bywriteData(net.minecraft.storage.WriteView).static SingleFluidStoragewithFixedCapacity(long capacity, Runnable onChange) Create a fluid storage with a fixed capacity and a change handler.voidSimple implementation of writing toWriteView.Methods inherited from class net.fabricmc.fabric.api.transfer.v1.storage.base.SingleVariantStorage
canExtract, canInsert, createSnapshot, extract, getAmount, getCapacity, getCapacity, getResource, insert, isResourceBlank, readData, readSnapshot, toString, writeDataMethods inherited from class net.fabricmc.fabric.api.transfer.v1.transaction.base.SnapshotParticipant
afterOuterClose, onClose, onFinalCommit, releaseSnapshot, updateSnapshotsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.base.SingleSlotStorage
getSlot, getSlotCount, iteratorMethods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.SlottedStorage
getSlotsMethods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.Storage
getVersion, nonEmptyIterator, nonEmptyViews, supportsExtraction, supportsInsertionMethods inherited from interface net.fabricmc.fabric.api.transfer.v1.storage.StorageView
getUnderlyingView
-
Constructor Details
-
SingleFluidStorage
public SingleFluidStorage()
-
-
Method Details
-
withFixedCapacity
Create a fluid storage with a fixed capacity and a change handler.- Parameters:
capacity- Fixed capacity of the fluid storage. Must be non-negative.onChange- Change handler, generally formarkDirty()or similar calls. May not be null.
-
getBlankVariant
Description copied from class:SingleVariantStorageReturn the blank variant.Note: this is called very early in the constructor. If fields need to be accessed from this function, make sure to re-initialize
SingleVariantStorage.variantyourself.- Specified by:
getBlankVariantin classSingleVariantStorage<FluidVariant>
-
readData
Simple implementation of reading fromReadView, to match what is written bywriteData(net.minecraft.storage.WriteView). Other formats are allowed, this is just a suggestion. -
writeData
Simple implementation of writing toWriteView. Other formats are allowed, this is just a convenient suggestion.
-