public GroupAccessor CreateGroupAccessor(IGroup group, string poolName = null) { var groupAccessorToken = new GroupAccessorToken(group.TargettedComponents.ToArray(), poolName); if (!_groupAccessors.ContainsKey(groupAccessorToken)) { var entityMatches = GetEntitiesFor(group, poolName); _groupAccessors.Add(groupAccessorToken, entityMatches); } return(new GroupAccessor(groupAccessorToken, _groupAccessors[groupAccessorToken])); }
public IGroupAccessor CreateGroupAccessor(IGroup group, string poolName = null) { var groupAccessorToken = new GroupAccessorToken(group.TargettedComponents.ToArray(), poolName); if (_groupAccessors.ContainsKey(groupAccessorToken)) { return(_groupAccessors[groupAccessorToken]); } var entityMatches = GetEntitiesFor(@group, poolName); var groupAccessor = new CacheableGroupAccessor(groupAccessorToken, entityMatches, EventSystem); groupAccessor.MonitorEntityChanges(); _groupAccessors.Add(groupAccessorToken, groupAccessor); return(_groupAccessors[groupAccessorToken]); }
public IGroupAccessor CreateGroupAccessor(IGroup group, string poolName = null) { var groupAccessorToken = new GroupAccessorToken(group.TargettedComponents.ToArray(), poolName); if (_groupAccessors.ContainsKey(groupAccessorToken)) { return(_groupAccessors[groupAccessorToken]); } var entityMatches = GetEntitiesFor(@group, poolName); var groupAccessor = GroupAccessorFactory.Create(new GroupAccessorConfiguration { GroupAccessorToken = groupAccessorToken, InitialEntities = entityMatches }); _groupAccessors.Add(groupAccessorToken, groupAccessor); return(_groupAccessors[groupAccessorToken]); }