X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=blender%2Fio_mspgl%2Fexport_scene.py;h=ac812abf7b115766ab0c08af3848614a4ff99ab4;hp=5ec3803d8bb94859bb1e7a358289242afceadfc7;hb=475c875fd12e264f093a88c8c4dc52ee13991569;hpb=6a231263b8f9147579b91c3b2d6bf093a698bc7a diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 5ec3803d..ac812abf 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.active_layers = 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.active_layers: + layers = context.scene.layers + objs = [o for o in objs if any(a and b for a, b in zip(layers, o.layers))] + 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)