Skip to content

ArchieFluidSlot

@Serializable



(with = ArchieFluidSlot.Serializer::class)class ArchieFluidSlot(
    limit: Long, 
    filter: Predicate<FluidResource> = Predicate { true }, 
    onUpdate: () -> Unit = {}
) : StorageSlot<FluidResource> , UpdateManager<NbtTag> 

A single resource-backed slot inside an ArchieFluidStorage, capped at limit. Tracks a FluidResource + amount internally while exposing plain FluidStack access via getFluid/set.

Parameters

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

Constructors

ArchieFluidSlot

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

Parameters

  • onUpdate: Invoked by update whenever this slot's contents should be persisted/synced.
constructor(
    limit: Long, 
    stack: FluidStack = FluidStack.empty(), 
    filter: Predicate<FluidResource> = Predicate { true }, 
    onUpdate: () -> Unit = {}
)
constructor(
    limit: Long, 
    resourceStack: ResourceStack<FluidResource>, 
    filter: Predicate<FluidResource> = Predicate { true }, 
    onUpdate: () -> Unit = {}
)

Types

Serializer

object Serializer : KSerializer<ArchieFluidSlot> 

Serializes an ArchieFluidSlot as its limit followed by its ResourceStack (or null when blank).

Properties

amount

open override val amount: Long

contents

open override val contents: ResourceStack<FluidResource?>?

resource

open override val resource: FluidResource

Functions

createSnapshot

open override fun createSnapshot(): NbtTag

extract

open override fun extract(
    unit: FluidResource, 
    amount: Long, 
    simulate: Boolean
): Long

getAmount

open override fun getAmount(): Long

getContents

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

getFluid

fun getFluid(): FluidStack

The FluidStack currently held in this slot (a copy; mutate via set).

getLimit

open override fun getLimit(resource: FluidResource): Long

getResource

open override fun getResource(): FluidResource

insert

open override fun insert(
    unit: FluidResource, 
    amount: Long, 
    simulate: Boolean
): Long

isResourceValid

open override fun isResourceValid(unit: FluidResource): Boolean

readSnapshot

open override fun readSnapshot(snapshot: NbtTag)

set

fun set(value: FluidStack)

Replaces this slot's contents with value.

update

open override fun update()