Micro optimize combinedcontainer stack iterator for best case scenario
This commit is contained in:
parent
8ebc611c7c
commit
9ad1c8e82a
@ -16,6 +16,7 @@ import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.container.util.IContainerSlot
|
||||
import ru.dbotthepony.mc.otm.container.util.containerSlot
|
||||
import ru.dbotthepony.mc.otm.container.util.iterator
|
||||
import ru.dbotthepony.mc.otm.container.util.slotIterator
|
||||
import ru.dbotthepony.mc.otm.core.collect.concatIterators
|
||||
import ru.dbotthepony.mc.otm.core.collect.filter
|
||||
import ru.dbotthepony.mc.otm.core.collect.flatMap
|
||||
@ -154,6 +155,9 @@ class CombinedContainer(containers: Stream<Pair<Container, Iterable<Int>>>) : IM
|
||||
}
|
||||
|
||||
override fun iterator(nonEmpty: Boolean): Iterator<ItemStack> {
|
||||
if (notFullCoverage.isEmpty())
|
||||
return fullCoverage.iterator().flatMap { it.iterator(nonEmpty) }
|
||||
|
||||
return concatIterators(
|
||||
fullCoverage.iterator().flatMap { it.iterator(nonEmpty) },
|
||||
notFullCoverage.values.iterator().flatMap { it.iterator() }.map { it.item }.let { if (nonEmpty) it.filter { it.isNotEmpty } else it }
|
||||
|
Loading…
Reference in New Issue
Block a user