public static void RemoveAgentFromCell(Dictionary <TerrainCell, List <Agent> > cellDict, TerrainCell cell, Agent agent)
        {
            if (cellDict.TryGetValue(cell, out var list))
            {
                list.Remove(agent);

                if (!list.Any())
                {
                    cellDict.Remove(cell);
                }
            }
        }
 public static void AddAgentToCell(Dictionary <TerrainCell, List <Agent> > cellDict, TerrainCell cell, Agent agent)
 {
     if (cellDict.TryGetValue(cell, out var list))
     {
         list.Add(agent);
     }
     else
     {
         list = new List <Agent> {
             agent
         };
         cellDict[cell] = list;
     }
 }