Compare commits

...

4 Commits

3 changed files with 17 additions and 11 deletions

View File

@ -44,7 +44,7 @@ from . import environment
DEPENDENCIES = { DEPENDENCIES = {
("replication", '0.1.6'), ("replication", '0.2.0'),
} }

View File

@ -127,9 +127,9 @@ class BlDatablock(ReplicatedDatablock):
if instance and hasattr(instance, 'uuid'): if instance and hasattr(instance, 'uuid'):
instance.uuid = self.uuid instance.uuid = self.uuid
self.diff_method = DIFF_BINARY # self.diff_method = DIFF_BINARY
def resolve(self): def resolve(self, construct = True):
datablock_ref = None datablock_ref = None
datablock_root = getattr(bpy.data, self.bl_id) datablock_root = getattr(bpy.data, self.bl_id)
datablock_ref = utils.find_from_attr('uuid', self.uuid, datablock_root) datablock_ref = utils.find_from_attr('uuid', self.uuid, datablock_root)
@ -138,14 +138,18 @@ class BlDatablock(ReplicatedDatablock):
try: try:
datablock_ref = datablock_root[self.data['name']] datablock_ref = datablock_root[self.data['name']]
except Exception: except Exception:
name = self.data.get('name') if construct:
logging.debug(f"Constructing {name}") name = self.data.get('name')
datablock_ref = self._construct(data=self.data) logging.debug(f"Constructing {name}")
datablock_ref = self._construct(data=self.data)
if datablock_ref: if datablock_ref is not None:
setattr(datablock_ref, 'uuid', self.uuid) setattr(datablock_ref, 'uuid', self.uuid)
self.instance = datablock_ref
return True
else:
return False
self.instance = datablock_ref
def remove_instance(self): def remove_instance(self):
""" """

View File

@ -697,10 +697,12 @@ def sanitize_deps_graph(dummy):
A future solution should be to avoid storing dataclock reference... A future solution should be to avoid storing dataclock reference...
""" """
if session and session.state['STATE'] == STATE_ACTIVE: if session and session.state['STATE'] == STATE_ACTIVE:
for node_key in session.list(): for node_key in session.list():
session.get(node_key).resolve() node = session.get(node_key)
if node and not node.resolve(construct=False):
session.remove(node_key)
@persistent @persistent
def load_pre_handler(dummy): def load_pre_handler(dummy):