class ExportMspGLMeshBase(ExportMspGLBase):
export_all: bpy.props.BoolProperty(name="Export all selected", description="Export all selected objects (use generated filenames)", default=False)
- use_strips: bpy.props.BoolProperty(name="Use strips", description="Combine faces into triangle strips", default=True)
- use_degen_tris: bpy.props.BoolProperty(name="Use degen tris", description="Concatenate triangle strips with degenerate triangles", default=False)
def draw(self, context):
self.general_col = self.layout.column()
if len(context.selected_objects)>1:
col.label(text="Object selection")
col.prop(self, "export_all")
- col.label(text="Triangle strips")
- col.prop(self, "use_strips")
- col.prop(self, "use_degen_tris")
class ExportMspGLMesh(bpy.types.Operator, ExportMspGLMeshBase):
bl_idname = "export_mesh.mspgl_mesh"
collection: bpy.props.BoolProperty(name="As a collection", description="Write all data into a single collection file", default=False)
shared_resources: bpy.props.BoolProperty(name="Shared resources", description="Use global names for resource files to enable sharing", default=True)
- export_lods: bpy.props.BoolProperty(name="Export LoDs", description="Export all levels of detail", default=True)
- use_textures: bpy.props.BoolProperty(name="Use textures", description="Use textures in the exported object", default=True)
-
def check(self, context):
ext_changed = self.set_extension(".mdc" if self.collection else ".object")
super_result = super().check(context)
def draw(self, context):
super().draw(context)
- self.general_col.prop(self, "export_lods")
- self.general_col.prop(self, "use_textures")
-
col = self.layout.column()
col.label(text="Files")
col.prop(self, "collection")
from .export_camera import CameraExporter
return CameraExporter()
+class AddUniform(bpy.types.Operator):
+ bl_idname = "material.add_uniform"
+ bl_label = "Add Uniform"
+ bl_description = "Add a new uniform value to the material"
+
+ def execute(self, context):
+ mat = context.active_object.active_material
+ mat.uniforms.add()
+ mat.active_uniform_index = len(mat.uniforms)-1
+
+ return {"FINISHED"}
+
+class RemoveUniform(bpy.types.Operator):
+ bl_idname = "material.remove_uniform"
+ bl_label = "Remove Uniform"
+ bl_description = "Remove the selected uniform from the material"
+
+ def execute(self, context):
+ mat = context.active_object.active_material
+ mat.uniforms.remove(mat.active_uniform_index)
+ mat.active_uniform_index = min(mat.active_uniform_index, len(mat.uniforms)-1)
+
+ return {"FINISHED"}
+
def menu_func_export(self, context):
self.layout.operator(ExportMspGLMesh.bl_idname, text="Msp GL mesh")
self.layout.operator(ExportMspGLObject.bl_idname, text="Msp GL object")
self.layout.operator(ExportMspGLScene.bl_idname, text="Msp GL scene")
self.layout.operator(ExportMspGLCamera.bl_idname, text="Msp GL camera")
-classes = [ExportMspGLMesh, ExportMspGLObject, ExportMspGLArmature, ExportMspGLAnimation, ExportMspGLScene, ExportMspGLCamera]
+classes = [ExportMspGLMesh, ExportMspGLObject, ExportMspGLArmature, ExportMspGLAnimation, ExportMspGLScene, ExportMspGLCamera, AddUniform, RemoveUniform]
def register():
for c in classes: