/// <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); } } } } }
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); }