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 37 additions and 0 deletions
Showing only changes of commit 0641acc166 - Show all commits

View File

@ -9,9 +9,26 @@ from .asset_mapping import AssetTransferMapping
from . import constants from . import constants
def remove_old_ownership(obj, task_layer_name):
ownership = obj.transfer_data_ownership
to_remove = []
for item in ownership:
if constants.TASK_LAYER_KEYS[item["owner"]] == task_layer_name:
if not (
transfer_functions.verify_vertex_group(item)
or transfer_functions.verify_modifiers(item)
or transfer_functions.verify_modifiers(item)
):
to_remove.append(item.name)
for name in to_remove:
ownership.remove(ownership.keys().index(name))
def get_ownership(local_col: str, task_layer_name: str): def get_ownership(local_col: str, task_layer_name: str):
new_transfer_data: Dict[bpy.props.CollectionProperty, str, str, str, str] = {} new_transfer_data: Dict[bpy.props.CollectionProperty, str, str, str, str] = {}
for obj in local_col.all_objects: for obj in local_col.all_objects:
remove_old_ownership(obj, task_layer_name)
transfer_functions.get_vertex_groups(obj, task_layer_name, new_transfer_data) transfer_functions.get_vertex_groups(obj, task_layer_name, new_transfer_data)
transfer_functions.get_material_slots(obj, task_layer_name, new_transfer_data) transfer_functions.get_material_slots(obj, task_layer_name, new_transfer_data)
transfer_functions.get_modifiers(obj, task_layer_name, new_transfer_data) transfer_functions.get_modifiers(obj, task_layer_name, new_transfer_data)

View File

@ -8,6 +8,12 @@ from .. import asset_suffix, constants
# VERTEX GROUPS # VERTEX GROUPS
def verify_vertex_group(item):
obj = item.id_data
if item.type == constants.VERTEX_GROUP_KEY and obj.vertex_groups.get(item["name"]):
return True
def get_vertex_groups(obj, task_layer_name, new_transfer_data): def get_vertex_groups(obj, task_layer_name, new_transfer_data):
ownership = obj.transfer_data_ownership ownership = obj.transfer_data_ownership
for vertex_group in obj.vertex_groups: for vertex_group in obj.vertex_groups:
@ -55,6 +61,12 @@ def transfer_vertex_group(
# MODIFIERS # MODIFIERS
def verify_modifiers(item):
obj = item.id_data
if item.type == constants.MODIFIER_KEY and obj.modifiers.get(item["name"]):
return True
def get_modifiers(obj, task_layer_name, new_transfer_data): def get_modifiers(obj, task_layer_name, new_transfer_data):
ownership = obj.transfer_data_ownership ownership = obj.transfer_data_ownership
for mod in obj.modifiers: for mod in obj.modifiers:
@ -130,6 +142,14 @@ def transfer_modifier(item, obj_target):
# MATERIAL SLOT # MATERIAL SLOT
def verify_material_slot(item):
obj = item.id_data
if item.type == constants.MATERIAL_SLOT_KEY and obj.material_slots.get(
item["name"]
):
return True
def get_material_slots(obj, task_layer_name, new_transfer_data): def get_material_slots(obj, task_layer_name, new_transfer_data):
ownership = obj.transfer_data_ownership ownership = obj.transfer_data_ownership
for slot in obj.material_slots: for slot in obj.material_slots: