diff --git a/multi_user/bl_types/bl_scene.py b/multi_user/bl_types/bl_scene.py index df7e9a6..95e72ab 100644 --- a/multi_user/bl_types/bl_scene.py +++ b/multi_user/bl_types/bl_scene.py @@ -281,13 +281,9 @@ class BlScene(BlDatablock): bl_icon = 'SCENE_DATA' bl_reload_parent = False - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - self.diff_method = DIFF_JSON - def _construct(self, data): instance = bpy.data.scenes.new(data["name"]) + instance.uuid = self.uuid return instance def _load_implementation(self, data, target): diff --git a/multi_user/operators.py b/multi_user/operators.py index 9cf4d38..2f78759 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -1025,8 +1025,15 @@ def depsgraph_evaluation(scene): logging.error(e) else: continue - - + # A new scene is created + elif isinstance(update.id, bpy.types.Scene): + ref = session.get(reference=update.id) + if ref: + ref.resolve() + else: + scn_uuid = session.add(update.id) + session.commit(scn_uuid) + session.push(scn_uuid, check_data=False) def register(): from bpy.utils import register_class