- Enabled GameplayDebuggerCategory in Test builds
- Added debug labels when UE_DEBUG_DRAWING is not defined so at least we can have text at smartobject/slot locations
#jira UE-211487
#rb Mieszko.Zielinski, mikko.mononen
[CL 32853860 by yoan stamant in ue5-main branch]
- mass tag, fragments to create/destroy smart objects for entities
- project specific interop component for instanced actors
#rb Mieszko.Zielinski, mikko.mononen
[CL 31484049 by yoan stamant in ue5-main branch]
- allow smart object creation from definition, transform and owner descriptor struct that will use dynamic ids
- moved FSmartObjectHandleFactory to the SmartObjectTypes and added method to get a dynamic id
- replaced registration type `WithCollection` by `BindToExistingInstance` in USmartObjectComponent since it can also be used for objects not tied to a component lifetime created from CreateSmartObject
- allow subsystem component accessor to force hydrate the actor associated to a smart object.
- fixed automation test to use the right property to set a definition asset now that it has been renamed
#rb Mieszko.Zielinski, mikko.mononen
#tests QAGame, unit tests, Juno
[CL 31291768 by yoan stamant in ue5-main branch]
Removing Actor.h from NavigationTypes.h
Removing NavigationQueryFilter.h when unnecessary in headers
And additional non-unity build fixes
#rb Maxime.Mercier
[CL 30621909 by aris theophanidis in ue5-main branch]
- added definition data for the whole object
- added GetDefinitionData() & GetDefinitionDataPtr() for the SO definition and slot definition
- Renamed FSmartObjectSlotDefinitionDataProxy -> FSmartObjectDefinitionDataProxy (removed slot)
- Renamed FSmartObjectSlotDefinitionData -> FSmartObjectDefinitionData (removed slot)
[CL 30077219 by mikko mononen in ue5-main branch]
- Gameplay tags are used to identify a reason
- Default reason "SmartObject.EnabledReason.Gameplay" is a tag (UE::SmartObject::EnabledReason::Gameplay) provided by the plugin and used by default if no other reason is specified
- Tags are converted to bit masks and stored as disable flags in runtime instance
- External systems can declare new Gameplay Tags for the specific needs. System currently allows 16 different reasons (1 default + 15 custom)
- A Smart Object instance is considered disabled as soon as at least one reason is set
#rb Luciano.Ferraro, mikko.mononen
[CL 29989734 by yoan stamant in ue5-main branch]
- Added UpdateSmartObjectTransform() to allow to update the Smart Object location at runtime
- Change spatial partitioning Add() to take ref to the handle to avoid alloc when readding
#rb Yoan.StAmant
[CL 29884931 by mikko mononen in ue5-main branch]
This is more friendly to the UE Gameplay Framework and lets you pass in specific actor's that you case about. If you had to use a spatial query, then you may get results from objects that you don't explictly want if they are overlapping objects.
Add a function to check if the subsystem is running on the server or not to make doing some future replication checks easier
#jira UE-180500
#rb mikko.mononen
[CL 27597760 by ben hoffman in ue5-main branch]
- Changed Smart Object definition slot data to contain GUI per data (allows to identify the data using ID)
- Added outliner to the editor, displays slots and definition data
- Made slots and definition data selectable in the details view
- Sync selection across details, outliner and 3D view for faster navigation
[CL 27440600 by mikko mononen in ue5-main branch]
- Fixed internal flag not properly set to false when using error reporting flow.
- Fixed combined validation results that was always using EDataValidationResult::Valid even when errors were reported.
#jira UE-192738
#rb mieszko.zielinski
#lockdown julien.marchand
[CL 27147839 by yoan stamant in ue5-main branch]
- Added Object enabled/disabled events to Smart Object lifetime to make it easier to react to the Smart Object enabled status
- Changed FSmartObjectSlotEntranceLocationRequest to be a BP type
- Changed FSmartObjectSlotEntranceLocationRequest.UserCapsule optional to invalid default value to make it easier to interface with BP
- Added FSmartObjectSlotEntranceLocationResult.bIsValid to be able to return results where the validation fails
- Added USmartObjectSubsystem.QueryAllValidatedEntranceLocations() which allows to validate SO definition, but does not require a registered Smart Object (can be used e.g. got object placement UI feedback)
- Added some helpers to allow to reuse validation between multiple methods in USmartObjectSubsystem
[CL 26987173 by mikko mononen in ue5-main branch]