using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RimWorldAnimationStudio { public static class PawnRaceDefs { public static List allDefs = new List(); public static PawnRaceDef GetNamed(string pawnRaceDef) { return allDefs.FirstOrDefault(x => x.defName == pawnRaceDef); } public static void AddDef(PawnRaceDef pawnRaceDef) { if (allDefs.Any(x => x.defName == pawnRaceDef.defName)) return; allDefs.Add(pawnRaceDef); } public static void OnLoad() { List allTags = DefaultTags.bodyTypes.Concat(CustomTags.bodyTypes).ToList(); allTags.Add("None"); List facings = new List() { CardinalDirection.North, CardinalDirection.East, CardinalDirection.South }; string path; foreach (PawnRaceDef pawnRaceDef in allDefs) { foreach (CardinalDirection facing in facings) { foreach (string bodyType in allTags) { path = pawnRaceDef.GetBodyTypeGraphicPath(facing, bodyType); if (string.IsNullOrEmpty(path) == false) { pawnRaceDef.SetBodyTypeGraphicPath(path, facing, bodyType); } } path = pawnRaceDef.GetHeadGraphicPath(facing); if (string.IsNullOrEmpty(path) == false) { pawnRaceDef.SetHeadGraphicPath(path, facing); } } } } } }