package moe.nea.firmament.util.mc import java.util.Spliterator import java.util.Spliterators import net.minecraft.world.Container import net.minecraft.world.item.ItemStack val Container.indices get() = 0 until containerSize val Container.iterableView get() = object : Iterable { override fun spliterator(): Spliterator { return Spliterators.spliterator(iterator(), containerSize.toLong(), 0) } override fun iterator(): Iterator { return object : Iterator { var i = 0 override fun hasNext(): Boolean { return i < containerSize } override fun next(): ItemStack { if (!hasNext()) throw NoSuchElementException() return getItem(i++) } } } }