/// <summary>
 /// Changes inventory item's amount. When add/remove object to/from building queue
 /// </summary>
 /// <param name="remove">Remove = true, Add = false</param>
 /// <param name="ratio">Ratio of item's amount</param>
 /// <param name="objectToBuild">Object to build</param>
 private void ChangeInventoryItemsAmount(bool remove, float ratio, MyObjectToBuild objectToBuild)
 {
     foreach (IMyBuildingRequirement buildingRequirement in objectToBuild.BuildingSpecification.BuildingRequirements)
     {
         MyBuildingRequirementInventoryItem buildingRequirementInventoryItem = buildingRequirement as MyBuildingRequirementInventoryItem;
         if (buildingRequirementInventoryItem != null)
         {
             if (buildingRequirementInventoryItem.RemoveAfterBuild)
             {
                 if (remove)
                 {
                     Player.Ship.Inventory.RemoveInventoryItemAmount(buildingRequirementInventoryItem.ObjectBuilderType,
                                                                     buildingRequirementInventoryItem.ObjectBuilderId,
                                                                     buildingRequirementInventoryItem.Amount * ratio);
                 }
                 else
                 {
                     Player.Ship.Inventory.AddInventoryItem(buildingRequirementInventoryItem.ObjectBuilderType,
                                                            buildingRequirementInventoryItem.ObjectBuilderId,
                                                            buildingRequirementInventoryItem.Amount * ratio, false);
                 }
             }
         }
     }
 }
Exemple #2
0
        private bool FilterResultByItemOnWhichHasOre(MyTreeViewItem item)
        {
            MyObjectToBuild objectToBuild = item.Tag as MyObjectToBuild;

            if (m_activeItemsOnWhichHasOreFilter)
            {
                foreach (IMyBuildingRequirement buildingRequirement in objectToBuild.BuildingSpecification.BuildingRequirements)
                {
                    if (buildingRequirement is MyBuildingRequirementInventoryItem)
                    {
                        MyBuildingRequirementInventoryItem inventoryItemRequirement = buildingRequirement as MyBuildingRequirementInventoryItem;
                        if (inventoryItemRequirement.ObjectBuilderType == MyMwcObjectBuilderTypeEnum.Ore &&
                            !inventoryItemRequirement.Check(MyEditor.Static.FoundationFactory))
                        {
                            return(false);
                        }
                    }
                }
                return(true);
            }
            return(true);
        }