The AppFramework module is intended to be used for compound widgets and UI related classes that are too specific (not basic enough) for Slate, but also not Editor specific (reusable in non-Editor applications and games). The test suite has been moved in its entirety for now, but core widget specific test classes will eventually be split off and moved back into Slate, so that they can live alongside of their corresponding widgets.
Other changes:
- moved to "include what you use" scheme for SColorPicker
- broke out color picker related widgets that may be reusable
- added forward declarations to reduce header include dependencies
#CodeReview: saul.abreu
[CL 2275496 by Max Preussner in Main branch]
Includes the following engine-level changes (among others; biggest change is enabling world assets by default):
CL 2252857
added dynamic allocations for path finding, removed hardcoded limit of 128 polys in path corridor
CL 2256142
Added support for native arrays in JSON object converter.
- Permissive in treating arrays of size 1 and scalars as equivalent
- Excess elements in JSON are ignored. Serialization succeeds but a warning is logged
CL 2256073
Fixed a bug in ARecastNavMesh::BatchRaycast resulting in NaN hit locations
CL 2253797
#UE4 More aggressively setting RF_Public and RF_Standalone flags on maps and ensuring world names match package names. This is necessary because umaps are currently being managed outside of the content browser and it is causing a few issues. Also, packages containing maps now synthesize asset data when the package contains absolutely no asset data (probably because the UWorld in it was not RF_Public at the time it was saved due to a previous bug).
CL 2258142
#UE4 Added a GC during map load that reclaims memory allocated during load/init. This is needed to finish the load on low-memory devices in games that allocate more memory after load.
CL 2247003
Added homing to ProjectileMovementComponent
- Homing requires both a bool and a target component to be set, the strength is determined by a customizable variable
- Both homing and gravity are now applied in the new virtual function "CalculateAcceleration"
CL 2247249
Moved the homing modification to acceleration occur in a separate function specifically for homing
CL 2257043
- Guard net dormancy calls against executing on clients, based on thread with DaveR and JohnP; This particular case was the result of an intentionally client-authoritative actor calling the dormancy functions via inheritance
CL 2245629
#UE4 - fixed json TryGetNumber to round negatives appropriately
CL 2255312
#UE4 Enabling World Assets by default.
CL 2260956
Analytics ET now loads HTTP at StartupModule so the module will be available during ShutdownModule to flush events
CL 2245571
GenericTeamAgentInterface can now retrieve attitude of an agent towards a given actor #UE4
- Made PerceptionSystem's sight sense take advantage of that
CL 2246897
Fixed perception listeners not being removed from the PerceptionSystem on Owner's end play #UE4
- addresses TTP#343392
CL 2260634
added more debug data for NaN in crowd simulation
CL 2248387
Added possibility to debug multiple EQS queries with GameplayDebugger. #ue4
Fixed network replication from bandwidth point of view for data in GameplayDebugger. #ue4
CL 2253281
Added additional information to the visual logger for UBTCompositeNode::DoDecoratorsAllowExecution
- We now keep track of whether a decorator allows execution, in addition to the existing log for not allowing execution
CL 2255310
#UE4 The world browser module now listens to WorldAdded/WorldDestroyed events instead of WorldInit/WorldCleanup events. Worlds can be initialized without being the editor world and this handles that case.
CL 2258256
#UE4 Replacing the SOpenLevelDialog with a new generic SAssetDialog. This dialog will be used as a generic Open or Save As dialog for assets.
[CL 2266822 by Billy Bramer in Main branch]
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)
Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()
Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine
[CL 2057118 by Max Preussner in Main branch]