Exemple #1
0
        public void RegisterInstance <T>(T o)
        {
            Type t = o.GetType();

            if (CurrentInstancesByType.ContainsKey(t))
            {
                CurrentInstancesByType[t].Add(o);
            }
            else
            {
                CurrentInstancesByType.Add(t, new List <object>()
                {
                    o
                });
            }

            if (!UpdateInstancesFibersByType.ContainsKey(t))
            {
                Game.LogTrivial($"[{nameof(UpdateInstancesFibersManager)}] Creating update fiber for {t.Name} instances");
                GameFiber fiber = GameFiber.StartNew(() => { UpdateInstancesLoop <T>(CurrentInstancesByType[t]); }, $"{t.Name} Update Fiber");
                UpdateInstancesFibersByType.Add(t, fiber);
            }
        }
Exemple #2
0
 public object[] GetAllInstancesOfType(Type type)
 {
     return(CurrentInstancesByType.ContainsKey(type) ? CurrentInstancesByType[type].ToArray() : null);
 }
Exemple #3
0
 public T[] GetAllInstancesOfType <T>()
 {
     return(CurrentInstancesByType.ContainsKey(typeof(T)) ? CurrentInstancesByType[typeof(T)].Cast <T>().ToArray() : null);
 }