Basic Start of Armature Selection

This commit is contained in:
Yusarina
2024-07-22 23:13:10 +01:00
parent f0323577c9
commit 06c7cff4b7
9 changed files with 86 additions and 74 deletions
+12
View File
@@ -57,3 +57,15 @@ def get_armature(context, armature_name=None) -> Optional[Object]:
if obj.type == "ARMATURE":
return obj
return next((obj for obj in context.view_layer.objects if obj.type == 'ARMATURE'), None)
def get_armatures(self, context):
return [(obj.name, obj.name, "") for obj in bpy.data.objects if obj.type == 'ARMATURE']
def get_selected_armature(context):
if context.scene.selected_armature:
return bpy.data.objects.get(context.scene.selected_armature)
return None
def set_selected_armature(context, armature):
context.scene.selected_armature = armature.name if armature else ""
+10
View File
@@ -1,6 +1,7 @@
import bpy
from ..functions.translations import t, get_languages_list, update_language
from ..core.addon_preferences import get_preference
from .common import get_armatures
def register():
default_language = get_preference("language", 0)
@@ -15,9 +16,18 @@ def register():
bpy.types.Scene.avatar_toolkit_language_changed = bpy.props.BoolProperty(default=False)
bpy.types.Scene.selected_armature = bpy.props.EnumProperty(
items=get_armatures,
name="Selected Armature",
description="The currently selected armature for Avatar Toolkit operations"
)
def unregister():
if hasattr(bpy.types.Scene, "avatar_toolkit_language"):
del bpy.types.Scene.avatar_toolkit_language
if hasattr(bpy.types.Scene, "avatar_toolkit_language_changed"):
del bpy.types.Scene.avatar_toolkit_language_changed
if hasattr(bpy.types.Scene, "selected_armature"):
del bpy.types.Scene.selected_armature