X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Fexport_scene.py;h=cb623a1587f8fc14a0b15fe41c4eb30d4b3d6a4b;hb=736a076cf12aca02492eae6c77eff846bde0cdda;hp=68b589879c4fdc2722f41157bfe018590d0122f9;hpb=7dd9bd52860aff5372a2526cf689d3a19ea37fe0;p=libs%2Fgl.git diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 68b58987..cb623a15 100644 --- a/blender/io_mspgl/export_scene.py +++ b/blender/io_mspgl/export_scene.py @@ -3,12 +3,23 @@ import os class SceneExporter: def __init__(self): + self.selected_only = False + self.visible_collections = True self.resource_collection = True + self.skip_existing = True self.show_progress = True def export_to_file(self, context, out_fn): - objs = [o for o in context.selected_objects if o.type=="MESH" and not o.lod_for_parent] + if self.selected_only: + objs = context.selected_objects + else: + objs = context.scene.objects + if self.visible_collections: + collections = [c.collection for c in context.view_layer.layer_collection.children if not (c.hide_viewport or c.collection.hide_viewport)] + objs = [o for o in objs if any((o.name in c.all_objects) for c in collections)] + objs = [o for o in objs if o.type=="MESH" and not o.lod_for_parent] objs = [o for o in objs if (not o.compound or o.parent not in objs)] + objs.sort(key=lambda x:x.name) path, base = os.path.split(out_fn) base, ext = os.path.splitext(base) @@ -71,6 +82,9 @@ class SceneExporter: ".tex2d": "texture2d" } with open(os.path.join(path, base+"_resources.mdc"), "w") as res_out: for r in refs: + if self.skip_existing and os.path.exists(os.path.join(path, r.name)): + continue + st = Statement(keywords[os.path.splitext(r.name)[1]], r.name) st.sub = r.statements st.write_to_file(res_out)