62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
|
|
||
|
|
"""
|
||
|
|
Pose Library based on the Asset Browser.
|
||
|
|
"""
|
||
|
|
|
||
|
|
bl_info = {
|
||
|
|
"name": "Pose Library",
|
||
|
|
"description": "Pose Library based on the Asset Browser.",
|
||
|
|
"author": "Sybren A. Stüvel",
|
||
|
|
"version": (2, 0),
|
||
|
|
"blender": (3, 0, 0),
|
||
|
|
"location": "Asset Browser -> Animations, and 3D Viewport -> Animation panel",
|
||
|
|
"doc_url": "{BLENDER_MANUAL_URL}/animation/armatures/posing/editing/pose_library.html",
|
||
|
|
"support": "OFFICIAL",
|
||
|
|
"category": "Animation",
|
||
|
|
}
|
||
|
|
|
||
|
|
from typing import List, Tuple
|
||
|
|
|
||
|
|
_need_reload = "operators" in locals()
|
||
|
|
from . import gui, keymaps, operators, conversion
|
||
|
|
|
||
|
|
if _need_reload:
|
||
|
|
import importlib
|
||
|
|
|
||
|
|
gui = importlib.reload(gui)
|
||
|
|
keymaps = importlib.reload(keymaps)
|
||
|
|
operators = importlib.reload(operators)
|
||
|
|
conversion = importlib.reload(conversion)
|
||
|
|
|
||
|
|
import bpy
|
||
|
|
|
||
|
|
addon_keymaps: List[Tuple[bpy.types.KeyMap, bpy.types.KeyMapItem]] = []
|
||
|
|
|
||
|
|
|
||
|
|
def register() -> None:
|
||
|
|
bpy.types.WindowManager.poselib_flipped = bpy.props.BoolProperty(
|
||
|
|
name="Flip Pose",
|
||
|
|
default=False,
|
||
|
|
)
|
||
|
|
bpy.types.WindowManager.poselib_previous_action = bpy.props.PointerProperty(type=bpy.types.Action)
|
||
|
|
|
||
|
|
operators.register()
|
||
|
|
keymaps.register()
|
||
|
|
gui.register()
|
||
|
|
|
||
|
|
|
||
|
|
def unregister() -> None:
|
||
|
|
gui.unregister()
|
||
|
|
keymaps.unregister()
|
||
|
|
operators.unregister()
|
||
|
|
|
||
|
|
try:
|
||
|
|
del bpy.types.WindowManager.poselib_flipped
|
||
|
|
except AttributeError:
|
||
|
|
pass
|
||
|
|
try:
|
||
|
|
del bpy.types.WindowManager.poselib_previous_action
|
||
|
|
except AttributeError:
|
||
|
|
pass
|