diff --git a/multi_user/bl_types/bl_camera.py b/multi_user/bl_types/bl_camera.py index 6265bbf..d2531b5 100644 --- a/multi_user/bl_types/bl_camera.py +++ b/multi_user/bl_types/bl_camera.py @@ -56,7 +56,7 @@ class BlCamera(ReplicatedDatablock): background_images = data.get('background_images') datablock.background_images.clear() - + # TODO: Use image uuid if background_images: for img_name, img_data in background_images.items(): img_id = img_data.get('image') diff --git a/multi_user/bl_types/bl_image.py b/multi_user/bl_types/bl_image.py index b0885ca..be80d13 100644 --- a/multi_user/bl_types/bl_image.py +++ b/multi_user/bl_types/bl_image.py @@ -69,11 +69,12 @@ class BlImage(ReplicatedDatablock): @staticmethod def load(data: dict, datablock: object): loader = Loader() - loader.load(data, datablock) + loader.load(datablock, data) + # datablock.name = data.get('name') datablock.source = 'FILE' datablock.filepath_raw = get_filepath(data['filename']) - color_space_name = data["colorspace_settings"]["name"] + color_space_name = data.get("colorspace") if color_space_name: datablock.colorspace_settings.name = color_space_name @@ -92,12 +93,10 @@ class BlImage(ReplicatedDatablock): "name", # 'source', 'size', - 'height', - 'alpha', - 'float_buffer', - 'alpha_mode', - 'colorspace_settings'] + 'alpha_mode'] data.update(dumper.dump(datablock)) + data['colorspace'] = datablock.colorspace_settings.name + return data @staticmethod @@ -132,10 +131,7 @@ class BlImage(ReplicatedDatablock): if datablock.is_dirty: datablock.save() - if not data or (datablock and (datablock.name != data.get('name'))): - return True - else: - return False + return True _type = bpy.types.Image _class = BlImage diff --git a/multi_user/bl_types/bl_material.py b/multi_user/bl_types/bl_material.py index b142907..603856b 100644 --- a/multi_user/bl_types/bl_material.py +++ b/multi_user/bl_types/bl_material.py @@ -124,8 +124,7 @@ def dump_node(node: bpy.types.ShaderNode) -> dict: "show_preview", "show_texture", "outputs", - "width_hidden", - "image" + "width_hidden" ] dumped_node = node_dumper.dump(node) diff --git a/multi_user/handlers.py b/multi_user/handlers.py index bda3905..90f1bed 100644 --- a/multi_user/handlers.py +++ b/multi_user/handlers.py @@ -52,7 +52,8 @@ def sanitize_deps_graph(remove_nodes: bool = False): def update_external_dependencies(): """Force external dependencies(files such as images) evaluation """ - nodes_ids = [n.uuid for n in session.repository.graph.values() if n.data['type_id'] in ['WindowsPath', 'PosixPath']] + external_types = ['WindowsPath', 'PosixPath', 'Image'] + nodes_ids = [n.uuid for n in session.repository.graph.values() if n.data['type_id'] in external_types] for node_id in nodes_ids: node = session.repository.graph.get(node_id) if node and node.owner in [session.repository.username, RP_COMMON]: diff --git a/multi_user/operators.py b/multi_user/operators.py index cb69753..7279a0e 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -273,8 +273,7 @@ class SessionStartOperator(bpy.types.Operator): session_update = timers.SessionStatusUpdate() session_user_sync = timers.SessionUserSync() - session_background_executor = timers.MainThreadExecutor( - execution_queue=background_execution_queue) + session_background_executor = timers.MainThreadExecutor(execution_queue=background_execution_queue) session_listen = timers.SessionListenTimer(timeout=0.001) session_listen.register()