Asset Pipeline v2 #145
@ -3,6 +3,8 @@ import bpy
|
||||
from . import transfer_functions, asset_suffix
|
||||
from pathlib import Path
|
||||
|
||||
# TODO refactor merge functions into a class based on AssetBuilder class of Asset Pipeline 1
|
||||
|
||||
|
||||
def update_transfer_data_ownership(transfer_data_item, target_obj: bpy.types.Object):
|
||||
transfer_data_ownership = target_obj.transfer_data_ownership
|
||||
@ -43,6 +45,7 @@ def update_task_layer_objects(
|
||||
transfer_objs: list[bpy.types.Object],
|
||||
):
|
||||
# Link new obj to collection
|
||||
# TODO implement remap ids
|
||||
for transfer_obj in transfer_objs:
|
||||
obj_root_name = transfer_obj.name
|
||||
transfer_obj.name = f"{obj_root_name}"
|
||||
@ -75,37 +78,31 @@ def merge_task_layer(
|
||||
|
||||
# Find Obj owned by other Current Task Layer
|
||||
source_transfer_objs = []
|
||||
source_transfer_data = []
|
||||
transfer_data = []
|
||||
for obj in source_col.objects:
|
||||
if obj.asset_id_owner not in local_tls:
|
||||
source_transfer_objs.append(obj)
|
||||
# Find Transfer-Data in other Task Layers
|
||||
for item in obj.transfer_data_ownership:
|
||||
if item.owner not in local_tls:
|
||||
source_transfer_data.append(item)
|
||||
transfer_data.append(item)
|
||||
update_task_layer_objects(target_col, source_transfer_objs)
|
||||
|
||||
local_objs = []
|
||||
local_transfer_data = []
|
||||
for obj in local_col.objects:
|
||||
if obj.asset_id_owner in local_tls:
|
||||
local_objs.append(obj)
|
||||
# Find Transfer-Data in other Task Layers
|
||||
for item in obj.transfer_data_ownership:
|
||||
if item.owner in local_tls:
|
||||
local_transfer_data.append(item)
|
||||
transfer_data.append(item)
|
||||
update_task_layer_objects(target_col, local_objs)
|
||||
|
||||
apply_transfer_data(
|
||||
context,
|
||||
source_transfer_data,
|
||||
transfer_data,
|
||||
target_col,
|
||||
)
|
||||
apply_transfer_data(
|
||||
context,
|
||||
local_transfer_data,
|
||||
target_col,
|
||||
) # TODO test if only one list of transfer data is needed
|
||||
bpy.ops.outliner.orphans_purge(
|
||||
do_local_ids=True, do_linked_ids=False, do_recursive=True
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user