aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/mc/InventoryUtil.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-10-01 18:00:43 +0200
committerLinnea Gräf <nea@nea.moe>2024-10-01 18:00:43 +0200
commita4eac70118fc25334c9352712fe3c7944b8bed1d (patch)
treee0faedfca323e243a64a427d13b4fb31bcea9256 /src/main/kotlin/util/mc/InventoryUtil.kt
parentbeb14d73bd2d0d48513e540ff629b48f89b95ed9 (diff)
downloadFirmament-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.kt28
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++)
+ }
+ }
+ }
+ }