public ELProtoWorkSink(ELWorkSink sink)
 {
     workedHours = 0;
     maxHours    = 0;
     if (isActive = sink.isActive)
     {
         maxHours = sink.CalculateWork();
     }
 }
 public void CatchUpBacklog(ELWorkSink sink, double hours)
 {
     if (hours > 0)
     {
         if (hours > workedHours)
         {
             hours    = workedHours;
             isActive = false;
         }
     }
     else
     {
         // vessel productivity is negative
         if (hours < workedHours)
         {
             hours    = workedHours;
             isActive = false;
         }
     }
     workedHours -= hours;
     sink.DoWork(hours);
 }