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 setChanged() 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 SingleVariantStorage
amount, variant -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final FluidVariantReturn the blank variant.voidreadValue(net.minecraft.world.level.storage.ValueInput value) Simple implementation of reading fromValueInput, to match what is written bywriteValue(ValueOutput).static SingleFluidStoragewithFixedCapacity(long capacity, Runnable onChange) Create a fluid storage with a fixed capacity and a change handler.voidwriteValue(net.minecraft.world.level.storage.ValueOutput value) Simple implementation of writing toValueOutput.Methods inherited from class SingleVariantStorage
canExtract, canInsert, createSnapshot, extract, getAmount, getCapacity, getCapacity, getResource, insert, isResourceBlank, readSnapshot, readValue, toString, writeValueMethods inherited from class SnapshotParticipant
afterOuterClose, onClose, onFinalCommit, releaseSnapshot, updateSnapshotsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliteratorMethods inherited from interface SingleSlotStorage
getSlot, getSlotCount, iteratorMethods inherited from interface SlottedStorage
getSlotsMethods inherited from interface Storage
getVersion, nonEmptyIterator, nonEmptyViews, supportsExtraction, supportsInsertionMethods inherited from interface 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 forsetChanged()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>
-
readValue
public void readValue(net.minecraft.world.level.storage.ValueInput value) Simple implementation of reading fromValueInput, to match what is written bywriteValue(ValueOutput). Other formats are allowed, this is just a suggestion. -
writeValue
public void writeValue(net.minecraft.world.level.storage.ValueOutput value) Simple implementation of writing toValueOutput. Other formats are allowed, this is just a convenient suggestion.
-