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();
            }
        }
Exemple #2
0
        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();
                }
            }
        }