Compare commits

...

3 Commits

3 changed files with 16 additions and 25 deletions

View File

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

View File

@ -81,31 +81,7 @@ open class MatteryContainer(var listener: ContainerListener, private val size: I
var changeset = 0
private set
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() {
override fun clearSlotFilters() {
Arrays.fill(filters, null)
}