X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Fexport_scene.py;h=cb623a1587f8fc14a0b15fe41c4eb30d4b3d6a4b;hb=736a076cf12aca02492eae6c77eff846bde0cdda;hp=5ec3803d8bb94859bb1e7a358289242afceadfc7;hpb=6a231263b8f9147579b91c3b2d6bf093a698bc7a;p=libs%2Fgl.git diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 5ec3803d..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) @@ -62,8 +73,8 @@ class SceneExporter: scene_res = self.export_scene(context, objs, progress, prototypes=object_prototypes, resources=resources) refs = scene_res.collect_references() - from .datafile import Statement if self.resource_collection: + from .datafile import Statement keywords = { ".mat": "material", ".mesh": "mesh", ".object": "object", @@ -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)