diff --git a/io_scene_a3d/A3D.py b/io_scene_a3d/A3D.py index 97b685b..8725ec6 100644 --- a/io_scene_a3d/A3D.py +++ b/io_scene_a3d/A3D.py @@ -139,7 +139,19 @@ class A3D: stream.read(padding) def writeRootBlock3(self, stream): - raise RuntimeError("Version 3 files are not supported yet") + buffer = BytesIO() + + # Write data to the buffer + print("Writing root block") + self.writeMaterialBlock3(buffer) + self.writeMeshBlock3(buffer) + self.writeTransformBlock3(buffer) + self.writeObjectBlock3(buffer) + + # Write buffer to stream + packStream("<2I", stream, A3D_ROOTBLOCK_SIGNATURE, buffer.tell()) + buffer.seek(0, 0) + stream.write(buffer.read()) ''' Material data blocks @@ -188,6 +200,24 @@ class A3D: padding = calculatePadding(length) stream.read(padding) + def writeMaterialBlock3(self, stream): + buffer = BytesIO() + + # Write data to the buffer + print("Writing material block") + packStream("