- if self.single_file:
- raise Exception("Can't export inherited technique to a single file")
-
- st = Statement("inherit", material.technique)
- for s, t in textures.items():
- fn = os.path.basename(t.image.filepath)
- if t.default_filter and fn:
- st.sub.append(Statement("texture", s, fn))
- else:
- st.sub.append(tech_res.create_reference_statement("texture", s, resources[t.name+".tex2d"]))
- if material.override_material:
- st.sub.append(tech_res.create_reference_statement("material", "surface", mat_res))
- tech_res.statements.append(st)
- else:
- st = Statement("pass", "")
- if self.single_file:
- st.sub.append(tech_res.create_embed_statement("material", mat_res))
- else:
- st.sub.append(tech_res.create_reference_statement("material", mat_res))
-
- if "diffuse_map" in textures:
- diffuse_tex = textures["diffuse_map"]
- tex_res = resources[diffuse_tex.name+".tex2d"]
- ss = Statement("texunit", 0)
- fn = os.path.basename(diffuse_tex.image.filepath)
- if self.single_file:
- ss.sub.append(tech_res.create_embed_statement("texture2d", tex_res))
- elif diffuse_tex.default_filter and fn:
- ss.sub.append(Statement("texture", fn))
- else:
- ss.sub.append(tech_res.create_reference_statement("texture", tex_res))
- st.sub.append(ss)
-
- tech_res.statements.append(st)
-
- return tech_res
-
- def export_material(self, material):