public SearchTrackManager( SearchTrack searchTrack, List <GuardStateBrainPBT> guards, NodeSearchedSignal nodeSearchedSignal, GuardReachedRoomSignal guardReachedRoomSignal, SearchTrackSearchedSignal searchTrackSearchedSignal, List <SearchTrackNode> likelyNodes ) { _nodesToSearchIndex = 0; _coveringGuards = new List <GuardStateBrainPBT>(); _searchingGuards = new List <GuardStateBrainPBT>(); _allGuards = new List <GuardStateBrainPBT>(); _nodeSearchedSignal = nodeSearchedSignal; _guardReachedRoomSignal = guardReachedRoomSignal; _searchTrack = searchTrack; _assignedExitIndex = 0; _coveredExits = 0; SetUpDelegates(); // CheckIfReady(); _searchTrackSearchedSignal = searchTrackSearchedSignal; _guardsPerNode = new Dictionary <SearchTrackNode, GuardStateBrainPBT>(); if (likelyNodes != null) { _nodesToSearch = likelyNodes; } else { _nodesToSearch = searchTrack.GetSearchTrackNodes(); } if (searchTrack.GetSearchTrackNodes().Count == 0) { // _searchTrackSearchedSignal.Fire(searchTrack); RegisterComplete(); } else { Init(); AddGuards(guards); } }
public static List <SearchTrackNode> GetAllSearchTrackNodes() { if (allSearchTrackNodesInstantiated) { return(allSearchTrackNodes); } allSearchTrackNodes = new List <SearchTrackNode> (); List <SearchTrack> searchTracks = GetSearchTracks(); for (int i = 0; i < searchTracks.Count; i++) { SearchTrack searchTrack = searchTracks [i]; List <SearchTrackNode> searchTrackNodes = searchTrack.GetSearchTrackNodes(); allSearchTrackNodes.AddRange(searchTrackNodes); } return(allSearchTrackNodes); }