From 49857fdaf87058fe68b6c70dd6d4056c9729cd7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20David?= Date: Wed, 24 May 2023 16:29:50 +0200 Subject: [PATCH] Fix: Match override datablocks (#114) --- openpype/hosts/blender/api/plugin.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/blender/api/plugin.py b/openpype/hosts/blender/api/plugin.py index a612e53bb6b..2348f59875d 100644 --- a/openpype/hosts/blender/api/plugin.py +++ b/openpype/hosts/blender/api/plugin.py @@ -765,11 +765,14 @@ def _load_library_datablocks( if isinstance(d, bpy.types.Collection): override_datablocks.update(d.all_objects) - # Ensure user override NOTE: will be unecessary after BL3.4 for d in override_datablocks: + # Ensure user override NOTE: will be unecessary after BL3.4 if d and hasattr(d.override_library, "is_system_override"): d.override_library.is_system_override = False + # Set source_name + d["source_name"] = d.override_library.reference.name + # Add override datablocks to datablocks datablocks.update(override_datablocks) @@ -1188,9 +1191,8 @@ def replace_container( and old_datablock.get("source_name") == d.get("source_name") ), - key=lambda d: d.name_full, - # Library datablocks names are before override ones - reverse=True, + # Put source datablocks at the end + key=lambda d: 1 if d.library else 0, ) ), None,