yyc12345
84e7e8380f
- now grouping, ungrouping clear groups operators will show a report at the bottom of blender to indicate their work have done. - disable fix material, 3ds max align, select by virtools group operators in edit mode to prevent any possible undefined behavior.
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
import bpy
|
|
from . import UTIL_functions
|
|
from . import PROP_virtools_material, PROP_preferences
|
|
|
|
class BBP_OT_fix_all_material(bpy.types.Operator):
|
|
"""Fix All Materials by Its Referred Ballance Texture Name."""
|
|
bl_idname = "bbp.fix_all_material"
|
|
bl_label = "Fix Material"
|
|
bl_options = {'UNDO'}
|
|
|
|
@classmethod
|
|
def poll(cls, context):
|
|
# only enable this when plugin have a valid ballance texture folder
|
|
# and we are in object mode
|
|
return PROP_preferences.get_raw_preferences().has_valid_blc_tex_folder() and UTIL_functions.is_in_object_mode()
|
|
|
|
def invoke(self, context, event):
|
|
wm = context.window_manager
|
|
return wm.invoke_confirm(self, event)
|
|
|
|
def execute(self, context):
|
|
# do work and count
|
|
counter_all: int = 0
|
|
counter_suc: int = 0
|
|
for mtl in bpy.data.materials:
|
|
counter_all += 1
|
|
if PROP_virtools_material.fix_material(mtl):
|
|
PROP_virtools_material.apply_to_blender_material(mtl)
|
|
counter_suc += 1
|
|
|
|
# report and return
|
|
self.report({'INFO'}, f'Fix {counter_suc}/{counter_all} materials.')
|
|
return {'FINISHED'}
|
|
|
|
def register() -> None:
|
|
bpy.utils.register_class(BBP_OT_fix_all_material)
|
|
|
|
def unregister() -> None:
|
|
bpy.utils.unregister_class(BBP_OT_fix_all_material)
|