Commit Graph

16 Commits

Author SHA1 Message Date
henrik karlsson
9a1d5b1ad4 [Engine/Plugins]
* Ran IWYU on ~170 plugins to remove includes not needed. Public api still keep old includes inside #if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_2

#preflight 63d09351574ab9cae4670216
#rb none

[CL 23844750 by henrik karlsson in ue5-main branch]
2023-01-25 02:42:36 -05:00
mieszko zielinski
66a5a0a1f1 Removed the part of ADEPRECATED_SmartObjectCollection::PostLoad requesting the actor to be marked as garbage since the actor is being referenced by some unrelated code, and referencing garbage is undesired.
The actor should be cleaned out on save automatically since it's deprecated now. To make it clear to the end user updated the actor label to reflect its deprecation.

#preflight 6385c2e7766a2aeed2e0a549

[CL 23303069 by mieszko zielinski in ue5-main branch]
2022-11-29 05:02:39 -05:00
mieszko zielinski
bf25520ccc SmartObject collection rework, introducing a FSmartObjectContainer type that encapsulates SmartObjectComponent registration and storage. The SmartObjectSubsystem now stores a Container that aggregates all other containers supplied by loaded/streamed in SmartObjectPersistentCollection instances.
In addition:
* SmartObjectCollection got deprecated and there's a auto-update path triggered in SmartObjectCollection::PostLoad
* SmartObjectComponent component can opt out of being a part of a collection with `bCanBePartOfCollection`
* Right now we limit SmartObjects to be registered with at most a single Collection. This might change in the future if required.

Note that this is the first change in a series, we're going to support miltiple collections per level with convenient ways of assigning SmartObjects to individual collections.

#jira UE-168977
#preflight 637f8faa4004f73f627ecaca

#preflight 637fa5378b12eb83a77ad7d9

[CL 23262132 by mieszko zielinski in ue5-main branch]
2022-11-24 14:53:52 -05:00
mieszko zielinski
528c391411 SmartObject unit testing fix.
The fix involved an extensive rework of how the testing environment is being set up, to limit loaded UWorld's influence on the results, and in turn limit how tests affect SmartObjectSubsystem instantiated for the current world.

#preflight 6368c59e63037c1026540f38

[CL 23010255 by mieszko zielinski in ue5-main branch]
2022-11-07 09:57:31 -05:00
mieszko zielinski
cad6e9df0c Made a change to how we treat persistent-level placed SmartObjects that are not contained by the level's SmartObjectCollection
Also changed collection building to only include SOComponents in the persistent or the "always loaded" levels

#preflight 6343da651d5e6dbf75839ead

[CL 22431195 by mieszko zielinski in ue5-main branch]
2022-10-10 12:00:30 -04:00
yoan stamant
1d2876b4d0 [SmartObject] added editor command to clear collection
#rnx
#rb trivial

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 21108937 via CL 21108960 via CL 21108962
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21110307 by yoan stamant in ue5-main branch]
2022-07-15 10:50:18 -04:00
Patrick Enfedaque
29b0d13b58 SmartObject: Collection + SubsystemRendering can't be Copy/Pasted or Deleted
- Fixes failed check when copy pasting selection of actors that contain SmartObject actors

#jira none
#rb yohan.stamant
#preflight 62aa32de4a335ad67cbe6be6
#robomerge EngineMerge

[CL 20685632 by Patrick Enfedaque in ue5-main branch]
2022-06-16 08:26:40 -04:00
luciano ferraro
b6998b8dbf Changed the default value of bBuildOnDemand to true:
- avoids references being created in setups with multiple plugins and level overlays

[REVIEW] [at]Yoan.Stamant
[FYI] Bill.Colby, Scott.Maclean, Phil.Cole, Josselin.Francois, Loic.Devaux, Karl.Dubois, Gael.Leger

