public static void GenerateDebugInventoryItemsInfo() { string format = "{0}\t{1}\t{2}\t{3}\t{4}\t{5}"; StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format(format, "Type", "ID", "Max amount", "Price per unit", "Description", "Name")); MyInventory degubInventory = new MyInventory(1500); degubInventory.FillInventoryWithAllItems(null, null, true); foreach (var item in degubInventory.GetInventoryItems()) { sb.AppendLine(string.Format(format, item.ObjectBuilderType, item.ObjectBuilderId, item.MaxAmount, item.PricePerUnit, item.Description, item.GuiHelper.DescriptionEnum.ToString())); } string directory = @"C:\Temp"; string fileName = directory + @"\InventoryItemsInfo.txt"; if (File.Exists(fileName)) { File.Delete(fileName); } if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } using (var sw = File.CreateText(fileName)) { sw.Write(sb.ToString()); sw.Close(); } }
void MyMinerGame_OnGameUpdate(GameTime gt) { if (!MustBeSynchronized()) { if (m_inventoryItemsToAdd.Count > 0) { if (!m_inventory.UnlimitedCapacity) { m_inventoryItemsToAdd = m_inventoryItemsToAdd.GetRange(0, Math.Min(m_inventory.GetFreeSlotsCount(), m_inventoryItemsToAdd.Count)); } m_inventory.AddInventoryItems(m_inventoryItemsToAdd); m_inventoryItemsToAdd.Clear(); } if (m_inventoryItemsAmountChanges.Count > 0) { foreach (MyInventoryItemAmountDefinition itemAmountDef in m_inventoryItemsAmountChanges) { m_inventoryItemsHelper.Clear(); m_inventory.GetInventoryItems(ref m_inventoryItemsHelper, itemAmountDef.ObjectBuilderType, itemAmountDef.ObjectBuilderId); foreach (MyInventoryItem item in m_inventoryItemsHelper) { if (item.Amount == itemAmountDef.OriginalAmount) { Debug.Assert(item.Amount + itemAmountDef.AmountChange <= item.MaxAmount); item.Amount += itemAmountDef.AmountChange; break; } } } m_inventoryItemsAmountChanges.Clear(); } } }