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.
4 changed files with 44 additions and 16 deletions
Showing only changes of commit 39c40f0595 - Show all commits

View File

@ -4,12 +4,18 @@ from .. import constants
from .. import config
def get_default_task_layer(td_type: str, name=""):
def get_default_task_layer_owner(td_type: str, name="") -> [str, bool]:
if td_type == constants.ATTRIBUTE_KEY:
if name in config.DEFAULT_OWNERSHIP_ATTRIBUTES:
return config.DEFAULT_OWNERSHIP_ATTRIBUTES[name]['default_owner']
return (
config.DEFAULT_OWNERSHIP_ATTRIBUTES[name]['default_owner'],
config.DEFAULT_OWNERSHIP_ATTRIBUTES[name]['auto_surrender'],
)
print(config.DEFAULT_OWNERSHIP[td_type]['default_owner'])
return config.DEFAULT_OWNERSHIP[td_type]['default_owner']
return (
config.DEFAULT_OWNERSHIP[td_type]['default_owner'],
config.DEFAULT_OWNERSHIP[td_type]['auto_surrender'],
)
def get_transfer_data_owner(
@ -17,11 +23,13 @@ def get_transfer_data_owner(
td_type_key: str,
name="",
):
default_tl = get_default_task_layer(td_type_key, name)
default_tl, auto_surrender = get_default_task_layer_owner(td_type_key, name)
if default_tl in asset_pipe.get_local_task_layers():
return default_tl
# If the default owner is local to the file, don't use auto_surrender
return default_tl, False
else:
return asset_pipe.get_local_task_layers()[0]
# If the default owner is not local, pass auto surrender value
return asset_pipe.get_local_task_layers()[0], auto_surrender
def draw_task_layer_selection(

View File

@ -224,10 +224,11 @@ def init_modifiers(scene, obj):
asset_pipe = scene.asset_pipeline
td_type_key = constants.MODIFIER_KEY
transfer_data = obj.transfer_data_ownership
task_layer_owner = get_transfer_data_owner(
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe,
td_type_key,
)
for mod in obj.modifiers:
mod.name = task_layer_prefix_name_get(mod.name, task_layer_owner)
# Only add new ownership transfer_data_item if vertex group doesn't have an owner
@ -238,6 +239,7 @@ def init_modifiers(scene, obj):
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)
@ -324,7 +326,7 @@ def init_constraints(scene, obj):
td_type_key = constants.CONSTRAINT_KEY
transfer_data = obj.transfer_data_ownership
asset_pipe = scene.asset_pipeline
task_layer_owner = get_transfer_data_owner(
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe,
td_type_key,
)
@ -338,6 +340,7 @@ def init_constraints(scene, obj):
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)
@ -438,11 +441,16 @@ def init_material_slots(scene, obj):
matches = check_transfer_data_entry(transfer_data, name, td_type_key)
# Only add new ownership transfer_data_item if vertex group doesn't have an owner
if len(matches) == 0:
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe,
td_type_key,
)
asset_pipe.add_temp_transfer_data(
name=name,
owner=get_transfer_data_owner(asset_pipe, td_type_key),
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)
@ -702,11 +710,15 @@ def init_attributes(scene, obj):
# Only add new ownership transfer_data_item if vertex group doesn't have an owner
matches = check_transfer_data_entry(transfer_data, atttribute.name, td_type_key)
if len(matches) == 0:
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe, td_type_key, atttribute.name
)
asset_pipe.add_temp_transfer_data(
name=atttribute.name,
owner=get_transfer_data_owner(asset_pipe, td_type_key, atttribute.name),
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)
@ -774,11 +786,16 @@ def init_parent(scene, obj):
matches = check_transfer_data_entry(transfer_data, name, td_type_key)
# Only add new ownership transfer_data_item if vertex group doesn't have an owner
if len(matches) == 0:
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe,
td_type_key,
)
asset_pipe.add_temp_transfer_data(
name=name,
owner=get_transfer_data_owner(asset_pipe, td_type_key),
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)

View File

@ -110,12 +110,14 @@ def transfer_data_item_init(
# Only add new ownership transfer_data_item if vertex group doesn't have an owner
matches = check_transfer_data_entry(transfer_data, item.name, td_type_key)
if len(matches) == 0:
asset_pipe.add_temp_transfer_data(
name=item.name,
owner=get_transfer_data_owner(
task_layer_owner, auto_surrender = get_transfer_data_owner(
asset_pipe,
td_type_key,
),
)
asset_pipe.add_temp_transfer_data(
name=item.name,
owner=task_layer_owner,
type=td_type_key,
obj=obj,
surrender=auto_surrender,
)

View File

@ -74,13 +74,14 @@ class AssetPipeline(bpy.types.PropertyGroup):
temp_transfer_data: bpy.props.CollectionProperty(type=AssetTransferDataTemp)
def add_temp_transfer_data(self, name, owner, type, obj):
def add_temp_transfer_data(self, name, owner, type, obj, surrender):
new_transfer_data = self.temp_transfer_data
transfer_data_item = new_transfer_data.add()
transfer_data_item.name = name
transfer_data_item.owner = owner
transfer_data_item.type = type
transfer_data_item.obj = obj
transfer_data_item.surrender = surrender
## NEW FILE