#ROBOMERGE-AUTHOR: luciano.ferraro
#ROBOMERGE-SOURCE: CL 20578553 via CL 20578795 via CL 20579295
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20582631 by luciano ferraro in ue5-main branch]
2022-06-09 15:07:59 -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
yoan stamant
4b56d97931 [SmartObject] added support for GameplayTags on runtime instance
+ SmartObjectComponent acts a bridge to sync tags from the RuntimeInstance and the AbilitySystemComponent (if present on the owning actor)
+ Component streamed out and back it will be bound with their persistent counterpart from the simulation and will synchronize their tags
+ RuntimeInstance and Slot now have a dedicated state when they are disabled when the instance tags don't pass the restrictions defined in the SmartObjectDefinition (ObjectTagFilter)
+ Made a pass to improve consistency in error reporting and methods descriptions
+ Added methods to validate if the object/slot associated to a FSmartObjectClaimHandle and FSmartObjectSlotHandle is still valid when those are stored and not used immediately after a call to any of the 'Find' or 'Claim' methods
#rnx
#rb mikko.mononen
#preflight 6230a0b4e65a7e65d68741e4

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19386803 via CL 19389419 via CL 19398538 via CL 19398590
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403765 by yoan stamant in ue5-main branch]
2022-03-16 03:47:02 -04:00
yoan stamant
04214fbc78 [SmartObject] allow custom definitions (FSmartObjectSlotDefinitionData) and transient state data (FSmartObjectSlotStateData) per slot using MassEntity
+ replaced all methods Describe by LexToString
+ unified naming from "*ID" to *Handle
#preflight 61e85d121000e8c59a78c886
#rb mikko.mononen

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18662203 in //UE5/Release-5.0/... via CL 18662234 via CL 18662264
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18662291 by yoan stamant in ue5-main branch]
2022-01-19 14:16:16 -05:00
Yoan StAmant
0733debda8 [SmartObjects] merged USmartObjectDefinition with FSmartObjectConfig and replaced references to config
#preflight 61a118b7664cbb92c762f37b

[CL 18301080 by Yoan StAmant in ue5-main branch]
2021-11-26 12:55:06 -05:00
Yoan StAmant
380fe67325 [SmartObject] SmartObjectConfig is no longer part of the component and content will instead be stored in a Definition asset.
#rb mikko.mononen
#preflight 61a0df88f70a9e92db9ac90f

[CL 18300133 by Yoan StAmant in ue5-main branch]
2021-11-26 09:52:13 -05:00
Yoan StAmant
fae6632da4 [SmartObjectColllection] change config lookup key type to UObject instead of AActor so components used by unit test can also work
#preflight 61957f254f57fbea79025b08
#rb maxime.mercier
#robomerge 5.0

[CL 18230600 by Yoan StAmant in ue5-main branch]
2021-11-17 17:54:31 -05:00
Yoan StAmant
8c6eb76fe0 [SmartObjects]
* Collection entry holds the Transform, Bounds and Index to the shared configuration. This removes the dependency on components being loaded to create runtime data for partitioned worlds.
* Removed commented references to SparseClassData since that approach won't be used (actor component not supported)
* Runtime data now points to a shared configuration from the collection instead of holding a copy
* Subsystem tracks components registered at runtime so the collection can be updated accordingly since those entries won't persist outside of loading range
* Moved most initialization code for the subsystem to the OnWorldComponentsUpdated callback since active level collection is set and actors from the persistent level registered.

[WorldPartitionBuilder]
* Added OnPartitionBuildStarted/OnPartitionBuildCompleted virtual methods
* New UWorldPartitionSmartObjectCollectionBuilder to build SmartObjectCollection in partitioned worlds

#preflight 61814a46fc786a0001447995
#jira UE-105113
#rb maxime.mercier
#robomerge FnMain

[CL 18019580 by Yoan StAmant in ue5-main branch]
2021-11-02 11:09:09 -04:00
mieszko zielinski
c019c2635f Moved GameplayBehaviors out of restricted folder over to Experimental
Moved SmartObjects out of restricted folder
Moved StateTree out of restricted folder
Moved ZoneGraph out of restricted folder
Moved ZoneGraphAnnotations out of restricted folder

#jira UE-115297

#ROBOMERGE-OWNER: mieszko.zielinski
#ROBOMERGE-AUTHOR: mieszko.zielinski
#ROBOMERGE-SOURCE: CL 17648223 via CL 17648246 via CL 17648261 via CL 17648385 via CL 17648390 via CL 17648742
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v875-17642767)

[CL 17648750 by mieszko zielinski in ue5-main branch]
2021-09-28 13:33:17 -04:00