private static bool CanUsePair(ThingStuffPair pair, Pawn pawn, float moneyLeft, bool allowHeadgear, int fixedSeed) { bool result; if (pair.Price > moneyLeft) { result = false; } else if (!allowHeadgear && PawnApparelGenerator.IsHeadgear(pair.thing)) { result = false; } else if (pair.stuff != null && pawn.Faction != null && !pawn.Faction.def.CanUseStuffForApparel(pair.stuff)) { result = false; } else if (PawnApparelGenerator.workingSet.PairOverlapsAnything(pair)) { result = false; } else { if (!pawn.kindDef.apparelTags.NullOrEmpty <string>()) { bool flag = false; for (int i = 0; i < pawn.kindDef.apparelTags.Count; i++) { for (int j = 0; j < pair.thing.apparel.tags.Count; j++) { if (pawn.kindDef.apparelTags[i] == pair.thing.apparel.tags[j]) { flag = true; break; } } if (flag) { break; } } if (!flag) { return(false); } } if (pair.thing.generateAllowChance < 1f) { if (!Rand.ChanceSeeded(pair.thing.generateAllowChance, fixedSeed ^ (int)pair.thing.shortHash ^ 64128343)) { return(false); } } result = true; } return(result); }
private static string <ApparelPairs> m__A(ThingStuffPair p) { return((!PawnApparelGenerator.IsHeadgear(p.thing)) ? string.Empty : "*"); }
private static void ApparelPairs() { IEnumerable <ThingStuffPair> dataSources = from p in PawnApparelGenerator.allApparelPairs orderby p.thing.defName descending select p; TableDataGetter <ThingStuffPair>[] array = new TableDataGetter <ThingStuffPair> [7]; array[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName); array[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName); array[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString()); array[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => (p.Commonality * 100f).ToString("F4")); array[4] = new TableDataGetter <ThingStuffPair>("generateCommonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F4")); array[5] = new TableDataGetter <ThingStuffPair>("insulationCold", (ThingStuffPair p) => (p.InsulationCold != 0f) ? p.InsulationCold.ToString() : string.Empty); array[6] = new TableDataGetter <ThingStuffPair>("headgear", (ThingStuffPair p) => (!PawnApparelGenerator.IsHeadgear(p.thing)) ? string.Empty : "*"); DebugTables.MakeTablesDialog <ThingStuffPair>(dataSources, array); }