Skip to content

ArchieFluidStorage

@Serializable



(with = ArchieFluidStorage.Serializer::class)open class ArchieFluidStorage : CommonStorage<FluidResource> , UpdateManager<NbtTag> 

The fluid analogue of ArchieItemStorage: a fixed-size list of ArchieFluidSlots, each capped at limit, implementing Common Storage Lib's CommonStorage and Archie's NBT serialization (via Serializer) for save/load.

Parameters

  • onUpdate: Invoked by update whenever the storage's contents should be persisted/synced.

Constructors

ArchieFluidStorage

constructor(
    limit: Long, 
    size: Int, 
    filter: Predicate<FluidResource> = Predicate { true }, 
    onUpdate: () -> Unit = {}
)

Creates a storage with size empty slots, each capped at limit.

Types

Serializer

object Serializer : KSerializer<ArchieFluidStorage> 

Serializes an ArchieFluidStorage as its limit followed by the list of its ArchieFluidSlots.

Functions

allowsExtraction

allowsInsertion

open fun allowsInsertion(): Boolean

createSnapshot

open override fun createSnapshot(): NbtTag

extract

open fun extract(
    index: Int, 
    resource: FluidResource?, 
    amount: Long, 
    simulate: Boolean
): Long
open override fun extract(
    unit: FluidResource, 
    amount: Long, 
    simulate: Boolean
): Long

get

open operator override fun get(slot: Int): ArchieFluidSlot

getAmount

open fun getAmount(index: Int): Long

getContents

open fun getContents(index: Int): ResourceStack<FluidResource?>?

getLimit

open fun getLimit(index: Int, resource: FluidResource?): Long

getResource

open fun getResource(index: Int): FluidResource?

insert

open fun insert(
    index: Int, 
    resource: FluidResource?, 
    amount: Long, 
    simulate: Boolean
): Long
open override fun insert(
    unit: FluidResource, 
    amount: Long, 
    simulate: Boolean
): Long

isResourceValid

open fun isResourceValid(index: Int, resource: FluidResource?): Boolean

readSnapshot

open override fun readSnapshot(snapshot: NbtTag)

size

open override fun size(): Int

The number of slots in this storage.

update

open override fun update()