Skip to content

Commit 9e500a0

Browse files
committed
Rig UI template: add driver namespaces and types
1 parent 9552d35 commit 9e500a0

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

generate.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,8 @@ def generate_rig(context, metarig):
346346
ui_imports = rig_ui_template.UI_IMPORTS.copy()
347347
ui_utilities = rig_ui_template.UI_UTILITIES.copy()
348348
ui_register = rig_ui_template.UI_REGISTER.copy()
349+
ui_register_drivers = []
350+
ui_register_types = []
349351
noparent_bones = []
350352
for rig in rigs:
351353
# Go into editmode in the rig armature
@@ -363,6 +365,10 @@ def generate_rig(context, metarig):
363365
ui_utilities += scripts['utilities']
364366
if 'register' in scripts:
365367
ui_register += scripts['register']
368+
if 'register_drivers' in scripts:
369+
ui_register_drivers += scripts['register_drivers']
370+
if 'register_types' in scripts:
371+
ui_register_types += scripts['register_types']
366372
if 'noparent_bones' in scripts:
367373
noparent_bones += scripts['noparent_bones']
368374
elif scripts is not None:
@@ -505,14 +511,27 @@ def generate_rig(context, metarig):
505511
for s in ui_scripts:
506512
script.write("\n " + s.replace("\n", "\n ") + "\n")
507513
script.write(rig_ui_template.layers_ui(vis_layers, layer_layout))
514+
508515
script.write("\ndef register():\n")
509516
ui_register = OrderedDict.fromkeys(ui_register)
510517
for s in ui_register:
511518
script.write(" bpy.utils.register_class("+s+");\n")
519+
ui_register_drivers = OrderedDict.fromkeys(ui_register_drivers)
520+
for s in ui_register_drivers:
521+
script.write(" bpy.app.driver_namespace['"+s+"'] = "+s+"\n")
522+
ui_register_types = OrderedDict.fromkeys(ui_register_types)
523+
for s in ui_register_types:
524+
script.write(" bpy.types.%s = %s\n " % (*s,))
525+
512526
script.write("\ndef unregister():\n")
527+
for s in ui_register_types:
528+
script.write(" del bpy.types.%s\n" % s[0])
513529
for s in ui_register:
514530
script.write(" bpy.utils.unregister_class("+s+");\n")
531+
for s in ui_register_drivers:
532+
script.write(" del bpy.app.driver_namespace['"+s+"']\n")
515533
script.write("\nregister()\n")
534+
516535
script.use_module = True
517536

518537
# Run UI script

0 commit comments

Comments
 (0)