Commit Graph

193 Commits

Author SHA1 Message Date
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
Mieszko Zielinski
94fd038521 Marked UMassUpdateISMProcessor as requiring game-thread execution, due to it relying on FMassRepresentationSubsystemSharedFragment which is marked for gamethread use only.
#rb trivial
#preflight skip

[CL 20318878 by Mieszko Zielinski in ue5-main branch]
2022-05-23 03:41:33 -04:00
robert manuszewski
f8a812a32f Converting hardcoded short class/enum names to pathnames ahead of ANY_PACKAGE removal
#rb trivial
#jira UE-99463
#preflight 6288fd998828ea88c8aef3d0

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20314896 via CL 20314897 via CL 20314903 via CL 20314904
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20315214 by robert manuszewski in ue5-main branch]
2022-05-22 10:30:02 -04:00
Yoan StAmant
dfab331fad [MassRepresentation] use more verbose names for MassVisualizer actors created from the MassRepresentationSubsystem subclasses.
#jira UE-151213
#rnx
#rb maxime.mercier
#preflight 6283f1f70a585259b1ac7131

[CL 20249756 by Yoan StAmant in ue5-main branch]
2022-05-17 15:50:35 -04:00
Mieszko Zielinski
76236ec52d Marked a number of Mass or Mass-used systems as save to be accessed off-game-thread.
Also added a dedicated traits template for shared fragments.

As part of implementation added a dedicated MassGameplay module for storing TMassExternalSubsystemTraits declared for subsystems external to Mass code that the MassGameplay plugin's modules are using.

#jira UE-152550
#review-20242604
#preflight 6283c6ed18591b86df9346e0
#preflight 6283f43f0a585259b1ac8e04

[CL 20249633 by Mieszko Zielinski in ue5-main branch]
2022-05-17 15:40:34 -04:00
Mieszko Zielinski
ae4776906b Marked up some queries and processors as requiring game-thread execution, also updated traits of some of the mass-used subsystems
#review-20221254
#preflight 628218f9046b81bf9393a52e

[CL 20221595 by Mieszko Zielinski in ue5-main branch]
2022-05-16 05:56:51 -04:00
Mieszko Zielinski
7e4d18a762 Fixed MassSmartObjectCandidatesFinderProcessor not registering its queries
#rb trivial
#preflight skip

[CL 20179599 by Mieszko Zielinski in ue5-main branch]
2022-05-13 07:26:40 -04:00
Mieszko Zielinski
606165b6d5 Added a way to mark up MassEntityQueries as owned by a processor and auto-registering such queries. Also added some verication code that ensures all queries run as part of processors are properly marked up as such.
This is a prerequisite step to support fetching processors' requirements.

Updated all the queries owned by processors at this moment.

#review-20178362
#preflight 627e2b2d9650a277336b85e1
#preflight 627e37860d2d1f6ed8be0d95

[CL 20179262 by Mieszko Zielinski in ue5-main branch]
2022-05-13 07:07:16 -04:00
mikko mononen
bf89452165 MassBehavior: Changed smart object eval into a task
- Removed MassStateTreeSmartObjectEvaluator and implemented it as a task
- changed slot claim to not set state on SmartObject user
- changed smart object use to have start/stop, and it's cached on the SmartObject user
- added filter options to find smart object
- made unnecessary properties hidden in editor

#jira UE-147508
#rb Yoan.StAmant
#preflight 627a21944b6e4b76c93b0690

[CL 20120024 by mikko mononen in ue5-main branch]
2022-05-10 05:06:33 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Mieszko Zielinski
977aad3ea6 Marked MassCharacterMovementTranslators as requiring to be run on game thread since it's accessing physics in a way requiring game-thread accces.
#rb trivial
#preflight skip

[CL 20102362 by Mieszko Zielinski in ue5-main branch]
2022-05-09 10:14:10 -04:00
Stephen Holmes
6d0c1712fa Fixes for MassReplication issues when adding and removing clients.
#review-20076335 Maxime.Mercier
#preflight 6278e90fae253d289f49eb4f

[CL 20101627 by Stephen Holmes in ue5-main branch]
2022-05-09 09:15:35 -04:00
Mieszko Zielinski
3654d50fb0 Renamed missed "system" occurences in the "subsystem requirements" code
#rb trivial
#preflight 626bf7d72660750c3ffd66ed

[CL 19979452 by Mieszko Zielinski in ue5-main branch]
2022-04-29 11:01:35 -04:00
Mieszko Zielinski
db36db1b79 Removed UMassLODProcessorBase due to it not serving an actual purpose
#review-19958544
#preflight 626b85245844306859468064

