- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
Set use HeaderPatching as true by default for CopyProjectWithHeaderPatching. AdvancedCopy still disables header patching (to be enabled in a follow-up change)
#rnx
#rb Dave.Belanger
[FYI] Francis.Hurteau
#p4v-cherrypick 36706626, 36741243
[CL 36858806 by kevin macaulayvacher in 5.5 branch]
[FYI] kevin.macaulayvacher
Original CL Desc
-----------------------------------------------------------------
Changes FAssetHeaderPatcherInner to leverage the CoreRedirect system for resolving FNames in a package header, and string paths when context about the string itself is well known (i.e. we know the string data is a stringified ObjectPath/PackagePath, or ObjectName are deducible). We still make use of string scanning replacement mechanism but those are now constrained to only patching strings content specifically (e.g. Tag data)
- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
New patching changes are left disabled by default
#rnx
#rb Dave.Belanger, JeanFrancois.Dube
[CL 36764539 by kevin macaulayvacher in 5.5 branch]
- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
New patching changes are left disabled by default
#rnx
#rb Dave.Belanger, JeanFrancois.Dube
[CL 36764489 by kevin macaulayvacher in 5.5 branch]
Add folder and asset colors to TEDS
Remove the ItemName_ExperimentalColumn and replace with FNameColumn
Add extension utils to the CB to get/set folder colors
Add a new FFolder tag used by path rows
Remove test asset data and repurpose AssetProcessors.cpp to sync asset/folder data to and from TEDS
Modify the AssetDataLabel widget to show folder/asset colors
TEDS UI:
Add a new FSlateColor column and create a widget to view/edit it
#jira UE-221631
#rb Julien.StJean
[CL 36039406 by aditya ravichandran in ue5-main branch]
- Rename IAssetTools::GetMappingsForRootPackageRename to GetPatchCopyMappingsForRootRename for clarity
#rb Francis.Hurteau, kevin.macaulayvacher
#rnx
[CL 35562044 by dave belanger in ue5-main branch]
Correction for External(Objects|Actors) path destination path generation.
#rb Francis.Hurteau, kevin.macaulayvacher, Richard.Malo
[CL 35418159 by andrew phillips in ue5-main branch]
Addition fix for when copying to a name_[0-9]+ project.
Additional better logging should the FName writter fail. (now unlinky due to additional FName table entries being genorated on demand.)
#rb kevin.macaulayvacher
[CL 34670457 by andrew phillips in ue5-main branch]
[FYI] kevin.macaulayvacher
Original CL Desc
-----------------------------------------------------------------
Submitting on behalf of andrew.phillips: Fix for Header patching copy of Grey Box level.
Changes NameTable patching to use full DisplayName for FNames when patching to preserve any number that may need patching. FNames are then given a sentinel number value to ensure the number is not stripped when inspecting the PlainStringName of the FName. NameTable entries don't maintain numbers for FNames so the sentinel value of '1' will be ignored come serialization time.
#rnx
[FYI] andrew.phillips, Francis.Hurteau
[CL 34622969 by kevin macaulayvacher in ue5-main branch]