Compare commits

..

No commits in common. "858e95e7bf92d5a943731ecc02e04faba36cdd59" and "8f2f4f10626b2d2d990f4afed12f8e0ba88055ee" have entirely different histories.

3 changed files with 25 additions and 16 deletions

View File

@ -90,19 +90,6 @@ class CombinedContainer(containers: Stream<Pair<Container, Iterable<Int>>>) : IM
}
}
override fun clearSlotFilters() {
for (container in fullCoverage) {
if (container is IMatteryContainer)
container.clearSlotFilters()
}
for (slots in notFullCoverage.values) {
for (slot in slots) {
slot.setFilter()
}
}
}
override fun getContainerSize(): Int {
return slots.size
}

View File

@ -19,8 +19,6 @@ interface IMatteryContainer : IContainer, RecipeInput, Iterable<ItemStack> {
return false
}
fun clearSlotFilters()
override fun isEmpty(): Boolean
fun setChanged(slot: Int)

View File

@ -81,7 +81,31 @@ open class MatteryContainer(var listener: ContainerListener, private val size: I
var changeset = 0
private set
override fun clearSlotFilters() {
inner class Cache<T>(private val supplier: (MatteryContainer) -> T) : Supplier<T> {
private var thisChangeset = -1
private var value: T? = null
private var isDisabled = false
fun disable() {
isDisabled = true
}
fun enable() {
isDisabled = false
}
override fun get(): T {
if (thisChangeset == changeset && !isDisabled) {
return value as T
}
value = supplier.invoke(this@MatteryContainer)
thisChangeset = changeset
return value as T
}
}
fun clearSlotFilters() {
Arrays.fill(filters, null)
}