import bpy from . import gui, operators, common from typing import List, Tuple bl_info = \ { "name": "Damn Simple Pose Library", "author": "jackie", "version": (4, 1, 0), "blender": (3, 5, 0), "description": "woah", "category": "Object Data", } _need_reload = "operators" in locals() if _need_reload: import importlib gui = importlib.reload(gui) common = importlib.reload(common) # keymaps = importlib.reload(keymaps) operators = importlib.reload(operators) # addon_keymaps: List[Tuple[bpy.types.KeyMap, bpy.types.KeyMapItem]] = [] # addon_keymaps = [] class dsplObj(bpy.types.PropertyGroup): pose_library: bpy.props.PointerProperty( name="Active Pose Library", description="", override={'LIBRARY_OVERRIDABLE'}, type=bpy.types.Action) # update = common.poselib_update) # , update = anim_layers.layer_name_update class dsplVars(bpy.types.PropertyGroup): pose_index: bpy.props.IntProperty( name="Pose Index", description="", override={'LIBRARY_OVERRIDABLE'}) pose_new_name: bpy.props.StringProperty( name="Pose Name", description="New name for pose", default="Pose", override={'LIBRARY_OVERRIDABLE'}) only_selected: bpy.props.BoolProperty( name="Only selected Bones", description="Process only selected bones", default=False, options={'HIDDEN'}, override={'LIBRARY_OVERRIDABLE'}) numero: bpy.props.IntProperty( name='Numero', default=666, override={'LIBRARY_OVERRIDABLE'}) class dsplSettings(bpy.types.PropertyGroup): new_menu: bpy.props.BoolProperty( name="New Menu", description="Toggle New Menu", default=False) edit_mode: bpy.props.BoolProperty( name="Edit Mode", description="Toggle Edit Mode", default=False) classes = (dsplObj, dsplVars, dsplSettings) def register(): from bpy.utils import register_class for cls in classes: register_class(cls) # bpy.types.Armature.pose_library = bpy.props.PointerProperty( # type=dsplObj, override={'LIBRARY_OVERRIDABLE'}) # bpy.types.Object.pose_library = bpy.props.PointerProperty( # type=bpy.types.Action, options={'LIBRARY_EDITABLE'}, override={'LIBRARY_OVERRIDABLE'}) bpy.types.Object.dspl = bpy.props.PointerProperty( type=dsplObj, override={'LIBRARY_OVERRIDABLE'}) bpy.types.Object.dsplvars = bpy.props.PointerProperty( type=dsplVars, override={'LIBRARY_OVERRIDABLE'}) bpy.types.Scene.dsplSettings = bpy.props.PointerProperty( type=dsplSettings, override={'LIBRARY_OVERRIDABLE'}) gui.register() operators.register() # kc = bpy.context.window_manager.keyconfigs.addon # km = kc.keymaps.new(name='3D View', space_type='VIEW_3D') # kmi = [ # km.keymap_items.new("dspl.add_pose", type='L', value='PRESS', shift=True), # km.keymap_items.new("dspl.browse_poses", type='L', value='PRESS', alt=True), # ] # addon_keymaps.append((km, kmi)) def unregister() -> None: from bpy.utils import unregister_class for cls in classes: unregister_class(cls) del bpy.types.Object.dspl del bpy.types.Object.dsplvars del bpy.types.Scene.dsplSettings gui.unregister() operators.unregister() # for km, kmi in addon_keymaps: # km.keymap_items.remove(kmi) # addon_keymaps.clear() if __name__ == "__main__": register()