protected override void BuildPawnList() { Pawns.Clear(); IEnumerable <Pawn> sorted; switch (OrderBy) { case Order.Work: sorted = from p in Find.ListerPawns.FreeColonists orderby(p.story == null || p.story.WorkTypeIsDisabled(_workOrder)), p.skills.AverageOfRelevantSkillsFor(_workOrder) descending select p; break; case Order.Name: sorted = from p in Find.ListerPawns.FreeColonists orderby p.LabelCap ascending select p; break; default: sorted = Find.ListerPawns.FreeColonists; break; } Pawns = sorted.ToList(); if (_asc && Pawns.Count > 1) { Pawns.Reverse(); } }
protected override void BuildPawnList() { IEnumerable <Pawn> sorted; switch (Order) { case Orders.Default: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.RaceProps.petness descending, p.RaceProps.baseBodySize, p.def.label select p; break; case Orders.Name: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.Name.Numerical, p.Name.ToStringFull, p.def.label select p; break; case Orders.Gender: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.KindLabel, p.gender select p; break; case Orders.LifeStage: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.ageTracker.CurLifeStageRace.minAge descending, p.ageTracker.AgeBiologicalTicks descending select p; break; case Orders.Slaughter: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby Find.DesignationManager.DesignationOn(p, DesignationDefOf.Slaughter) != null descending, p.BodySize descending select p; break; case Orders.Training: bool dump; sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.training.IsCompleted(TrainingOrder) descending, p.training.GetWanted(TrainingOrder) descending, p.training.CanAssignToTrain(TrainingOrder, out dump).Accepted descending select p; break; default: sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony) where p.RaceProps.Animal orderby p.RaceProps.petness descending, p.RaceProps.baseBodySize, p.def.label select p; break; } Pawns = sorted.ToList(); if (Widgets_Filter.Filter) { Pawns = Widgets_Filter.FilterAnimals(Pawns); } if (Asc && Pawns.Count > 1) { Pawns.Reverse(); } IsDirty = false; }