Remove item handler cacher since it is useless

This commit is contained in:
DBotThePony 2022-09-01 19:31:56 +07:00
parent cbb38c4122
commit d80c1915f6
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -142,33 +142,31 @@ open class MatteryContainer(val watcher: Runnable, private val size: Int) : Cont
return false return false
} }
protected var handler: MatteryContainerHandler? = null
fun handler( fun handler(
insert_validator: (slot: Int, stack: ItemStack) -> Boolean, insert_validator: (slot: Int, stack: ItemStack) -> Boolean,
extract_validator: (slot: Int, amount: Int, stack: ItemStack) -> Boolean extract_validator: (slot: Int, amount: Int, stack: ItemStack) -> Boolean
): MatteryContainerHandler { ): MatteryContainerHandler {
return handler ?: MatteryContainerHandler(this, object : MatteryContainerFilter { return MatteryContainerHandler(this, object : MatteryContainerFilter {
override fun canInsert(slot: Int, stack: ItemStack) = insert_validator(slot, stack) override fun canInsert(slot: Int, stack: ItemStack) = insert_validator(slot, stack)
override fun canExtract(slot: Int, amount: Int, stack: ItemStack) = extract_validator(slot, amount, stack) override fun canExtract(slot: Int, amount: Int, stack: ItemStack) = extract_validator(slot, amount, stack)
}).also { handler = it } })
} }
fun handler( fun handler(
filter: MatteryContainerFilter filter: MatteryContainerFilter
): MatteryContainerHandler { ): MatteryContainerHandler {
return handler ?: MatteryContainerHandler(this, filter).also { handler = it } return MatteryContainerHandler(this, filter)
} }
fun handler(insert_validator: (Int, ItemStack) -> Boolean): MatteryContainerHandler { fun handler(insert_validator: (Int, ItemStack) -> Boolean): MatteryContainerHandler {
return handler ?: MatteryContainerHandler(this, object : MatteryContainerFilter { return MatteryContainerHandler(this, object : MatteryContainerFilter {
override fun canInsert(slot: Int, stack: ItemStack) = insert_validator(slot, stack) override fun canInsert(slot: Int, stack: ItemStack) = insert_validator(slot, stack)
override fun canExtract(slot: Int, amount: Int, stack: ItemStack) = false override fun canExtract(slot: Int, amount: Int, stack: ItemStack) = false
}).also { handler = it } })
} }
fun handler(): MatteryContainerHandler { fun handler(): MatteryContainerHandler {
return handler ?: MatteryContainerHandler(this).also { handler = it } return MatteryContainerHandler(this)
} }
open fun getMaxStackSize(slot: Int) = maxStackSize open fun getMaxStackSize(slot: Int) = maxStackSize