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)); } } }