Commit Graph

39 Commits

Author SHA1 Message Date
Mieszko Zielinski
23e2dffb20 Made FMassEntityManager a FGCObject to avoid requiring owners to call AddReferencedObjects manually
#review-21677180
#preflight 630ccbede1124837752a8e7f

[CL 21677985 by Mieszko Zielinski in ue5-main branch]
2022-08-29 11:12:18 -04:00
Mieszko Zielinski
9abf914e39 Added another flavor of FMassEntityManager::GetOrCreateConstSharedFragment that makes for more consistent hash calculation (the function itself is calculating it)
Updated most callsites to use the new version. Only two traffic use cases left untouched due to non-trivial hash calculation.

#review-21485588
#preflight 630614210061f895d03e3f4e

[CL 21538494 by Mieszko Zielinski in ue5-main branch]
2022-08-24 08:35:42 -04:00
Mieszko Zielinski
4e2ff2ef25 MassEntityManager moved to a separate file.
Updated header inclusion after moving MassEntityManager into a separate file

#rb none
#preflight 62f662301e61d1ba0e8580ad

[CL 21355128 by Mieszko Zielinski in ue5-main branch]
2022-08-12 10:47:11 -04:00
Mieszko Zielinski
d69aa84834 Separated "entity management" and USubsystem stuff of UMassEntityManager. Now UMassEntityManager hosts a shared ref of newly created FMassEntityManager, and users are free to create their own FMassEntityManager instances to create isolated entity pools.
Updated Mass code to reflect FMassEntityManager introduction

#jira UE-147658
#review-21335324
#review-21335330
#preflight 62f6384acf7afa018b93b9b5

[CL 21353355 by Mieszko Zielinski in ue5-main branch]
2022-08-12 07:56:27 -04:00
Yoan StAmant
43960896b6 [SmartObject] fixed unit tests when SmartObjectCollection is set to build on demand
#jira UE-156476
#rnx
#rb mieszko.zielinski, maxime.mercier
#robomerge EngineMerge
#preflight 62a8d560a43e20b2935635de

[CL 20654838 by Yoan StAmant in ue5-main branch]
2022-06-14 15:16:17 -04:00
JeanFrancois Dube
a28fdcfe97 World Partition:
- Deprecate UWorldPartition::GetWorldBounds and add GetRuntimeWorldBounds along with GetEditorWorldBounds, maintained by the editor hash.
- World Partition editor now shows the runtime world size instead of the editor world size, which makes more sense to the user.

#rb sebastien.lussier
#preflight 62a74476e83d4c62de7f2b62
#rnx

[CL 20627192 by JeanFrancois Dube in ue5-main branch]
2022-06-13 10:49:55 -04:00
Yoan StAmant
47e097a6ce [SmartObject] do not spawn more than one rendering actor when OnWorldComponentsUpdated gets called more than once
#rnx
#preflight 627ac92e0a5817c9d912b645

[CL 20129055 by Yoan StAmant in ue5-main branch]
2022-05-10 16:35:49 -04:00
robert millar
a5e3c40984 Destroy smart object collection actor rather than using MarkAsGarbage so the level doesn't keep a garbage reference to it.
#rb Yoan.Stamant

#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 20085563 via CL 20086158 via CL 20086252 via CL 20086322
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20108309 by robert millar in ue5-main branch]
2022-05-09 15:04:45 -04:00
Yoan StAmant
c9e58d56af Do not attempt to unregister from simulation or unbind SmartObjectComponent that were not registered (e.g. invalid definition)
#rnx
#rb trivial
#preflight 626c27222660750c3f05d3dd

[CL 19982673 by Yoan StAmant in ue5-main branch]
2022-04-29 14:19:34 -04:00
Yoan StAmant
895d615f85 [SmartObject] do not attempt to remove component from simulation if they were not registered (e.g. invalid definition)
#rnx
#rb none
#preflight skip

[CL 19946836 by Yoan StAmant in ue5-main branch]
2022-04-27 16:53:50 -04:00
Yoan StAmant
83f8306c54 [SmartObject] updated error reporting regarding missing collection in non-editor builds since we can't assume a missing collection will be created during cooking.
#jira UE-149283
#rnx
#rb mieszko.zielinski
#preflight 6268354a430b9997ebe78d4f

[CL 19925660 by Yoan StAmant in ue5-main branch]
2022-04-26 14:39:26 -04:00
yoan stamant
405c0df0c3 [SmartObject] added CVar to be able to completly disable runtime initialization.
Note that this needs to be set before lauching the game and doesn't support to be toggled at runtime.
#rnx
#rb josselin.francois
#preflight 624af6089f40423414926c41

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19609030 via CL 19609331 via CL 19609513
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19611700 by yoan stamant in ue5-main branch]
2022-04-04 13:22:01 -04:00
yoan stamant
91b9324d52 [SmartObject] UnregisterSmartObjectActor/Component removes the associated runtime instance from the simulation.
#rnx
#b josselin.francois
#preflight 6244899fc61d8a458f3ddeca

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19560699 via CL 19560702 via CL 19560708
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19562453 by yoan stamant in ue5-main branch]
2022-03-30 15:13:42 -04:00
marc audy
cd7919c4e7 Correct some inconsistencies with Dev-EngineMerge
#rnx

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 19531108 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532836 by marc audy in ue5-main branch]
2022-03-28 16:31:36 -04:00
yoan stamant
7641c72060 [SmartObject] updated API to remove all ensure and allow caller to provide unset handle or handle to object/slots that may not longer be registered in the simulation.
#rnx
#rb mikko.mononen
#rb josselin.francois
#preflight 623385990820efd0945e69d2

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19425613 via CL 19431559 via CL 19435646 via CL 19436095
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19437148 by yoan stamant in ue5-main branch]
2022-03-18 12:31:49 -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
Mieszko Zielinski
3b7899bd86 Mass batching-focused API changes. "Old" mass commands completely removed and reimplemented as batched commands using the new batched API.
Also renamed:
FMassArchetypeSubChunks -> FMassArchetypeEntityCollection
FSubChunkInfo -> FArchetypeEntityRange
FArchetypeChunkCollectionWithPayload -> FMassArchetypeEntityCollectionWithPayload

