Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2020-12-05 18:59:13 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2020-12-07 14:11:53 +0300
commitc93dc355888ec2f9a4376ad6cf0422277c69d565 (patch)
treecb30669758c2c036c3819b9fecca0a8ef4c5219d /rigify/base_generate.py
parent53bfa6c93a17b6fa6bcc19f86c3c8df17cb57c5c (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.py18
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):