diff --git a/multi_user/bl_types/bl_datablock.py b/multi_user/bl_types/bl_datablock.py index 5abc84e..ce036f9 100644 --- a/multi_user/bl_types/bl_datablock.py +++ b/multi_user/bl_types/bl_datablock.py @@ -107,25 +107,24 @@ class BlDatablock(ReplicatedDatablock): (self.data and 'library' in self.data) if instance and hasattr(instance, 'uuid'): - instance.uuid = self.uuid - - self.diff_method = DIFF_BINARY + instance.uuid = self.uuid + self.diff_method = DIFF_BINARY def resolve(self): datablock_ref = None datablock_root = getattr(bpy.data, self.bl_id) datablock_ref = utils.find_from_attr('uuid', self.uuid, datablock_root) - # In case of lost uuid (ex: undo), resolve by name and reassign it if not datablock_ref: - datablock_ref = datablock_root.get(self.data['name']) + import logging + logging.info(self.bl_id) + datablock_ref = datablock_root.get( + self.data['name'], # Resolve by name + self._construct(data=self.data)) # If it doesn't exist create it if datablock_ref: setattr(datablock_ref, 'uuid', self.uuid) - else: - self._construct(data=self.data) - self.instance = datablock_ref @@ -145,7 +144,7 @@ class BlDatablock(ReplicatedDatablock): dump_driver(driver)) data.update(dumped_drivers) - + if self.is_library: data.update(dumper.dump(instance)) else: diff --git a/multi_user/bl_types/bl_mesh.py b/multi_user/bl_types/bl_mesh.py index 406ae42..494b344 100644 --- a/multi_user/bl_types/bl_mesh.py +++ b/multi_user/bl_types/bl_mesh.py @@ -56,12 +56,15 @@ class BlMesh(BlDatablock): bl_icon = 'MESH_DATA' def _construct(self, data): + logging.error(f"Loading {data['name']}") instance = bpy.data.meshes.new(data["name"]) instance.uuid = self.uuid return instance def _load_implementation(self, data, target): - if not target or not target.is_editmode: + if not target or target.is_editmode: + raise ContextError + else: loader = Loader() loader.load(target, data) diff --git a/multi_user/libs/replication b/multi_user/libs/replication index 11ec4dc..f8901d4 160000 --- a/multi_user/libs/replication +++ b/multi_user/libs/replication @@ -1 +1 @@ -Subproject commit 11ec4dcf652d8909a04e5e2b70fc7567207d78b5 +Subproject commit f8901d458c1051f362639a9c0248c22b4fb1861f