public void AddEvent(Events.Event e, CoroutineID coroutineID)
        {
            if (e != null && coroutineID != CoroutineID.Null)
            {
                KeyValuePair<Events.Event, CoroutineID> eventPair = new KeyValuePair<Events.Event, CoroutineID>(e, coroutineID);

                if (!EventToCoroutineIDMap.Contains(eventPair))
                    EventToCoroutineIDMap.Add(eventPair);
            }
        }
 private IEnumerator GetCoroutine(Events.Event e, CoroutineID coroutineID)
 {
     switch (coroutineID)
     {
         case CoroutineID.Execute:
             return e.Execute();
         case CoroutineID.Undo:
             return e.Undo();
         case CoroutineID.Null:
         default:
             return null;
     }
 }