[CL 19975820 by Mieszko Zielinski in ue5-main branch]
2022-04-29 02:46:33 -04:00
Mieszko Zielinski
ac0cf7685f Uses of the new "system requirements"
The main point of the change is to get rid of processor-cached subsystem pointers and let queries declare their desired subsystem use so that we can arrange calculations accordingly and thread-safely for parallel processing (future work).

#review-19740043
#preflight 62691752487e11fc1d72b0cb

[CL 19936828 by Mieszko Zielinski in ue5-main branch]
2022-04-27 06:28:43 -04:00
Maxime Mercier
035f0f24af Fix static analysis
#jira UE-147662
#rb trivial
#preflight skip

[CL 19629390 by Maxime Mercier in ue5-main branch]
2022-04-05 15:20:45 -04:00
christopher waters
f8147b1889 Full set of fixes for non-unity non-pch builds after EngineTypes cleanup. This includes adjusting previous build fixes that introduced new includes that weren't actually necessary. Restored a few includes and wrapped them in UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_1 checks to maintain compatability.
Also includes fixes for other build issues as it's hard to separate them all.

#jira too many to list
#rb none
#preflight 6247d21073665f7d5e6c5a6c

[CL 19600818 by christopher waters in ue5-main branch]
2022-04-02 01:04:02 -04:00
Maxime Mercier
e443b7fcc0 Fix static analysis
#jira UE-147662
#rb trivial
#preflight skip trivial

[CL 19589534 by Maxime Mercier in ue5-main branch]
2022-04-01 11:50:00 -04:00
Maxime Mercier
fe9f2be8a7 Constifying the world parameter for EntityTemplate Building
#jira none
#rb trivial
#rnx
#preflight 6245bad4292f228e09032c68

[CL 19572615 by Maxime Mercier in ue5-main branch]
2022-03-31 10:34:13 -04:00
Maxime Mercier
f95c867834 Added an button in property grid to validate the entity config asset
#jira
#review-19564813
#preflight 6245af29f4217035fa8a5083

[CL 19571926 by Maxime Mercier in ue5-main branch]
2022-03-31 09:44:20 -04:00
Maxime Mercier
41239618ad Fixing fragment ownership and dependencies
#jira none
#review-19548373
#preflight 624464c7927e60e34152edcb

[CL 19556691 by Maxime Mercier in ue5-main branch]
2022-03-30 10:18:25 -04:00
Maxime Mercier
4134b5aea9 Trait fragment ownership and dependencies
#jira none
#review-19548110
#preflight 624462ff9f404234144ea9c1

[CL 19556535 by Maxime Mercier in ue5-main branch]
2022-03-30 10:07:58 -04:00
Mieszko Zielinski
8718e4cd1e NoPCH compilation fix for MassSpawner
#jira UE-146346
#rb trivial
#preflight skip

[CL 19467747 by Mieszko Zielinski in ue5-main branch]
2022-03-22 12:22:54 -04:00
yoan stamant
478d81a61b [SmartObject] handles for SmartObject and SmartObjectSlot passed by value
#rnx
#rb trivial
#preflight 62322b8c6e25767a218d46b0

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19410090 via CL 19412659 via CL 19426193 via CL 19426309
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19429514 by yoan stamant in ue5-main branch]
2022-03-17 19:07:54 -04:00
maxime mercier
e2eb919cf2 Fix some perf regression in sample
* Deleted un needed SampleCrowdVisualizationProcessor, saves 0.35 over 0.7ms) the visualization was done twice.
* Re-parallelize the LOD collection of the trafic with the crowd (Saves ~1.6ms on my local PC over 7.5ms)
* Augmented the size of the chunks to 128k because since we enable LWC it have afftected the number of entities per chunk (Mostly on the traffic saves ~1ms over 6ms)
* Found out that we were collecting all the parked vehicles LOD info because they were not using SimulationLOD, fixed by changing the method logics we call to know if we will need those distances.(Saves ~0.4ms over 0.7ms)
* Cleaned up some of the deleted parameters in mass ini file

#jira UE-145304
#rb mieszko.zielinski mikko.mononen
#rnx
#preflight 6228b936695c94f981d0d5ee
#lockdown nick.whiting

#ROBOMERGE-AUTHOR: maxime.mercier
#ROBOMERGE-SOURCE: CL 19320802 in //UE5/Release-5.0/... via CL 19324034
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19348063 by maxime mercier in ue5-main branch]
2022-03-10 21:52:06 -05:00