Commit Graph

50 Commits

Author SHA1 Message Date
jamie dale
ec52d6575c Adding additional includes in preparation for removing a global include
#preflight skip
#rb none
#rnx

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 21286944 via CL 21293031 via CL 21293289 via CL 21293403
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21296407 by jamie dale in ue5-main branch]
2022-08-09 15:44:33 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Matt Peters
7ad238a806 AssetRegistry includes (Engine/Source): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270509a220f89f0ad573030

[CL 20016982 by Matt Peters in ue5-main branch]
2022-05-02 18:06:48 -04:00
ben hoffman
d36fd1b7cc Fix static analysis warning in subobject subsystem
#jira UE-149811
#rb trivial
#rnx
#preflight 6261c0f06119a1a496c3e677

[CL 19856185 by ben hoffman in ue5-main branch]
2022-04-21 17:21:26 -04:00
ben hoffman
3138e1a21c Fix a PVS warning in subobject editor
#jira none
#rb trivial
#rnx
#preflight skip

[CL 19557039 by ben hoffman in ue5-main branch]
2022-03-30 10:39:46 -04:00
ben hoffman
a53ba31ea0 Keep absolute location when reparenting a subobject in blueprints
#jira UE-147382
#rb marc.audy
#rnx
#preflight 62433961323cb7b991f0f01d

[CL 19544913 by ben hoffman in ue5-main branch]
2022-03-29 13:18:01 -04:00
marc audy
4ab0c3a671 Fix crashing when undoing a native component class change in a blueprint
Fix asserts as a result of replacing actor components without going through proper register/unregister lifecycle
Move logic for component class changing out of the details customization and in to the subobject data subsystem
#jira UE-114303
#preflight 621a7ca51d1c5017996c2a01
#rb ben.hoffman
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 19179312 in //UE5/Release-5.0/... via CL 19180540
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19204194 by marc audy in ue5-main branch]
2022-03-01 14:57:56 -05:00
ben hoffman
11d9f2db5b Fix an ensure that was caused when adding a runtime subobject to an editor only subobject.
#jira none
#rb marc.audy
#rnx
#preflight 61dc99354455f00ccd2eae99

#ROBOMERGE-AUTHOR: ben.hoffman
#ROBOMERGE-SOURCE: CL 18564998 in //UE5/Release-5.0/... via CL 18565017
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18565049 by ben hoffman in ue5-release-engine-test branch]
2022-01-10 16:02:14 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
ben hoffman
0775db0dbb [Subobject Editor] Use the correct previous subobject transform when conforming a subobject to it's new parent during reparenting. Previously it was incorrectly using the same "Dropped On" subobject (which would be the new parent) thus always giving it a relative position/rotation/scale of 0 when conforming.
#jira UE-126632
#rb colin.mcginley
#rb benjamin.fox
#rnx

#ROBOMERGE-AUTHOR: ben.hoffman
#ROBOMERGE-SOURCE: CL 17588190 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17588217 by ben hoffman in ue5-release-engine-test branch]
2021-09-21 17:03:29 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
ben hoffman
1394f1b0f2 Set the parent of non-scene components correctly when converting an instance to a blueprint
#jira UE-120632
#rb todo
#rnx
#p4v-preflight-copy 17105167

#ROBOMERGE-SOURCE: CL 17107844 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v854-17104634)

[CL 17107929 by ben hoffman in ue5-release-engine-test branch]
2021-08-09 17:18:52 -04:00
ben hoffman
2d502dcd91 When pasting a subobject, check to see if the desired parent is a scene component before allowing it to be the target of the paste. This prevents the incorrect parenting to the Actor root in the case of copy/pasting the default scene root.
#jira UE-119104
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16960122 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16960176 by ben hoffman in ue5-release-engine-test branch]
2021-07-26 15:40:01 -04:00
jamie dale
669facc986 Fixed some more places incorrectly testing against NAME_SIZE (as it includes the null terminator)
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16938866 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16938868 by jamie dale in ue5-release-engine-test branch]
2021-07-23 13:17:09 -04:00
ben hoffman
c649f6ad6c Change the behavior when pasting subobjects to attach to the selected subobject's parent instead of the subobject itself. This makes the pasting behavior between the blueprint and level instance editor the same.
#jira UE-118256
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16901336 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16901350 by ben hoffman in ue5-release-engine-test branch]
2021-07-20 16:00:57 -04:00
ben hoffman
1aa36d7898 Only try to find a scene component target to attach to if the pasted component is a scene component. Non-Scene components can only be attached to the root actor. This solves an issue where a pasted non-scene component could be incorrectly attached to the default scene root.
#jira UE-117883
#rb justin.hare
#rnx

