* Sync function was not taking into account unregistered AssetDefinitions - the fix is to iterate the AssetTypeActions also and find corresponding AssetDefinitions and remove if there is none.
* SAssetFilterBar caches AssetDefinitions - added a notification for when the AssetDefinitionRegistry changes. Put the broadcast on a one-shot ticker instead of directly calling as the Register/Unregister can occur frequently. Breaks up the callback depth.
* Added a "Version" to AssetDefinitionRegistry as clients were using the number of assets as a version. This can fall over if there is an Add and Remove between two calls to GetAllAssetDefinitions.
#jira UE-213686
#rb aditya.ravichandran, jered.mcferron
[CL 33704087 by logan buchy in ue5-main branch]
AssetTools.cpp is the substance for this fix.
ValkyrieProjectManager and DuplicatePluginCommandlet are for testing on Horde.
#rb Francis.Hurteau
[CL 33573769 by andrew phillips in ue5-main branch]
This fix an issue where the import of an asset pack would cause one of the CB to loose its setting because the tab was open to early in the engine boot cycle.
#jira UE-212259
#rb Alexis.Matte
[CL 33546452 by julien stjean in ue5-main branch]
This changelist adds a new function to asset tools in order to export assets using their clean file name. Without this change, the assets are exported to their desired destination -- but the asset is copied over nested in it's entire existing path
I also added this as an entirely new method in order to avoid changing all of the other call sites where `ExportAssets` was being used.
#tests
-Ran editor locally, confirmed using this new method exported assets using the new function
#rnx
[REVIEW] [at]jay.nakai, [at]michael.ekberg, [at]jay.thrash, [at]fernando.pereira, [at]jonathan.younger
#rb geoffrey.wong, michael.ekberg
[CL 33357074 by liz barrett in ue5-main branch]
Store paths in permission lists in TDirectoryTree so that checks scale with path depth rather than number of paths.
Add PassesStartsWithFilterRecursive which can return whether a Fail/Pass result for a particular path can be followed by a Pass/Fail result for a child path. (e.g. a path is allowed and there are no explicit denials for any children of that path)
Deprecate GetDenyList and GetAllowList.
Add unit tests for FPathPermissionList.
#rb Julien.StJean, Rex.Hill
[CL 32868537 by robert millar in ue5-main branch]
One was caused by the import validation not accounting for the package remapping when validating the class of the import in the linkerload.
The other was caused by some code in the open world tech that asked the asset registry to scan for a file that doesn't exist. This one is resolved by putting the flag to tell the engine that the instanced package from migration don't have on disk file.
#jira UE-209054
#rb JeanLuc.Corenthin, Francis.Hurteau
[CL 32792908 by julien stjean in ue5-main branch]
Requires
Valkyrie.CopyProjectUsingAssetHeaderPatching true
Valkyrie.UseAssetToolsHeaderPatching true
There are 2 parts to the fix.
1. The header patcher now detects if the new string has the _$number, and uses the parsing constructor which sets the FNames number consistently. else it uses the original number in that particular FName.
2. The generation of the patching maps now look for sources that have the _$number, and create entries with those stripped.
#rb Francis.Hurteau
[CL 32502290 by andrew phillips in ue5-main branch]
- Ground work for full support of moving an actor from one External Data Layer to another
- Fixes the Save Package dialog not showing the last valid actor's display name (instead was showing the package name)
- Fixes empty packages not properly cleaned up by ULevel::CleanupLevel
- Changing level's bUseExternalActors from true to false and reloading the level without saving now properly works
#rb jeanfrancois.dube
[CL 32209376 by richard malo in ue5-main branch]
- AssetTools.cpp add a case to only copy the selected assets and ignore the dependencies (usecase for automation)
- Added BP example that implements the scripted asset action with the new migrationOption
#rb Julien.StJean, Takashi.Kuribayashi
[FYI] Michael.Lentine
#tests
[CL 31930249 by yafes sahin in ue5-main branch]
Also I moved the permissions logic closer to the code that actually handle the import.
#rb Alexis.Matte
[CL 31685813 by julien stjean in ue5-main branch]
Based on CL 30214572
Addeds Patching call to IAssetTools.
Consumes the call in a task in the DuplicatePluginCommandlet
#jira UE-199075
#rb Justin.Marcus
[CL 30595853 by andrew phillips in ue5-main branch]
Don't move an asset if it cannot be made public or if it ends up referencing a private asset that's not being moved or if a dependent asset cannot be moved to a different plugin
Only enabled if AssetTools.EnablePublicAssetFeature cvar is set (which replaces ContentBrowser.PublicAsset.EnablePublicAssetFeature)
#rb Rex.Hill
#rnx
[CL 30595439 by dave belanger in ue5-main branch]