private List <ScreenItem> CountAllComponents(IEnumerable <IMyInventory> inventories, out bool complete) { List <ScreenItem> items = new List <ScreenItem>(); complete = true; IPSession ipSession = IPSession.Instance; foreach (KeyValuePair <MyDefinitionId, int> c in comps) { MyDefinitionId id = c.Key; int required = c.Value; int need = (int)CountComponents(inventories, id, required); if (need > 0) { complete = false; } items.Add(new ScreenItem(ipSession.GetComponentName(id), required, required - need)); } return(items); }