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));
        }
Exemplo n.º 2
0
        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;
		}