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 35 additions and 14 deletions
Showing only changes of commit c2f0b4c6a7 - Show all commits

View File

@ -1,5 +1,5 @@
import bpy
from .transfer_data import transfer_core, transfer_functions
from .transfer_data import transfer_core
from . import asset_suffix
from pathlib import Path
@ -12,7 +12,6 @@ from . import constants
def ownership_transfer_data_cleanup(
obj: bpy.types.Object, task_layer_name: str
) -> None:
# TODO MOVE TRANSFER DATA SPECIFIC STUFF TO TRANSFER CORE
"""Remove Transfer Data ownership items if the corrisponding data is missing
Args:
@ -23,12 +22,7 @@ def ownership_transfer_data_cleanup(
to_remove = []
for item in ownership:
if constants.TASK_LAYER_KEYS[item["owner"]] == task_layer_name:
if (
transfer_functions.vertex_group_is_missing(item)
or transfer_functions.modifiers_is_missing(item)
or transfer_functions.material_slot_is_missing(item)
or transfer_functions.constraints_is_missing(item)
):
if transfer_core.transfer_data_is_missing(item):
to_remove.append(item.name)
for name in to_remove:
@ -40,7 +34,6 @@ def ownership_get(
task_layer_name: str,
temp_transfer_data: bpy.types.CollectionProperty,
) -> list[bpy.types.Object]:
# TODO MOVE TRANSFER DATA SPECIFIC STUFF TO TRANSFER CORE
"""Find new transfer data owned by the local task layer.
Marks items as owned by the local task layer if they are in the
corrisponding task layer collection and have no owner.
@ -69,10 +62,7 @@ def ownership_get(
invalid_objs.append(obj)
continue
ownership_transfer_data_cleanup(obj, task_layer_name)
transfer_functions.get_vertex_groups(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_material_slots(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_modifiers(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_constraints(obj, task_layer_name, temp_transfer_data)
transfer_core.get_transfer_data(obj, task_layer_name, temp_transfer_data)
return invalid_objs

View File

@ -10,7 +10,7 @@ def copy_transfer_data_ownership(
"""Copy transfer data item to object if non entry exists
Args:
transfer_data_item (_type_): Item of bpy.types.CollectionProperty from source object
transfer_data_item: Item of bpy.types.CollectionProperty from source object
target_obj (bpy.types.Object): Object to add transfer data item to
"""
ownership = target_obj.transfer_data_ownership
@ -24,6 +24,37 @@ def copy_transfer_data_ownership(
)
def transfer_data_is_missing(transfer_data_item) -> bool:
"""Check if Transfer Data item is missing
Args:
transfer_data_item: Item of class ASSET_TRANSFER_DATA
Returns:
bool: bool if item is missing
"""
return bool(
transfer_functions.vertex_group_is_missing(transfer_data_item)
or transfer_functions.modifiers_is_missing(transfer_data_item)
or transfer_functions.material_slot_is_missing(transfer_data_item)
or transfer_functions.constraints_is_missing(transfer_data_item)
)
def get_transfer_data(obj: bpy.types.Object, task_layer_name: str, temp_transfer_data):
"""Collect Transfer Data Items on a given object
Args:
obj (bpy.types.Object): Target object for transfer data
task_layer_name (str): Name of task layer
temp_transfer_data: Item of class ASSET_TRANSFER_DATA_TEMP
"""
transfer_functions.get_vertex_groups(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_material_slots(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_modifiers(obj, task_layer_name, temp_transfer_data)
transfer_functions.get_constraints(obj, task_layer_name, temp_transfer_data)
def apply_transfer_data(context: bpy.types.Context, transfer_data_map) -> None:
"""Apply all transfer data from transfer data map onto objects.
Copies any transfer data owned by local layer onto objects owned by external layers.