- stored the whole condition cached state into the allocated memory to allow state to be bitwise relocated
- made definition UObject, and store reference to the definition directly into the state
- keep instantiated definitions alive (create new object)
- added query invalidation handle which is used to invalidate the query
#rb Mieszko.Zielinski
#preflight 63872b143377450900b57a46
[CL 23325777 by mikko mononen in ue5-main branch]
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]
- Store weak pointer to the owner actor when Smart Object is initialized
- Pass owner actor to world conditions
- Changed Smart Object logging to use full names where applicable
#preflight 637e0f082a05dabce9c5cd0e
[CL 23248750 by mikko mononen in ue5-main branch]
- Fixed SmartObject test linking with World Conditions
- Corrected the handling of empty world conditions (checks or no errors)
- Added tests for empty conditions and failing activation
#jira UE-170467 FORT-540539
#preflight 637b3991fa348e84805ca372
[CL 23218783 by mikko mononen in ue5-main branch]
#rb Mieszko.Zielinski Luciano.Ferraro
#preflight 6375ef0b1c114bec053ccbe7
#preflight 6375fe028f4cb2e4dc8c4e4c
[CL 23174492 by mikko mononen in ue5-main branch]
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]
- added task to enable and disabled slots
- visualize disabled slots in Smart Object editor
#rb Luciano.Ferraro
#preflight 6364e3364b0e01486a464fa5
[CL 22985540 by mikko mononen in ue5-main branch]
There was a loophole that would partly register smart objects that did have a SmartObjectDefinition asset set, but the asset was not valid itself, and it resulted in failing an ensure while cleaning up the whole system on world end.
#preflight 63640e3fdc30a4ce961be2d1
[CL 22982893 by mieszko zielinski in ue5-main branch]
- Fixed hashing when adding shared fragment for smart object slot definition
- Added per slot Runtime Tags
- Added common event handling for Smart Object and Slot changes and events
- Added annotations, which are slot definition data that has visualization
- Added linked slot annotation which allows behavior reuse on slots
- Added editor only ID for each slot so that they can be identified during edits
- Added SmartObject slot reference type that can be used to reference other slots in the Smart Object
- Changed Smart Object bDisable to bEnabled
- Added separate enabled state for slots
- Changed Smart Object disable to send an event, not forcefully unclaim
- Added more visualization support for Smart Object editor (canvas, visualize annotations)
- Changed Smart Object editor to use the commonly transform for slots
- Remove Smart Object Component instance from the asset editor as it was not needed
#rb Stephen.Holmes
#preflight 6360f0cf63608aee36e01ba5
[CL 22888712 by mikko mononen in ue5-main branch]
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]
Before:
3548 unity files
Total CPU Time: 47343.578125 s
Total time in Parallel executor: 494.60 seconds
After:
3445 unity files
Total CPU Time: 46044.671875 s
Total time in Parallel executor: 468.51 seconds
#jira
#preflight 63336159b20e73a098b7f24f
[CL 22218213 by bryan sefcik in ue5-main branch]