public static void ProcessPart(Part part, Dictionary<string, ResourceInfo> resources) { string name = part.name; if (name.Contains ("kerbalEVA")) { // kerbalEVA parts have the name of the kerbal appended to the // part name. name = "kerbalEVA"; } if (!part_recipes.ContainsKey (name)) { print ("ExRecipeDatabase.ProcessPart: no part recipe for " + name); return; } var recipe = part_recipes[name].Bake (part.mass); for (int i = 0; i < recipe.ingredients.Count; i++) { var ingredient = recipe.ingredients[i]; if (!ingredient.isReal) { print ("fake ingredient: " + ingredient.name); continue; } ingredient.ratio /= ResourceDensity (ingredient.name); ResourceInfo resourceInfo; if (!resources.ContainsKey (ingredient.name)) { resourceInfo = new ResourceInfo (); resources[ingredient.name] = resourceInfo; } resourceInfo = resources[ingredient.name]; resourceInfo.containers.Add (new RecipeResourceContainer (part, ingredient)); } }
public void AddPart (Part part) { foreach (PartResource resource in part.Resources) { ResourceInfo resourceInfo; if (!resources.ContainsKey (resource.resourceName)) { resourceInfo = new ResourceInfo (); resources[resource.resourceName] = resourceInfo; } resourceInfo = resources[resource.resourceName]; resourceInfo.containers.Add (new PartResourceContainer (resource)); } }
static void GetResources (ModuleKISInventory inv, Dictionary<string, ResourceInfo> resources) { var items = inv.items; foreach (var item in items.Values) { var kis_resources = item.GetResources (); foreach (var res in kis_resources) { ResourceInfo resourceInfo; var resourceName = res.resourceName; if (!resources.ContainsKey (resourceName)) { resourceInfo = new ResourceInfo (); resources[resourceName] = resourceInfo; } resourceInfo = resources[resourceName]; resourceInfo.containers.Add (new KISResourceContainer (inv.part, res)); } } }