Files
DamnSimplePoseLibrary/__init__.py
2024-11-23 13:23:42 -06:00

109 lines
3.5 KiB
Python

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()