From c00b2a2d7d9d8bb0cb5ebebd9ba4f76e7da6efe6 Mon Sep 17 00:00:00 2001 From: Swann Date: Tue, 9 Feb 2021 14:20:08 +0100 Subject: [PATCH] feat: explicit state loading error --- multi_user/bl_types/bl_object.py | 4 ++++ multi_user/operators.py | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/multi_user/bl_types/bl_object.py b/multi_user/bl_types/bl_object.py index 2d8304e..281cd08 100644 --- a/multi_user/bl_types/bl_object.py +++ b/multi_user/bl_types/bl_object.py @@ -135,6 +135,10 @@ class BlObject(BlDatablock): data_uuid, find_data_from_name(data_id), ignore=['images']) # TODO: use resolve_from_id + + if object_data is None and data_uuid: + raise Exception(f"Fail to load object {data['name']}({self.uuid})") + instance = bpy.data.objects.new(object_name, object_data) instance.uuid = self.uuid diff --git a/multi_user/operators.py b/multi_user/operators.py index c3ff65b..aa5d171 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -78,19 +78,23 @@ def initialize_session(): settings = utils.get_preferences() runtime_settings = bpy.context.window_manager.session - logging.info("Constructing nodes") # Step 1: Constrect nodes + logging.info("Constructing nodes") for node in session._graph.list_ordered(): node_ref = session.get(uuid=node) - if node_ref.state == FETCHED: + if node_ref and node_ref.state == FETCHED: node_ref.resolve() - - logging.info("Loading nodes") + else: + logging.error(f"Can't construct node {node}") + # Step 2: Load nodes + logging.info("Loading nodes") for node in session._graph.list_ordered(): node_ref = session.get(uuid=node) - if node_ref.state == FETCHED: + if node_ref and node_ref.state == FETCHED: node_ref.apply() + else: + logging.error(f"Can't load node {node}") logging.info("Registering timers") # Step 4: Register blender timers