Basic Start of Armature Selection
This commit is contained in:
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user