diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-15 15:43:34 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-15 15:43:34 +0400 |
commit | 2755129fb67b137e7a145bb5c6d94c2a4f462a56 (patch) | |
tree | 6dce94e52ade32d1e852835f3a4c8fe3d3a80b19 /release/scripts/modules/animsys_refactor.py | |
parent | 44afd8ae5af40dfbff51503894e9c5754ce5657a (diff) |
nodes were being ignored by api update script.
Diffstat (limited to 'release/scripts/modules/animsys_refactor.py')
-rw-r--r-- | release/scripts/modules/animsys_refactor.py | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py index 8cc91873b0e..bd16a02268a 100644 --- a/release/scripts/modules/animsys_refactor.py +++ b/release/scripts/modules/animsys_refactor.py @@ -111,6 +111,7 @@ def classes_recursive(base_type, clss=None): def find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map): + # note!, id_data can be ID type or a node tree # ignore ID props for now if data_path.startswith("["): return data_path @@ -156,36 +157,43 @@ def update_data_paths(rna_update): rna_update_from_map.setdefault(ren_from, []).append(ren_to) for id_data in id_iter(): - anim_data = getattr(id_data, "animation_data", None) - if anim_data is None: - continue - - for fcurve in anim_data.drivers: - for var in fcurve.driver.variables: - if var.type == 'SINGLE_PROP': - for tar in var.targets: - id_data_other = tar.id - data_path = tar.data_path - - if id_data_other and data_path: - data_path_new = find_path_new(id_data_other, data_path, rna_update_dict, rna_update_from_map) - # print(data_path_new) - if data_path_new != data_path: - if not IS_TESTING: - tar.data_path = data_path_new - print("driver (%s): %s -> %s" % (id_data_other.name, data_path, data_path_new)) + + # check node-trees too + anim_data_ls = [(id_data, getattr(id_data, "animation_data", None))] + node_tree = getattr(id_data, "node_tree", None) + if node_tree: + anim_data_ls.append((node_tree, node_tree.animation_data)) + + for anim_data_base, anim_data in anim_data_ls: + if anim_data is None: + continue + + for fcurve in anim_data.drivers: + for var in fcurve.driver.variables: + if var.type == 'SINGLE_PROP': + for tar in var.targets: + id_data_other = tar.id + data_path = tar.data_path + + if id_data_other and data_path: + data_path_new = find_path_new(id_data_other, data_path, rna_update_dict, rna_update_from_map) + # print(data_path_new) + if data_path_new != data_path: + if not IS_TESTING: + tar.data_path = data_path_new + print("driver (%s): %s -> %s" % (id_data_other.name, data_path, data_path_new)) + - - for action in anim_data_actions(anim_data): - for fcu in action.fcurves: - data_path = fcu.data_path - data_path_new = find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map) - # print(data_path_new) - if data_path_new != data_path: - if not IS_TESTING: - fcu.data_path = data_path_new - print("fcurve (%s): %s -> %s" % (id_data.name, data_path, data_path_new)) + for action in anim_data_actions(anim_data): + for fcu in action.fcurves: + data_path = fcu.data_path + data_path_new = find_path_new(anim_data_base, data_path, rna_update_dict, rna_update_from_map) + # print(data_path_new) + if data_path_new != data_path: + if not IS_TESTING: + fcu.data_path = data_path_new + print("fcurve (%s): %s -> %s" % (id_data.name, data_path, data_path_new)) if __name__ == "__main__": |