Asset Pipeline v2 #145
@ -25,6 +25,7 @@ class AssetTransferMapping:
|
||||
external_coll: bpy.types.Collection,
|
||||
local_tls: Set[str],
|
||||
):
|
||||
# TODO Check if any of the below properties can be removed
|
||||
self._local_col = local_coll
|
||||
self._external_col = external_coll
|
||||
self._local_tls = local_tls
|
||||
@ -59,6 +60,10 @@ class AssetTransferMapping:
|
||||
return
|
||||
return external_obj
|
||||
|
||||
def _check_obj_conflict(self, external_obj, local_obj):
|
||||
if external_obj.asset_id_owner != local_obj.asset_id_owner:
|
||||
self.conflict_objects.append(local_obj)
|
||||
|
||||
def _gen_object_map(self) -> Dict[bpy.types.Object, bpy.types.Object]:
|
||||
"""
|
||||
Tries to link all objects in source collection to an object in
|
||||
@ -69,24 +74,18 @@ class AssetTransferMapping:
|
||||
# Skip items with no owner
|
||||
if local_obj.asset_id_owner == "NONE":
|
||||
continue
|
||||
external_obj = self._get_external_object(local_obj)
|
||||
if not external_obj:
|
||||
continue
|
||||
# IF ITEM IS OWNED BY LOCAL TASK LAYERS
|
||||
if local_obj.asset_id_owner in self._local_tls:
|
||||
external_obj = self._get_external_object(local_obj)
|
||||
if external_obj:
|
||||
if external_obj.asset_id_owner != local_obj.asset_id_owner:
|
||||
self.conflict_objects.append(local_obj)
|
||||
object_map[external_obj] = local_obj
|
||||
self._check_obj_conflict(external_obj, local_obj)
|
||||
object_map[external_obj] = local_obj
|
||||
|
||||
# IF ITEM IS NOT OWNED BY LOCAL TASK LAYERS
|
||||
else:
|
||||
external_obj = self._get_external_object(local_obj)
|
||||
if external_obj:
|
||||
if external_obj.asset_id_owner != local_obj.asset_id_owner:
|
||||
self.conflict_objects.append(local_obj)
|
||||
object_map[local_obj] = external_obj
|
||||
else:
|
||||
# REMOVE OBJ NOT OWNED BY LOCAL TASK LAYER THAT HAS NO MATCH
|
||||
self.local_obj_to_remove.add(local_obj)
|
||||
self._check_obj_conflict(external_obj, local_obj)
|
||||
object_map[local_obj] = external_obj
|
||||
|
||||
# Find new objects to add to local_col
|
||||
for external_obj in self._external_col.all_objects:
|
||||
@ -168,6 +167,7 @@ class AssetTransferMapping:
|
||||
return True
|
||||
|
||||
def _gen_transfer_data_map(self):
|
||||
# TODO Clean up this mess
|
||||
context = bpy.context
|
||||
transfer_data_map: Dict[bpy.types.Collection, bpy.types.Collection] = {}
|
||||
temp_transfer_data = context.scene.asset_pipeline.temp_transfer_data
|
||||
|
Loading…
Reference in New Issue
Block a user