private AgentCommunicator GetCommsInternal(int actorID) { AgentCommunicator comms = null; if (!communicators.TryGetValue(actorID, out comms)) { comms = new AgentCommunicator(this, actorID); communicators[actorID] = comms; } return(comms); }
private IEnumerable <AgentCommunicator> GetCommunicatorsInRange(int actorID, int filterID = -1) { List <AgentCommunicator> comms = new List <AgentCommunicator>(); foreach (ISoaActor actor in connectivity.GetActorsInCliqueOf(actorID)) { AgentCommunicator neighborComm = GetCommsInternal(actor.getID()); if (neighborComm.callback != null && filterID == -1 || filterID == neighborComm.actorID) { comms.Add(neighborComm); } } return(comms); }