Skip to content

ArchieItemSlot

@Serializable



(with = ArchieItemSlot.Serializer::class)class ArchieItemSlot(filter: Predicate<ItemResource> = Predicate { true }, onUpdate: () -> Unit = {}) : StorageSlot<ItemResource> , UpdateManager<NbtTag> 

A single resource-backed slot inside an ArchieItemStorage. Tracks an ItemResource + amount internally (for Common Storage Lib's resource-based insert/extract) while exposing plain ItemStack access via getItem/set.

Parameters

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

Constructors

ArchieItemSlot

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

Parameters

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

Types

Serializer

object Serializer : KSerializer<ArchieItemSlot> 

Serializes an ArchieItemSlot as its underlying ResourceStack, or null when blank.

Properties

amount

open override val amount: Long

contents

open override val contents: ResourceStack<ItemResource?>?

resource

open override val resource: ItemResource

Functions

createSnapshot

open override fun createSnapshot(): NbtTag

extract

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

getAmount

open override fun getAmount(): Long

getContents

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

getItem

fun getItem(): ItemStack

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

getLimit

open override fun getLimit(resource: ItemResource): Long

getMaxStackSize

The maximum stack size for the resource currently held (or Item.ABSOLUTE_MAX_STACK_SIZE if empty).

getResource

open override fun getResource(): ItemResource

insert

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

isResourceValid

open override fun isResourceValid(unit: ItemResource): Boolean

readSnapshot

open override fun readSnapshot(snapshot: NbtTag)

remove

fun remove(amount: Int): ItemStack

Splits up to amount items off this slot's stack and returns them, leaving the rest in place.

set

fun set(value: ItemStack)

Replaces this slot's contents with value.

update

open override fun update()