#ROBOMERGE-SOURCE: CL 16900194 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16900254 by ben hoffman in ue5-release-engine-test branch]
2021-07-20 15:09:45 -04:00
ben hoffman
aa2e0d9b84 Check if the old scene root was the default scene root that is generated by every BP to determine if it should be deleted or not. This makes the behavior consistent with the old SCS Editor
#jira UE-117876
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16854709 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16854715 by ben hoffman in ue5-release-engine-test branch]
2021-07-14 16:24:38 -04:00
ben hoffman
07d1805279 CIS fix. Remove ParentObjData from an if statement because there is already a "check" on the variable above. Having it in the if statement was causing other uses of it to flag PVS
#jira none
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16854427 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16854439 by ben hoffman in ue5-release-engine-test branch]
2021-07-14 16:06:40 -04:00
ben hoffman
1cd9ae53b3 Add a flag to force deletion on subobjects so that when making a new scene root the CanDelete check will be bypassed.
This is needed because when the user drags a new scene component over the existing one, the old one should be deleted but is still marked as the SceneRoot (and cannot be deleted because we have to update the instances of the archetypes)

#jira UE-119151
#rb trivial
#rnx
#preflight 60edf5d0ef22fa000176acdf

#ROBOMERGE-SOURCE: CL 16843507 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16843526 by ben hoffman in ue5-release-engine-test branch]
2021-07-13 17:56:56 -04:00
ben hoffman
30db2503ac Replace an incorrect check for a child actor with a check for a child actor subtree object.
#jira none
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16840124 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16840239 by ben hoffman in ue5-release-engine-test branch]
2021-07-13 14:25:58 -04:00
ben hoffman
71c9ffb51e If the attachment point is a BP inherited subobject then find the correct archetype attachment point when adding subobjects to an instance
#rb marc.audy
#jira UE-117457
#jira UE-119112
#rnx
#preflight 60ec6955ef22fa000150f693

#ROBOMERGE-SOURCE: CL 16837795 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16837814 by ben hoffman in ue5-release-engine-test branch]
2021-07-13 11:22:30 -04:00
ben hoffman
1b38a5881b Instead of checking if something is a child actor component when attempting to maniuplate it, check if its owner is a CAC instead. If it's owner is a CAC, then it cannot be removed because it is determined by the owning CAC. Before, the code was incorrectly checking if something was just a plain old child actor component, resulting in being unable to delete, reparent, or attach to a child actor component.
#jira UE-117132
#jira UE-117332
#jira UE-117327
#jira UE-117329

#rb marc.audy
#rnx

#preflight 60d48296925f1400010bb909

#ROBOMERGE-SOURCE: CL 16773601 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16773618 by ben hoffman in ue5-release-engine-test branch]
2021-06-24 10:56:30 -04:00
ben hoffman
d2bd24b5d8 Use CopyPropertiesForUnrelatedObjects instead of a basic ObjectWriter/Reader combo when duplicating components to properly handle subobjects.
#jira UE-68780
#rb marc.audy
#rnx

#ROBOMERGE-SOURCE: CL 16751102 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16751116 by ben hoffman in ue5-release-engine-test branch]
2021-06-22 19:05:23 -04:00
ben hoffman
4fe12c7941 Correctly set the module path when creating a C++ class from the subobject data subsystem. This will correctly set the module path so that the error messages are correct from GameProjectUtils::AddCodeToProject. This will make the module selection the same as how the SNewClassDialog handles it for a more consistent and correct experience.
#jira UE-116994
#rnx
#rb phillip.kavan

#ROBOMERGE-SOURCE: CL 16748591 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16749157 by ben hoffman in ue5-release-engine-test branch]
2021-06-22 17:01:44 -04:00