StorageData GetIngotsData() { float currentVolume = 0; float maxVolume = 0; int amount = 0; List <IMyInventory> inventories = new List <IMyInventory>(); foreach (var ingotContainer in ingots) { inventories.Add(ingotContainer.GetInventory()); amount++; currentVolume += (float)ingotContainer.GetInventory().CurrentVolume; maxVolume += (float)ingotContainer.GetInventory().MaxVolume; } int volume = (int)(currentVolume / maxVolume * 100); StorageData data = new StorageData(volume, amount); foreach (var inventory in inventories) { List <MyInventoryItem> items = new List <MyInventoryItem>(); inventory.GetItems(items); foreach (var item in items) { string itemName = item.Type.ToString(); itemName = itemName.Remove(0, itemName.IndexOf('/') + 1); if (data.items.ContainsKey(itemName)) { data.items[itemName] += (float)item.Amount; } else { data.AddItem(itemName, (float)item.Amount); } } } return(data); }