public PatternStart AddPattern(Pattern pattern, int startTime, int id, int priority)
 {
     PatternStart pStart = new PatternStart(Simulation, _scene, id, startTime, pattern, priority);
     _endTime = Math.Max(_endTime, pStart.EndTime);
     _patternStarts.RemoveAll(start => start.Id == id);
     _patternStarts.Add(pStart);
     _patternStarts.Sort(PatternStart.StartTimeComparer);
     return pStart;
 }
 public void Set(Pattern pattern)
 {
     _groups = new List<string>(pattern.Groups);
     Name = pattern.Name;
     EffectName = pattern.EffectName;
     EffectProperties = pattern.EffectProperties;
     Priority = pattern.Priority;
     Changed();
 }
 public void MarkComplete(Pattern pattern)
 {
     /*no-op*/
 }
 public void MarkComplete(Pattern pattern)
 {
     foreach (var start in PatternStarts)
     {
         if (start.Pattern == pattern)
         {
             _patternStarts.Remove(start);
             return;
         }
     }
 }
 public PatternStart AddPattern(Pattern pattern, int startTime, int id, int priority)
 {
     throw new NotImplementedException();
 }