public static Schematic get(File f) {
CompoundTag nbtdata = NbtIo.readCompressed(f);
short width = nbtdata.getShort("Width");
short height = nbtdata.getShort("Height");
short length = nbtdata.getShort("Length");
byte[] blocks = nbtdata.getByteArray("Blocks");
byte[] data = nbtdata.getByteArray("Data");
return new Schematic(width, height, length, blocks, data);
}
public Schematic(short width, short height, short length, byte[] blocks, byte[] data) {
this.width = width;
this.height = height;
this.length = length;
this.blocks = blocks;
this.data = data;
}
and then I'm using Schematic instance to build schematic in world by calling Level#setBlock.
Well, I supposed to be doing that, but I can't because I dont know where should I get BlockState.
In 1.6.4 I were able to place a block in world just with coords, blockID and blockdata.