From 9f167256d01a85c32a181720c8b197fedc7b29c7 Mon Sep 17 00:00:00 2001 From: Swann Date: Fri, 2 Apr 2021 16:12:51 +0200 Subject: [PATCH] fix: node frame trasform --- multi_user/bl_types/bl_material.py | 9 +++++++++ multi_user/bl_types/bl_object.py | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/multi_user/bl_types/bl_material.py b/multi_user/bl_types/bl_material.py index 51e4130..1b71058 100644 --- a/multi_user/bl_types/bl_material.py +++ b/multi_user/bl_types/bl_material.py @@ -123,6 +123,9 @@ def dump_node(node: bpy.types.ShaderNode) -> dict: dumped_node = node_dumper.dump(node) + if node.parent: + dumped_node['parent'] = node.parent.name + dump_io_needed = (node.type not in ['REROUTE', 'OUTPUT_MATERIAL']) if dump_io_needed: @@ -318,6 +321,12 @@ def load_node_tree(node_tree_data: dict, target_node_tree: bpy.types.ShaderNodeT for node in node_tree_data["nodes"]: load_node(node_tree_data["nodes"][node], target_node_tree) + for node_id, node_data in node_tree_data["nodes"].items(): + target_node = target_node_tree.nodes[node_id] + if 'parent' in node_data: + target_node.parent = target_node_tree.nodes[node_data['parent']] + else: + target_node.parent = None # TODO: load only required nodes links # Load nodes links target_node_tree.links.clear() diff --git a/multi_user/bl_types/bl_object.py b/multi_user/bl_types/bl_object.py index 2141159..9a1df18 100644 --- a/multi_user/bl_types/bl_object.py +++ b/multi_user/bl_types/bl_object.py @@ -182,10 +182,10 @@ def find_geometry_nodes_dependencies(modifiers: bpy.types.bpy_prop_collection) - for mod in modifiers: if mod.type == 'NODES' and mod.node_group: dependencies.append(mod.node_group) - for inpt in get_node_group_inputs(mod.node_group): - parameter = mod.get(inpt.identifier) - if parameter and isinstance(parameter, bpy.types.ID): - dependencies.append(parameter) + # for inpt in get_node_group_inputs(mod.node_group): + # parameter = mod.get(inpt.identifier) + # if parameter and isinstance(parameter, bpy.types.ID): + # dependencies.append(parameter) logging.info(dependencies) return dependencies