From 664f7635ccdb02caf2b4e5421a16f71d40e246f5 Mon Sep 17 00:00:00 2001 From: Swann Date: Tue, 3 Nov 2020 16:15:34 +0100 Subject: [PATCH] feat: support empty id_root in actions --- multi_user/__init__.py | 2 +- multi_user/bl_types/bl_action.py | 13 +++++++++---- multi_user/bl_types/bl_mesh.py | 7 +------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/multi_user/__init__.py b/multi_user/__init__.py index 0b76f90..d7a1248 100644 --- a/multi_user/__init__.py +++ b/multi_user/__init__.py @@ -44,7 +44,7 @@ from . import environment DEPENDENCIES = { - ("replication", '0.1.6'), + ("replication", '0.1.7'), } diff --git a/multi_user/bl_types/bl_action.py b/multi_user/bl_types/bl_action.py index 15d3622..253a13e 100644 --- a/multi_user/bl_types/bl_action.py +++ b/multi_user/bl_types/bl_action.py @@ -42,7 +42,7 @@ KEYFRAME = [ ] -def dump_fcurve(fcurve: bpy.types.FCurve, use_numpy:bool =True) -> dict: +def dump_fcurve(fcurve: bpy.types.FCurve, use_numpy: bool = True) -> dict: """ Dump a sigle curve to a dict :arg fcurve: fcurve to dump @@ -59,7 +59,7 @@ def dump_fcurve(fcurve: bpy.types.FCurve, use_numpy:bool =True) -> dict: if use_numpy: points = fcurve.keyframe_points - fcurve_data['keyframes_count'] = len(fcurve.keyframe_points) + fcurve_data['keyframes_count'] = len(fcurve.keyframe_points) fcurve_data['keyframe_points'] = np_dump_collection(points, KEYFRAME) else: # Legacy method @@ -92,7 +92,8 @@ def load_fcurve(fcurve_data, fcurve): if use_numpy: keyframe_points.add(fcurve_data['keyframes_count']) - np_load_collection(fcurve_data["keyframe_points"], keyframe_points, KEYFRAME) + np_load_collection( + fcurve_data["keyframe_points"], keyframe_points, KEYFRAME) else: # paste dumped keyframes @@ -153,7 +154,11 @@ class BlAction(BlDatablock): dumped_data_path, index=dumped_array_index) load_fcurve(dumped_fcurve, fcurve) - target.id_root = data['id_root'] + + id_root = data.get('id_root') + + if id_root: + target.id_root = id_root def _dump_implementation(self, data, instance=None): dumper = Dumper() diff --git a/multi_user/bl_types/bl_mesh.py b/multi_user/bl_types/bl_mesh.py index cf6982c..70546b7 100644 --- a/multi_user/bl_types/bl_mesh.py +++ b/multi_user/bl_types/bl_mesh.py @@ -172,12 +172,7 @@ class BlMesh(BlDatablock): data['vertex_colors'][color_map.name]['data'] = np_dump_collection_primitive(color_map.data, 'color') # Fix material index - m_list = [] - for material in instance.materials: - if material: - m_list.append((material.uuid,material.name)) - - data['material_list'] = m_list + data['material_list'] = [(m.uuid, m.name) for m in instance.materials if m] return data