public List <Entity> RevokeEntitySimulationFor(Player player, VisibleCell[] removed) { List <Entity> revokedEntities = new List <Entity>(); foreach (VisibleCell cell in removed) { List <Entity> entities; lock (entitiesByAbsoluteCell) { if (entitiesByAbsoluteCell.TryGetValue(cell.AbsoluteCellEntity, out entities)) { foreach (Entity entity in entities) { if (entity.Level <= cell.Level && simulationOwnership.RevokeIfOwner(entity.Guid, player)) { revokedEntities.Add(entity); } } } } } return(revokedEntities); }
public List <Entity> RevokeEntitySimulationFor(Player player, AbsoluteEntityCell[] removed) { List <Entity> revokedEntities = new List <Entity>(); foreach (AbsoluteEntityCell cell in removed) { List <Entity> entities; lock (entitiesByAbsoluteCell) { if (GetEntities(cell, out entities)) { revokedEntities.AddRange( entities.Where(entity => entity.Level <= cell.Level && simulationOwnership.RevokeIfOwner(entity.Guid, player))); } } } return(revokedEntities); }