]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export_scene.py
Make it possible to export instance arrays from Blender
[libs/gl.git] / blender / io_mspgl / export_scene.py
index a42d8180c1d3bc0255285935617787c6a4b74a78..4f98397761db7773e92205f88e04d6120984869a 100644 (file)
@@ -67,7 +67,14 @@ class SceneExporter:
        def add_instances(self, scene_res, statements, instances, resources):
                from .datafile import Statement
 
+               array_prototypes = []
+
                for i in instances:
+                       if i.prototype.use_array:
+                               if i.prototype not in array_prototypes:
+                                       array_prototypes.append(i.prototype)
+                               continue
+
                        obj_res = resources[i.prototype.name+".object"]
                        st = scene_res.create_reference_statement("object", obj_res)
                        if i.name:
@@ -76,6 +83,17 @@ class SceneExporter:
                        st.sub.append(self.create_transform_statement(i))
                        statements.append(st)
 
+               for p in array_prototypes:
+                       obj_res = resources[p.name+".object"]
+                       st = scene_res.create_reference_statement("array", obj_res)
+
+                       for i in p.instances:
+                               ss = Statement("instance")
+                               ss.sub.append(self.create_transform_statement(i))
+                               st.sub.append(ss)
+
+                       statements.append(st)
+
        def create_transform_statement(self, instance):
                from .datafile import Statement