aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/mc/InventoryUtil.kt
blob: 0509138593b390fee7d2fefff8ab22535dbe9ea0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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<ItemStack> {
		override fun spliterator(): Spliterator<ItemStack> {
			return Spliterators.spliterator(iterator(), containerSize.toLong(), 0)
		}

		override fun iterator(): Iterator<ItemStack> {
			return object : Iterator<ItemStack> {
				var i = 0
				override fun hasNext(): Boolean {
					return i < containerSize
				}

				override fun next(): ItemStack {
					if (!hasNext()) throw NoSuchElementException()
					return getItem(i++)
				}
			}
		}
	}