예제 #1
0
        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]));
        }
예제 #2
0
        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]);
        }
예제 #3
0
        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]);
        }