object_prototypes = {}
unique_objects = []
export_names = {}
+ used_names = set()
for o in objs:
if o.name in object_prototypes:
continue
clones = [o]
- if not any(s.link=="OBJECT" for s in o.material_slots):
- for u in objs:
- if u is o:
- continue
- if u.data.name!=o.data.name:
- continue
- if any(s.link=="OBJECT" for s in u.material_slots):
- continue
+ for u in objs:
+ if u is o:
+ continue
+ if u.data.name!=o.data.name:
+ continue
+ if any(m1.name!=m2.name for m1, m2 in zip(o.material_slots, u.material_slots)):
+ continue
- clones.append(u)
+ clones.append(u)
prefix = o.name
for c in clones:
prefix = prefix[:pos]
if prefix:
- export_names[o.name+".object"] = prefix.strip(" .")+".object"
+ export_names[o.name+".object"] = prefix.strip(" .")
+ else:
+ used_names.add(o.name)
unique_objects.append(o)
for c in clones:
object_prototypes[c.name] = o
+ for n, e in export_names.items():
+ if e in used_names:
+ number = 1
+ while "{}_{}".format(e, number) in used_names:
+ number += 1
+ e += "_{}".format(number)
+ export_names[n] = e+".object"
+ used_names.add(e)
+
from .util import Progress
progress = Progress(self.show_progress and context)
filter = None
if self.skip_existing:
filter = lambda r: not os.path.exists(os.path.join(path, r.name))
- scene_res.write_collection(os.path.join(path, base+"_resources.mdc"), exclude=self=True, filter)
+ scene_res.write_collection(os.path.join(path, base+"_resources.mdc"), exclude_self=True, filter=filter)
else:
res_dir = os.path.join(path, base+"_resources")
if not os.path.exists(res_dir):
object_export = ObjectExporter()
object_export.single_file = False
- material_maps = {}
+ material_atlases = {}
for i, o in enumerate(objs):
progress.push_task_slice(o.name, i, len(objs))
- object_export.export_object_resources(context, o, resources, progress, material_maps=material_maps)
+ object_export.export_object_resources(context, o, resources, progress, material_atlases=material_atlases)
obj_name = o.name+".object"
resources[obj_name] = object_export.export_object(context, o, progress, resources=resources)
progress.pop_task()