Fixed a problem when loading the same object multiple times

This commit is contained in:
Simone Barbieri 2021-07-01 15:02:01 +01:00
parent acf4c8bf19
commit 6ad2daeee9
2 changed files with 9 additions and 5 deletions

View file

@ -78,13 +78,13 @@ class BlendModelLoader(plugin.AssetLoader):
for obj in objects:
local_obj = plugin.prepare_data(obj, group_name)
if obj.type != 'EMPTY':
if local_obj.type != 'EMPTY':
plugin.prepare_data(local_obj.data, group_name)
for material_slot in local_obj.material_slots:
plugin.prepare_data(material_slot.material, group_name)
if not obj.get(AVALON_PROPERTY):
if not local_obj.get(AVALON_PROPERTY):
local_obj[AVALON_PROPERTY] = dict()
avalon_info = local_obj[AVALON_PROPERTY]
@ -92,6 +92,8 @@ class BlendModelLoader(plugin.AssetLoader):
objects.reverse()
bpy.data.orphans_purge(do_local_ids = False)
bpy.ops.object.select_all(action='DESELECT')
return objects

View file

@ -91,7 +91,7 @@ class BlendRigLoader(plugin.AssetLoader):
for obj in objects:
local_obj = plugin.prepare_data(obj, group_name)
if obj.type == 'MESH':
if local_obj.type == 'MESH':
plugin.prepare_data(local_obj.data, group_name)
if obj != local_obj:
@ -102,7 +102,7 @@ class BlendRigLoader(plugin.AssetLoader):
for material_slot in local_obj.material_slots:
if material_slot.material:
plugin.prepare_data(material_slot.material, group_name)
elif obj.type == 'ARMATURE':
elif local_obj.type == 'ARMATURE':
plugin.prepare_data(local_obj.data, group_name)
if action is not None:
@ -118,7 +118,7 @@ class BlendRigLoader(plugin.AssetLoader):
for t in v.targets:
t.id = local_obj
if not obj.get(AVALON_PROPERTY):
if not local_obj.get(AVALON_PROPERTY):
local_obj[AVALON_PROPERTY] = dict()
avalon_info = local_obj[AVALON_PROPERTY]
@ -126,6 +126,8 @@ class BlendRigLoader(plugin.AssetLoader):
objects.reverse()
bpy.data.orphans_purge(do_local_ids = False)
bpy.ops.object.select_all(action='DESELECT')
return objects