(067f4d694) The recursive version of GetConnectedComponents can traverse between wifi components, use recursive GetConnectedComponents when finding the controller used to operate some item (-> AI characters can now figure out how to operate a turret that's connected to a periscope through wifi components, relays, etc)

This commit is contained in:
Joonas Rikkonen
2019-05-16 05:41:41 +03:00
parent 1d5de494cd
commit 5b2bf67d66
14 changed files with 458 additions and 100 deletions
@@ -140,7 +140,10 @@ namespace Barotrauma
{
if (UseController)
{
ConnectedController = targetItem.Item.GetConnectedComponents<Controller>().FirstOrDefault();
//try finding the controller with the simpler non-recursive method first
ConnectedController =
targetItem.Item.GetConnectedComponents<Controller>().FirstOrDefault() ??
targetItem.Item.GetConnectedComponents<Controller>(recursive: true).FirstOrDefault();
}
TargetEntity = targetItem.Item;
TargetItemComponent = targetItem;