private static IEnumerable <StatPriority> GetWorkTypeStatPriorities([NotNull] WorkTypeDef worktype)
        {
            if (worktype == null)
            {
                throw new ArgumentNullException(nameof(worktype));
            }
            var worktypePriorities = _worktypePriorities.Find(wp => wp.Worktype == worktype);

            if (worktypePriorities == null)
            {
                worktypePriorities = new WorktypePriorities(worktype, GetDefaultPriorities(worktype.defName));
                _worktypePriorities.Add(worktypePriorities);
            }
            return(worktypePriorities.Priorities.Select(o => new StatPriority(o.Stat, o.Weight, o.Weight)));
        }
 public override void FinalizeInit()
 {
     base.FinalizeInit();
     if (_worktypePriorities == null)
     {
         _worktypePriorities = new List <WorktypePriorities>();
     }
     foreach (var worktype in DefDatabase <WorkTypeDef> .AllDefsListForReading)
     {
         var workTypePriorities = _worktypePriorities.Find(o => o.Worktype == worktype);
         if (workTypePriorities == null)
         {
             workTypePriorities = new WorktypePriorities(worktype, GetDefaultPriorities(worktype.defName));
             _worktypePriorities.Add(workTypePriorities);
         }
         else
         {
             workTypePriorities.Priorities.Clear();
             workTypePriorities.Priorities.AddRange(GetDefaultPriorities(worktype.defName));
         }
     }
 }