private List <ThingStuffPairWithQuality> GeneratePossibleDefs(ThingSetMakerParams parms, out float totalMarketValue) { IEnumerable <ThingDef> enumerable = this.AllowedThingDefs(parms); if (!enumerable.Any <ThingDef>()) { totalMarketValue = 0f; return(new List <ThingStuffPairWithQuality>()); } TechLevel? techLevel = parms.techLevel; TechLevel techLevel2 = (techLevel == null) ? TechLevel.Undefined : techLevel.Value; IntRange? countRange = parms.countRange; IntRange intRange = (countRange == null) ? new IntRange(1, int.MaxValue) : countRange.Value; FloatRange? totalMarketValueRange = parms.totalMarketValueRange; FloatRange floatRange = (totalMarketValueRange == null) ? FloatRange.Zero : totalMarketValueRange.Value; float? maxTotalMass = parms.maxTotalMass; float num = (maxTotalMass == null) ? float.MaxValue : maxTotalMass.Value; QualityGenerator?qualityGenerator = parms.qualityGenerator; QualityGenerator qualityGenerator2 = (qualityGenerator == null) ? QualityGenerator.BaseGen : qualityGenerator.Value; totalMarketValue = floatRange.RandomInRange; IntRange countRange2 = intRange; float totalValue = totalMarketValue; IEnumerable <ThingDef> allowed = enumerable; TechLevel techLevel3 = techLevel2; QualityGenerator qualityGenerator3 = qualityGenerator2; Func <ThingStuffPairWithQuality, float> getMinValue = new Func <ThingStuffPairWithQuality, float>(this.GetMinValue); Func <ThingStuffPairWithQuality, float> getMaxValue = new Func <ThingStuffPairWithQuality, float>(this.GetMaxValue); float maxMass = num; return(ThingSetMakerByTotalStatUtility.GenerateDefsWithPossibleTotalValue(countRange2, totalValue, allowed, techLevel3, qualityGenerator3, getMinValue, getMaxValue, null, 100, maxMass)); }
private List <ThingStuffPairWithQuality> GeneratePossibleDefs(ThingSetMakerParams parms, out float totalMarketValue) { IEnumerable <ThingDef> enumerable = AllowedThingDefs(parms); if (!enumerable.Any()) { totalMarketValue = 0f; return(new List <ThingStuffPairWithQuality>()); } TechLevel? techLevel = parms.techLevel; TechLevel techLevel2 = techLevel.HasValue ? techLevel.Value : TechLevel.Undefined; IntRange? countRange = parms.countRange; IntRange intRange = (!countRange.HasValue) ? new IntRange(1, 2147483647) : countRange.Value; FloatRange? totalMarketValueRange = parms.totalMarketValueRange; FloatRange floatRange = (!totalMarketValueRange.HasValue) ? FloatRange.Zero : totalMarketValueRange.Value; float? maxTotalMass = parms.maxTotalMass; float num = (!maxTotalMass.HasValue) ? 3.40282347E+38f : maxTotalMass.Value; QualityGenerator?qualityGenerator = parms.qualityGenerator; QualityGenerator qualityGenerator2 = qualityGenerator.HasValue ? qualityGenerator.Value : QualityGenerator.BaseGen; totalMarketValue = floatRange.RandomInRange; IntRange countRange2 = intRange; float totalValue = totalMarketValue; IEnumerable <ThingDef> allowed = enumerable; TechLevel techLevel3 = techLevel2; QualityGenerator qualityGenerator3 = qualityGenerator2; Func <ThingStuffPairWithQuality, float> getMinValue = GetMinValue; Func <ThingStuffPairWithQuality, float> getMaxValue = GetMaxValue; float maxMass = num; return(ThingSetMakerByTotalStatUtility.GenerateDefsWithPossibleTotalValue(countRange2, totalValue, allowed, techLevel3, qualityGenerator3, getMinValue, getMaxValue, null, 100, maxMass)); }
private List<ThingStuffPairWithQuality> GeneratePossibleDefs(ThingSetMakerParams parms, out float totalNutrition) { IEnumerable<ThingDef> enumerable = this.AllowedThingDefs(parms); List<ThingStuffPairWithQuality> result; if (!enumerable.Any<ThingDef>()) { totalNutrition = 0f; result = new List<ThingStuffPairWithQuality>(); } else { IntRange? countRange = parms.countRange; IntRange intRange = (countRange == null) ? new IntRange(1, int.MaxValue) : countRange.Value; FloatRange? totalNutritionRange = parms.totalNutritionRange; FloatRange floatRange = (totalNutritionRange == null) ? FloatRange.Zero : totalNutritionRange.Value; TechLevel? techLevel = parms.techLevel; TechLevel techLevel2 = (techLevel == null) ? TechLevel.Undefined : techLevel.Value; float? maxTotalMass = parms.maxTotalMass; float num = (maxTotalMass == null) ? float.MaxValue : maxTotalMass.Value; QualityGenerator? qualityGenerator = parms.qualityGenerator; QualityGenerator qualityGenerator2 = (qualityGenerator == null) ? QualityGenerator.BaseGen : qualityGenerator.Value; totalNutrition = floatRange.RandomInRange; int numMeats = enumerable.Count((ThingDef x) => x.IsMeat); int numLeathers = enumerable.Count((ThingDef x) => x.IsLeather); Func<ThingDef, float> func = (ThingDef x) => ThingSetMakerUtility.AdjustedBigCategoriesSelectionWeight(x, numMeats, numLeathers); IntRange countRange2 = intRange; float totalValue = totalNutrition; IEnumerable<ThingDef> allowed = enumerable; TechLevel techLevel3 = techLevel2; QualityGenerator qualityGenerator3 = qualityGenerator2; Func<ThingStuffPairWithQuality, float> getMinValue = (ThingStuffPairWithQuality x) => x.GetStatValue(StatDefOf.Nutrition); Func<ThingStuffPairWithQuality, float> getMaxValue = (ThingStuffPairWithQuality x) => x.GetStatValue(StatDefOf.Nutrition) * (float)x.thing.stackLimit; Func<ThingDef, float> weightSelector = func; float maxMass = num; result = ThingSetMakerByTotalStatUtility.GenerateDefsWithPossibleTotalValue(countRange2, totalValue, allowed, techLevel3, qualityGenerator3, getMinValue, getMaxValue, weightSelector, 100, maxMass); } return result; }