Esempio n. 1
0
 public void AddItem(IInGrid Item)
 {
     if (QueuedRemovals.Contains(Item))
     {
         QueuedRemovals.Remove(Item);
         QueuedRemovalAreas.Remove(Item);
     }
     else
     {
         List <IInGrid> Items;
         foreach (Vector3 Area in CalculateAreas(Item.Translation))
         {
             Dict.TryGetValue(Area, out Items);
             if (Items == null)
             {
                 Items = new List <IInGrid>()
                 {
                     Item
                 };
             }
             else if (!Items.Contains(Item))
             {
                 Items.Add(Item);
             }
             Dict[Area] = Items;
         }
     }
 }
Esempio n. 2
0
 //Items cannot be removed from the grid while updating
 //as we cannot modify the List while foreaching it
 public void QueueRemoveItem(IInGrid Item)
 {
     QueuedRemovals.Add(Item);
     QueuedRemovalAreas[Item] = CalculateAreas(Item.Translation);
 }