diff --git a/multi_user/bl_types/bl_object.py b/multi_user/bl_types/bl_object.py index d7dde74..fdb4ba7 100644 --- a/multi_user/bl_types/bl_object.py +++ b/multi_user/bl_types/bl_object.py @@ -363,6 +363,12 @@ class BlObject(BlDatablock): for modifier in nodes_modifiers: load_modifier_geometry_node_inputs(data['modifiers'][modifier.name], modifier) + transform = data.get('transforms', None) + if transform: + target.matrix_parent_inverse = mathutils.Matrix(transform['matrix_parent_inverse']) + target.matrix_basis = mathutils.Matrix(transform['matrix_basis']) + target.matrix_local = mathutils.Matrix(transform['matrix_local']) + def _dump_implementation(self, data, instance=None): assert(instance) @@ -391,8 +397,6 @@ class BlObject(BlDatablock): "color", "instance_collection", "instance_type", - "location", - "scale", 'lock_location', 'lock_rotation', 'lock_scale', @@ -406,12 +410,16 @@ class BlObject(BlDatablock): 'show_all_edges', 'show_texture_space', 'show_in_front', - 'type', - 'rotation_quaternion' if instance.rotation_mode == 'QUATERNION' else 'rotation_euler', + 'type' ] data = dumper.dump(instance) + dumper.include_filter = [ + 'matrix_parent_inverse', + 'matrix_local', + 'matrix_basis'] + data['transforms'] = dumper.dump(instance) dumper.include_filter = [ 'show_shadows', ] diff --git a/multi_user/operators.py b/multi_user/operators.py index 4399e7f..aea8271 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -996,7 +996,7 @@ def depsgraph_evaluation(scene): # - if its ours or ( under common and diff), launch the # update process # - if its to someone else, ignore the update - if node and node.owner in [session.id, RP_COMMON]: + if node and (node.owner == session.id or node.bl_check_common): if node.state == UP: try: if node.has_changed():