Example #1
0
 static void DelFromDict(Dictionary <IntTag, List <Action> > dict, IntTag tag, Action action)
 {
     if (dict.ContainsKey(tag))
     {
         dict[tag].Remove(action);
     }
 }
Example #2
0
        static void AddToDict(Dictionary <IntTag, List <Action> > dict, IntTag tag, Action action)
        {
            if (!dict.ContainsKey(tag))
            {
                dict[tag] = new List <Action>();
            }

            dict[tag].Add(action);
        }
Example #3
0
 void InvokeActions(IntTag tag, Dictionary <IntTag, List <Action> > dict)
 {
     if (dict.ContainsKey(tag))
     {
         foreach (var action in dict[tag])
         {
             action?.Invoke();
         }
     }
 }
Example #4
0
        /// <summary> Returns Entity with specified Tag. Like Unity Find method. </summary>
        public static Entity FindWith(IntTag tag)
        {
            for (var i = 0; i < entities.Count; i++)
            {
                if (entities[i].Tags.Have(tag))
                {
                    return(entities[i]);
                }
            }

            return(null);
        }
Example #5
0
        /// <summary> Returns all Entities with specified Tag. Like Unity Find method. </summary>
        public static List <Entity> FindAllWith(IntTag tag)
        {
            var resultList = new List <Entity>();

            for (var i = 0; i < entities.Count; i++)
            {
                if (entities[i].Tags.Have(tag))
                {
                    resultList.Add(entities[i]);
                }
            }

            return(resultList);
        }
Example #6
0
 public bool Have(IntTag tag) => addedTags.ContainsKey(tag);
Example #7
0
        public int Count(IntTag tag)
        {
            addedTags.TryGetValue(tag, out var count);

            return(count);
        }
Example #8
0
 void FirstAddTag(IntTag tag)
 {
     addedTags.Add(tag, 1);
     InvokeActions(tag, addSubscribers);
 }
Example #9
0
 public void UnsubscribeFromRemove(IntTag tag, Action action) => DelFromDict(removeSubscribers, tag, action);
Example #10
0
 public void SubscribeToRemove(IntTag tag, Action action) => AddToDict(removeSubscribers, tag, action);
Example #11
0
 public void UnsubscribeFromAdd(IntTag tag, Action action) => DelFromDict(addSubscribers, tag, action);
Example #12
0
 public void SubscribeToAdd(IntTag tag, Action action) => AddToDict(addSubscribers, tag, action);