Including:
- every GameplayTask can specify resources it requires to run, and separately resources it's going to lock, or "shadow" ones in the priority queue
- added a broadcast delegate to GameplayTasksComponent one can register for to get notified about changes in resource locks
- AI uses this to lock AI logic for scripted tasks
- made IGameplayTaskOwnerInterface::GetAvatarActor require a task pointer to determine avatar actor - this was needed for a "skeletal" owners, like BT nodes
- Improvements to AITask_MoveTo
- expanded BTTaskNode with bits required for it being a GameplayTask owner
- might need to move that to the most generic BTNode so that services can easily spawn tasks as well
- BT movement tasks can now use AITasks (opt-in with AISystem::bEnableBTAITasks via Project Settings)
- started adding a generic mechanism for configuring AI properties via Project Settings
- consistency throughout multiple ways of spawning given AI task being the main drive here. Started with movement of course
- currently implemented by exposing AISystem's properties to global config. Going to switch that over to UDeveloperSettings soon.
- Added a blackboard component member to AIController
- added setting BB SelfActor key to AI-controlled Pawn
[CL 2597132 by Mieszko Zielinski in Main branch]
#jira UE-16392 - Crash occurs on exit after enabling Show Collision in Game
#reviewedby James.Golding, Marc.Audy
[CL 2597014 by Richard TalbotWatkin in Main branch]
- Modified UnrealPak to use LaunchDir as a fallback to finding a pak file
- Added "Usage" printout to UnrealPak that has all the use cases and options I could find in the code
[CL 2596996 by Josh Adams in Main branch]
- MaxRange is only used if > 0. It is modified by the loudness. Sensors must still pass their own range checks as well.
UE-13844
[CL 2596425 by Zak Middleton in Main branch]