diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-05 18:59:13 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-07 14:11:53 +0300 |
commit | c93dc355888ec2f9a4376ad6cf0422277c69d565 (patch) | |
tree | cb30669758c2c036c3819b9fecca0a8ef4c5219d /rigify/base_generate.py | |
parent | 53bfa6c93a17b6fa6bcc19f86c3c8df17cb57c5c (diff) |
Rigify: keep custom widgets already assigned in metarig.
Also make error handling more robust and extend constraint relink mixin.
Diffstat (limited to 'rigify/base_generate.py')
-rw-r--r-- | rigify/base_generate.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/rigify/base_generate.py b/rigify/base_generate.py index da4949b2..16242262 100644 --- a/rigify/base_generate.py +++ b/rigify/base_generate.py @@ -338,7 +338,7 @@ class BaseGenerator: self.__run_edit_stage('prepare_bones') - def __auto_register_bones(self, bones, rig): + def __auto_register_bones(self, bones, rig, plugin=None): """Find bones just added and not registered by this rig.""" for bone in bones: name = bone.name @@ -347,8 +347,10 @@ class BaseGenerator: if rig: rig.rigify_new_bones[name] = None - if not isinstance(rig, LegacyRig): - print("WARNING: rig %s didn't register bone %s\n" % (self.describe_rig(rig), name)) + if not isinstance(rig, LegacyRig): + print("WARNING: rig %s didn't register bone %s\n" % (self.describe_rig(rig), name)) + else: + print("WARNING: plugin %s didn't register bone %s\n" % (plugin, name)) def invoke_generate_bones(self): @@ -365,13 +367,17 @@ class BaseGenerator: self.__auto_register_bones(self.obj.data.edit_bones, rig) - for plugin in self.plugin_list: - plugin.rigify_invoke_stage('generate_bones') + # Allow plugins to be added to the end of the list on the fly + for i in count(0): + if i >= len(self.plugin_list): + break + + self.plugin_list[i].rigify_invoke_stage('generate_bones') assert(self.context.active_object == self.obj) assert(self.obj.mode == 'EDIT') - self.__auto_register_bones(self.obj.data.edit_bones, None) + self.__auto_register_bones(self.obj.data.edit_bones, None, plugin=self.plugin_list[i]) def invoke_parent_bones(self): |