Compare commits
3 Commits
8f2f4f1062
...
858e95e7bf
Author | SHA1 | Date | |
---|---|---|---|
858e95e7bf | |||
dfc35f393f | |||
cdaae2f9fa |
@ -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
|
||||
}
|
||||
|
@ -19,6 +19,8 @@ interface IMatteryContainer : IContainer, RecipeInput, Iterable<ItemStack> {
|
||||
return false
|
||||
}
|
||||
|
||||
fun clearSlotFilters()
|
||||
|
||||
override fun isEmpty(): Boolean
|
||||
fun setChanged(slot: Int)
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user