/// <summary>
 /// Sets the schedulable events to the ones specified by the given EventCollection.
 /// </summary>
 public void Set(EventCollection collection)
 {
     allEvents.Clear();
     IEnumerable<EventSignature> allSignatures = EventLibrary.Instance.GetSignatures().
         Where((EventSignature sig) => !sig.AffectsWorldState());
     //For each signature, check if it is used in the scheduler and set the values according to this.
     foreach(EventSignature signature in allSignatures)
     {
         if (collection.Any((SchedulableEvent evnt) => evnt.Signature == signature))
         {
             SchedulableEvent evnt = collection.First((SchedulableEvent e) => e.Signature == signature);
             allEvents.Add(new SchedulerEventArguments(signature, evnt.Probability, true));
         }
         else
         {
             allEvents.Add(new SchedulerEventArguments(signature, 0.0f, false));
         }
     }
     this.timeBetweenUpdates = collection.TimeBetweenUpdates.ToString();
     this.name = collection.Name;
 }