- meshes = self.export_object_meshes(context, obj, progress, base_name=base)
- if self.separate_mesh:
- for name, st in meshes.items():
- with open(os.path.join(path, name), "w") as out_file:
- for s in st:
- s.write_to_file(out_file)
-
- if self.separate_tech:
- lods = [obj]
- if self.export_lods:
- lods += [c for c in obj.children if c.lod_for_parent]
-
- for l in lods:
- lod_index = l.lod_index if l.lod_for_parent else 0
-
- material = None
- if obj.material_slots:
- material = obj.material_slots[0].material
-
- if not l.technique:
- tech_name = self.make_external_name(base, material.name, ".tech", lod_index)
- st = self.export_object_technique(l, base_name=base)
- with open(os.path.join(path, tech_name), "w") as out_file:
- for s in st:
- s.write_to_file(out_file)
- elif material and l.override_material:
- mat_name = self.make_external_name(base, material.name, ".mat", lod_index)
- st = self.export_material(material)
- with open(os.path.join(path, mat_name), "w") as out_file:
- for s in st:
- s.write_to_file(out_file)
-
- statements = self.export_object(context, obj, progress, meshes=meshes, base_name=base)
+ resources = {}
+ self.export_object_resources(context, obj, resources, progress)
+
+ obj_res = self.export_object(context, obj, progress, resources=resources)
+ refs = obj_res.collect_references()
+ if not self.shared_resources:
+ numbers = {}
+ for r in refs:
+ ext = os.path.splitext(r.name)[1]
+ n = numbers.get(ext, 0)
+ if n>0:
+ r.name = "{}_{}{}".format(base, n, ext)
+ else:
+ r.name = base+ext
+ numbers[ext] = n+1
+
+ for r in refs:
+ with open(os.path.join(path, r.name), "w") as out_file:
+ for s in r.statements:
+ s.write_to_file(out_file)