aboutsummaryrefslogtreecommitdiff
path: root/src/test/kotlin/testutil/ItemResources.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/kotlin/testutil/ItemResources.kt')
-rw-r--r--src/test/kotlin/testutil/ItemResources.kt30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/kotlin/testutil/ItemResources.kt b/src/test/kotlin/testutil/ItemResources.kt
new file mode 100644
index 0000000..bd3c438
--- /dev/null
+++ b/src/test/kotlin/testutil/ItemResources.kt
@@ -0,0 +1,30 @@
+package moe.nea.firmament.test.testutil
+
+import net.minecraft.item.ItemStack
+import net.minecraft.nbt.NbtCompound
+import net.minecraft.nbt.NbtOps
+import net.minecraft.nbt.StringNbtReader
+import moe.nea.firmament.test.FirmTestBootstrap
+
+object ItemResources {
+ init {
+ FirmTestBootstrap.bootstrapMinecraft()
+ }
+
+ fun loadString(path: String): String {
+ require(!path.startsWith("/"))
+ return ItemResources::class.java.classLoader
+ .getResourceAsStream(path)!!
+ .readAllBytes().decodeToString()
+ }
+
+ fun loadSNbt(path: String): NbtCompound {
+ return StringNbtReader.parse(loadString(path))
+ }
+
+ fun loadItem(name: String): ItemStack {
+ // TODO: make the load work with enchantments
+ return ItemStack.CODEC.parse(NbtOps.INSTANCE, loadSNbt("testdata/items/$name.snbt"))
+ .getOrThrow { IllegalStateException("Could not load test item '$name': $it") }
+ }
+}