diff --git a/src/main/java/io/ib67/sfcraft/util/LitematicConverter.java b/src/main/java/io/ib67/sfcraft/util/LitematicConverter.java index 2723c9c..509362e 100644 --- a/src/main/java/io/ib67/sfcraft/util/LitematicConverter.java +++ b/src/main/java/io/ib67/sfcraft/util/LitematicConverter.java @@ -29,25 +29,21 @@ public LitematicConverter(InputStream input, NbtSizeTracker sizeTracker) { @SneakyThrows public void read( - BiConsumer<Integer, NbtCompound> schematicOutput + BiConsumer<String, NbtCompound> schematicOutput ) { if (root != null) throw new IllegalStateException("Litematica file is already read"); root = NbtIo.readCompressed(input, sizeTracker).getCompound(NBT_LITEMATICA_ROOT); var dataVersion = root.getInt("MinecraftDataVersion"); - var regionsNbt = root.getList("Regions", NbtElement.COMPOUND_TYPE); + var regionsNbt = root.getCompound("Regions"); var i = 0; - for (NbtElement nbtElement : regionsNbt) { - var compound = (NbtCompound) nbtElement; + for (String regionName : regionsNbt.getKeys()) { + var compound = regionsNbt.getCompound(regionName); var j = i++; var schematic = convertRegionToSchematic(dataVersion, compound); - schematicOutput.accept(j, schematic); + schematicOutput.accept(regionName, schematic); } } - /** - * @param region region - * @return a path to temp file. - */ private NbtCompound convertRegionToSchematic(int dataVersion, NbtCompound region) { var worldEditTag = new NbtCompound();