Add Remove Material Button

This commit is contained in:
D4rkl1ght3r
2025-10-04 00:21:08 +02:00
parent 537c842904
commit 7876d6a7ac

View File

@@ -1,7 +1,7 @@
bl_info = { bl_info = {
"name": "LancerEdit Model Utility Plugin", "name": "LancerEdit Model Utility Plugin",
"author": "Darklighter", "author": "Darklighter",
"version": (0, 0, 1), "version": (0, 0, 2),
"blender": (4, 5, 3), "blender": (4, 5, 3),
"location": "3D-Viewport > Sidebar > FLLancerEdit Utility", "location": "3D-Viewport > Sidebar > FLLancerEdit Utility",
"description": "Non-offical LancerEdit Model Utility Plugin for PC-Game Freelancer", "description": "Non-offical LancerEdit Model Utility Plugin for PC-Game Freelancer",
@@ -159,6 +159,21 @@ class RenameChildObjectOperator(bpy.types.Operator):
self.report({'INFO'}, "Selected child objects renamed successfully") self.report({'INFO'}, "Selected child objects renamed successfully")
return {'FINISHED'} return {'FINISHED'}
class OBJECT_OT_remove_hull_material(bpy.types.Operator):
bl_idname = "object.remove_hull_material"
bl_label = "Remove Hull Material"
bl_description = "Remove materials from selected objects"
def execute(self, context):
selected_objects = context.selected_objects
for obj in selected_objects:
if obj.type == 'MESH' and obj.data.materials:
obj.data.materials.clear()
self.report({'INFO'}, "Materials removed from selected objects")
return {'FINISHED'}
class OBJECT_OT_create_convex(bpy.types.Operator): class OBJECT_OT_create_convex(bpy.types.Operator):
bl_idname = "object.create_convex" bl_idname = "object.create_convex"
bl_label = "Create Convex" bl_label = "Create Convex"
@@ -212,6 +227,30 @@ class OBJECT_OT_create_convex(bpy.types.Operator):
self.report({'INFO'}, "Convex hull created") self.report({'INFO'}, "Convex hull created")
return {'FINISHED'} return {'FINISHED'}
class OBJECT_OT_add_parent_component(bpy.types.Operator):
bl_idname = "object.add_parent_component"
bl_label = "Add Parent Component"
bl_description = "Set the parent of the selected object to specified object"
parent_object_name: bpy.props.StringProperty(
name="Parent Object Name",
description="Name of the object to set as parent",
default=""
)
def execute(self, context):
parent_obj = bpy.data.objects.get(self.parent_object_name)
if not parent_obj:
self.report({'WARNING'}, f"Object '{self.parent_object_name}' not found.")
return {'CANCELLED'}
for obj in context.selected_objects:
obj.parent = parent_obj
self.report({'INFO'}, f"Parent set to '{self.parent_object_name}' for selected objects.")
return {'FINISHED'}
def invoke(self, context, event):
return context.window_manager.invoke_props_dialog(self)
class LancerEditHelpersPanel(bpy.types.Panel): class LancerEditHelpersPanel(bpy.types.Panel):
bl_label = "LancerEdit Model Utility Plugin" bl_label = "LancerEdit Model Utility Plugin"
@@ -242,6 +281,10 @@ class LancerEditHelpersPanel(bpy.types.Panel):
layout.prop(scene, "child_object_new_name") layout.prop(scene, "child_object_new_name")
# Button for Convert to Hull # Button for Convert to Hull
layout.operator("object.rename_selected_child") layout.operator("object.rename_selected_child")
layout.separator()
layout.operator("object.remove_hull_material")
layout.separator()
layout.operator("object.add_parent_component")
def register(): def register():
@@ -249,6 +292,8 @@ def register():
bpy.utils.register_class(RenameObjectsAndMeshesOperator) bpy.utils.register_class(RenameObjectsAndMeshesOperator)
bpy.utils.register_class(RenameChildObjectOperator) bpy.utils.register_class(RenameChildObjectOperator)
bpy.utils.register_class(OBJECT_OT_create_convex) bpy.utils.register_class(OBJECT_OT_create_convex)
bpy.utils.register_class(OBJECT_OT_remove_hull_material)
bpy.utils.register_class(OBJECT_OT_add_parent_component)
bpy.types.Scene.object_names = bpy.props.StringProperty( bpy.types.Scene.object_names = bpy.props.StringProperty(
name="Parent Name", name="Parent Name",
@@ -271,10 +316,13 @@ def unregister():
bpy.utils.unregister_class(RenameObjectsAndMeshesOperator) bpy.utils.unregister_class(RenameObjectsAndMeshesOperator)
bpy.utils.unregister_class(RenameChildObjectOperator) bpy.utils.unregister_class(RenameChildObjectOperator)
bpy.utils.unregister_class(OBJECT_OT_create_convex) bpy.utils.unregister_class(OBJECT_OT_create_convex)
bpy.utils.unregister_class(OBJECT_OT_remove_hull_material)
bpy.utils.register_class(OBJECT_OT_add_parent_component)
del bpy.types.Scene.object_names del bpy.types.Scene.object_names
del bpy.types.Scene.new_name del bpy.types.Scene.new_name
del bpy.types.Scene.child_object_new_name del bpy.types.Scene.child_object_new_name
if __name__ == "__main__": if __name__ == "__main__":
register() register()