diff options
author | Linnea Gräf <nea@nea.moe> | 2024-10-01 18:00:43 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-10-01 18:00:43 +0200 |
commit | a4eac70118fc25334c9352712fe3c7944b8bed1d (patch) | |
tree | e0faedfca323e243a64a427d13b4fb31bcea9256 /src/main/kotlin/util/mc/InventoryUtil.kt | |
parent | beb14d73bd2d0d48513e540ff629b48f89b95ed9 (diff) | |
download | firmament-a4eac70118fc25334c9352712fe3c7944b8bed1d.tar.gz firmament-a4eac70118fc25334c9352712fe3c7944b8bed1d.tar.bz2 firmament-a4eac70118fc25334c9352712fe3c7944b8bed1d.zip |
Add basic sack util
[no changelog]
Diffstat (limited to 'src/main/kotlin/util/mc/InventoryUtil.kt')
-rw-r--r-- | src/main/kotlin/util/mc/InventoryUtil.kt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/kotlin/util/mc/InventoryUtil.kt b/src/main/kotlin/util/mc/InventoryUtil.kt new file mode 100644 index 0000000..74f7b9f --- /dev/null +++ b/src/main/kotlin/util/mc/InventoryUtil.kt @@ -0,0 +1,28 @@ +package moe.nea.firmament.util.mc + +import java.util.Spliterator +import java.util.Spliterators +import net.minecraft.inventory.Inventory +import net.minecraft.item.ItemStack + +val Inventory.indices get() = 0 until size() +val Inventory.iterableView + get() = object : Iterable<ItemStack> { + override fun spliterator(): Spliterator<ItemStack> { + return Spliterators.spliterator(iterator(), size().toLong(), 0) + } + + override fun iterator(): Iterator<ItemStack> { + return object : Iterator<ItemStack> { + var i = 0 + override fun hasNext(): Boolean { + return i < size() + } + + override fun next(): ItemStack { + if (!hasNext()) throw NoSuchElementException() + return getStack(i++) + } + } + } + } |