Asset Pipeline v2 #145

Closed
Nick Alberelli wants to merge 431 commits from (deleted):feature/asset-pipeline-v2 into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
2 changed files with 27 additions and 6 deletions
Showing only changes of commit 794a120413 - Show all commits

View File

@ -32,7 +32,7 @@ def ownership_transfer_data_cleanup(
def ownership_get( def ownership_get(
local_col: bpy.types.Collection, local_col: bpy.types.Collection,
scene: bpy.types.Scene, scene: bpy.types.Scene,
) -> list[bpy.types.Object]: ) -> None:
"""Find new transfer data owned by the local task layer. """Find new transfer data owned by the local task layer.
Marks items as owned by the local task layer if they are in the Marks items as owned by the local task layer if they are in the
corrisponding task layer collection and have no owner. corrisponding task layer collection and have no owner.
@ -47,7 +47,6 @@ def ownership_get(
list[bpy.types.Object]: Returns a list of objects that have no owner and will not be included list[bpy.types.Object]: Returns a list of objects that have no owner and will not be included
in the merge process in the merge process
""" """
invalid_objs = []
task_layer_name = scene.asset_pipeline.task_layer_name task_layer_name = scene.asset_pipeline.task_layer_name
task_layer_col_name = get_dict_tuple_item( task_layer_col_name = get_dict_tuple_item(
constants.TASK_LAYER_TYPES, task_layer_name constants.TASK_LAYER_TYPES, task_layer_name
@ -60,13 +59,10 @@ def ownership_get(
obj.asset_id_owner = task_layer_name obj.asset_id_owner = task_layer_name
# Skip items that have no owner # Skip items that have no owner
if obj.asset_id_owner == "NONE": if obj.asset_id_owner == "NONE":
invalid_objs.append(obj)
continue continue
ownership_transfer_data_cleanup(obj, task_layer_name) ownership_transfer_data_cleanup(obj, task_layer_name)
transfer_core.init_transfer_data(scene, obj) transfer_core.init_transfer_data(scene, obj)
return invalid_objs
def ownership_set(temp_transfer_data: bpy.types.CollectionProperty) -> None: def ownership_set(temp_transfer_data: bpy.types.CollectionProperty) -> None:
"""Add new transfer data items on each object found in the """Add new transfer data items on each object found in the
@ -83,6 +79,30 @@ def ownership_set(temp_transfer_data: bpy.types.CollectionProperty) -> None:
) )
def get_invalid_objects(
local_col: bpy.types.Collection,
scene: bpy.types.Scene,
) -> list[bpy.types.Object]:
# TODO Add Docstring
# TODO Make common function to get task layer col via task layer name
task_layer_name = scene.asset_pipeline.task_layer_name
task_layer_col_name = get_dict_tuple_item(
constants.TASK_LAYER_TYPES, task_layer_name
)[1]
task_layer_col = local_col.children.get(task_layer_col_name)
invalid_obj = []
for obj in scene.objects:
if obj.asset_id_owner == "NONE":
invalid_obj.append(obj)
if (
obj not in list(task_layer_col.all_objects)
and obj.asset_id_owner == task_layer_name
):
invalid_obj.append(obj)
return invalid_obj
def remap_user(source_datablock: bpy.data, target_datablock: bpy.data) -> None: def remap_user(source_datablock: bpy.data, target_datablock: bpy.data) -> None:
"""Remap datablock and append name to datablock that has been remapped """Remap datablock and append name to datablock that has been remapped

View File

@ -130,7 +130,8 @@ class ASSETPIPE_OT_sync_with_publish(bpy.types.Operator):
self.report({'ERROR'}, "Current File Name doesn't contain valid task layer") self.report({'ERROR'}, "Current File Name doesn't contain valid task layer")
return {'CANCELLED'} return {'CANCELLED'}
self._invalid_objs = core.ownership_get(local_col, context.scene) core.ownership_get(local_col, context.scene)
self._invalid_objs = core.get_invalid_objects(local_col, context.scene)
# Default behaviour is to pull before pushing # Default behaviour is to pull before pushing
if self.push: if self.push: