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]
Took the opportunity:
- Renamed FTaskPipelinePostImport FTaskPostImport as it now includes the call to FinalizeObject_GameThread on factories
- Fixed issues when Interchange is used at runtime
- Only select InterchangeSceneImport asset in content browser when importing a scene
#jira UE-202783, UE-201353
#rb alexis.matte
[CL 30379715 by jeanluc corenthin in ue5-main branch]
Advanced copy, builds a list of depended assets, builds patching rules, and calls the AssetHeaderPatcher.
use `-ini:Engine:[ConsoleVariables]:AssetTools.UseHeaderPatchingAdvancedCopy=true` as cli option
#ushell-cherrypick of 28492015 by andrew.phillips
[CL 29144603 by andrew phillips in ue5-main branch]