One noteworthy CitySample's mass traffic code change:
FMassTrafficSimpleVehiclePhysicsTemplate.SimpleVehiclePhysicsFragmentTemplate changed from FInstancedStruct to FMassTrafficVehiclePhysicsFragmen since that's the only type ever used.

#review-19288149
#review-19268063
#review-19268048
#review-19268070
#review-19268239
#review-19267967
#preflight 6227720331133a23da452d70

[CL 19302836 by Mieszko Zielinski in ue5-main branch]
2022-03-08 10:30:07 -05:00
yoan stamant
9116dc7413 [SmartObject] access to activity tags should go through SmartObjectSlotView
+ Tags Filtering Policy now only affect TagQueries from the definitions and applied to UserTags provided by requests
+ Tags Merging Policy added for Activity Tags
#rnx
#rb josselin.francois
#preflight 621fab91257fd6e0996de3b2

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19225863 via CL 19236663 via CL 19236832 via CL 19236900
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19237559 by yoan stamant in ue5-main branch]
2022-03-02 22:33:53 -05:00
yoan stamant
05a440dcfb [SmartObject] added some Tags filtering policy
+ added activityTags in slot
+ added unit test for tag filtering and fixed unit tests messages
+ preview mesh and actor class are no longer exposed to the user in the definition asset (they should only be used by the editor for preview)
+ misc API cleanup and simplifications
#rnx
#rb mikko.mononen
#preflight 621e6a9dca28c5563431e601

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19204358 via CL 19212259 via CL 19212264 via CL 19212779
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19224407 by yoan stamant in ue5-main branch]
2022-03-02 13:25:37 -05:00
yoan stamant
7a006b2a96 [SmartObject]
- Maintain SmartObjectAnnotations up-to-date when dirtying collection
- Converted ensure to error log for null definition found while validating Definition from the SmartObjectCollection. Some data manipulations might create this scenario so warning the user with a proposed solution is more appropriate.
#rnx
#rb stephen.holmes
#preflight 621785d71a114ad50437ac82

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19113063 via CL 19113085 via CL 19113092 via CL 19113474
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19152856 by yoan stamant in ue5-main branch]
2022-02-25 14:18:42 -05:00
yoan stamant
722ecdcae0 [Smart object] Space partition structure is now configurable
* Created Default SmartObjectOctree
* Created Default SmartObjectHashGrid
* Type of space partition to use can be set in the smartobject config file: [/Script/SmartObjectsModule.SmartObjectSubsystem] SpacePartitionClassName=<ClassPath>
* Created DebugSceneProxy and RenderingComponent to share functionalities between susbystem and testing actor rendering components
#rnx
#rb mieszko.zielinski
#preflight 620fb51dec6f84cdfa3b2772

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19050433 via CL 19050556 via CL 19050564 via CL 19057424
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19066037 by yoan stamant in ue5-main branch]
2022-02-21 01:10:34 -05:00
yoan stamant
aac2926da9 CIS issue #144192: [SmartObject] replaced call to ReplayBufferAgainstSystem by FlushCommands
#rnx

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19014621 via CL 19031914
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589)

[CL 19032141 by yoan stamant in ue5-main branch]
2022-02-17 03:40:54 -05:00
marc audy
6e38e5bb8b [SmartObject] added SmartObjectTestingActor
* added simple test to run a query and visualize the results
* added debug methods to force initialize/cleanup the simulation from the Editor world
* definition class is no longer mandatory (like other filtering options)
* parent object definition now accessible from SlotView
#rnx
#preflight 620c077d483ff0ae5ec4c544
#rb mieszko.zielinski, mikko.mononen

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19014188 via CL 19014236 via CL 19014251 via CL 19031906
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589)

[CL 19032135 by marc audy in ue5-main branch]
2022-02-17 03:40:43 -05:00
josselin francois
8361eeb8b3 SmartObject : improvements
- Change the way to communicate between SO Evaluator, Service and BTTask,
- Manage Activities Cooldowns,
- Manage SmartObject Slot cooldown by user,
- Add GetActivityTags in SmartObjectSubsystem.
[REVIEW] [at]loic.devaux, [at]raphael.lapierre, [at]yoan.stamant
[FYI] philippe.painchaud, patrick.carroll, guillaume.morreel, loic.devaux, felix.laplante, youssef.trad
#tests PIE
#rnx

#ROBOMERGE-AUTHOR: josselin.francois
#ROBOMERGE-SOURCE: CL 18979507 via CL 18979533 via CL 18979562 via CL 18979623 via CL 18992705 via CL 18993044
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18997335 by josselin francois in ue5-main branch]
2022-02-15 11:34:26 -05:00