void ProcessResources(VesselResources resources, BuildResourceSet report_resources, BuildResourceSet required_resources = null) { var reslist = resources.resources.Keys.ToList(); foreach (string res in reslist) { double amount = resources.ResourceAmount(res); var recipe = ExRecipeDatabase.ResourceRecipe(res); if (recipe != null) { double density = ExRecipeDatabase.ResourceDensity(res); double mass = amount * density; recipe = recipe.Bake(mass); foreach (var ingredient in recipe.ingredients) { var br = new BuildResource(ingredient); var resset = report_resources; if (required_resources != null) { resset = required_resources; } resset.Add(br); } } else { var br = new BuildResource(res, amount); report_resources.Add(br); } } }
void ProcessResource(VesselResources vr, string res, BuildResourceSet rd, bool xfer) { var amount = vr.ResourceAmount(res); var mass = amount * ExRecipeDatabase.ResourceDensity(res); ProcessIngredient(new Ingredient(res, mass), rd, xfer); }