public InitializerParameters(long entityId, Technique technique, IServiceRegistry services, SelectorDelegate selector)
 {
     EntityId  = entityId;
     Technique = technique;
     Services  = services;
     Selector  = selector;
 }
Esempio n. 2
0
 private void SelectorSingleGeneric(GameObject go, SelectorDelegate selector, System.Reflection.MethodInfo methodInfo, object instance)
 {
     if (SelectorSingleCache.ContainsKey(go) && SelectorSingleCache[go].ContainsKey(selector))
     {
         methodInfo.Invoke(instance, SelectorSingleCache[go][selector]);
     }
     else
     {
         var objects = selector(go);
         if (objects != null)
         {
             if (!SelectorSingleCache.ContainsKey(go))
             {
                 SelectorSingleCache.Add(go, new Dictionary <SelectorDelegate, object[]>());
             }
             SelectorSingleCache[go].Add(selector, objects);
             methodInfo.Invoke(instance, objects);
         }
     }
 }
Esempio n. 3
0
 private List <object[]> SelectorQuery(SelectorDelegate selector)
 {
     if (SelectorCache.ContainsKey(selector))
     {
         return(SelectorCache[selector]);
     }
     else
     {
         List <object[]> list = new List <object[]>();
         foreach (KeyValuePair <GameObject, Dictionary <string, object> > entry in Dict)
         {
             var objects = selector(entry.Key);
             if (objects != null)
             {
                 list.Add(objects);
             }
         }
         SelectorCache.Add(selector, list);
         return(list);
     }
 }
        public static List <TResult> Select <T, TResult>(this IEnumerable <T> collection, JudgeDelegate <T> judger, SelectorDelegate <T, TResult> selector)
        {
            List <TResult> ret  = new List <TResult> ();
            var            iter = collection.GetEnumerator();

            while (iter.MoveNext())
            {
                if (judger == null || judger(iter.Current))
                {
                    ret.Add(selector(iter.Current));
                }
            }
            return(ret);
        }
Esempio n. 5
0
 private void SelectorForEachGeneric(SelectorDelegate selector, System.Reflection.MethodInfo methodInfo, object instance)
 {
     SelectorQuery(selector).ForEach(objects => {
         methodInfo.Invoke(instance, objects);
     });
 }
Esempio n. 6
0
 public void SelectorForEach <T1, T2, T3, T4>(SelectorDelegate selector, EntityDelegate <T1, T2, T3, T4> action)
 {
     SelectorForEachGeneric(selector, action.Method, action.Target);
 }
Esempio n. 7
0
 public void SelectorSingle <T1, T2, T3, T4>(GameObject go, SelectorDelegate selector, EntityDelegate <T1, T2, T3, T4> action)
 {
     SelectorSingleGeneric(go, selector, action.Method, action.Target);
 }