Blender_bevy_components_wor.../tools/blenvy/assets/asset_helpers.py
kaosat.dev ec95ab5541 feat(Blenvy): a ton of minor & bigger improvements
* fixes & experiment to auto export
 * added support for "always export" functionality for blueprints & levels
 * fixed issues with asset management
 * fixed issues with tracker
 * more ui improvements (display of the number of assets etc)
 * a lot more minor tweaks
2024-06-05 17:09:03 +02:00

42 lines
1.7 KiB
Python

import json
def get_user_assets(scene_or_collection):
user_assets = getattr(scene_or_collection, 'user_assets', [])
return user_assets
def get_generated_assets(scene_or_collection):
generated_assets = getattr(scene_or_collection, 'generated_assets', [])
return generated_assets
def get_user_assets_as_list(scene_or_collection):
raw = get_user_assets(scene_or_collection)
result = []
for asset in raw:
result.append({"name": asset.name, "path": asset.path, "type": "MODEL", "internal": False, "parent": None})
return result
def upsert_asset(scene_or_collection, asset):
new_asset = scene_or_collection.user_assets.add()
new_asset.name = asset["name"]
new_asset.path = asset["path"]
def remove_asset(scene_or_collection, ref_asset):
print("to remove", ref_asset["path"], scene_or_collection.user_assets.find(ref_asset["path"]), scene_or_collection.user_assets)
removal_index = -1
for index, asset in enumerate(scene_or_collection.user_assets):
print("asset in list", asset.name, asset.path)
if asset.path == ref_asset["path"]:
print("FOUND", index)
removal_index = index
break
#scene_or_collection.user_assets.find(lambda x,y : print(x))
if removal_index != -1 :
print("REMOVE")
scene_or_collection.user_assets.remove(removal_index)
#scene_or_collection.user_assets.remove(scene_or_collection.user_assets.find(ref_asset["path"]))
def does_asset_exist(scene_or_collection, ref_asset):
user_assets = getattr(scene_or_collection, 'user_assets', [])
in_list = [asset for asset in user_assets if (asset.path == ref_asset["path"])]
in_list = len(in_list) > 0
return in_list