private void Reload(MyEntity gun, SerializableDefinitionId ammo, bool reactor = false) { var cGun = gun; MyInventory inv = cGun.GetInventory(0); VRage.MyFixedPoint amount = new VRage.MyFixedPoint(); amount.RawValue = 2000000; var hasEnough = inv.ContainItems(amount, new MyObjectBuilder_Ingot() { SubtypeName = ammo.SubtypeName }); VRage.MyFixedPoint point = inv.GetItemAmount(ammo, MyItemFlags.None | MyItemFlags.Damaged); if (hasEnough) { return; } //inv.Clear(); Logger.Debug(ammo.SubtypeName + " [ReloadGuns] Amount " + amount); MyObjectBuilder_InventoryItem ii; if (reactor) { Logger.Debug(ammo.SubtypeName + " [ReloadGuns] loading reactor " + point.RawValue); ii = new MyObjectBuilder_InventoryItem() { Amount = 10, Content = new MyObjectBuilder_Ingot() { SubtypeName = ammo.SubtypeName } }; Logger.Debug(ammo.SubtypeName + " [ReloadGuns] loading reactor 2 " + point.RawValue); } else { Logger.Debug(ammo.SubtypeName + " [ReloadGuns] loading guns " + point.RawValue); ii = new MyObjectBuilder_InventoryItem() { Amount = 4, Content = new MyObjectBuilder_AmmoMagazine() { SubtypeName = ammo.SubtypeName } }; Logger.Debug(ammo.SubtypeName + " [ReloadGuns] loading guns 2 " + point.RawValue); } //inv. Logger.Debug(amount + " Amount : content " + ii.Content); inv.AddItems(amount, ii.Content); point = inv.GetItemAmount(ammo, MyItemFlags.None | MyItemFlags.Damaged); }
private bool CheckInventoryContents(MyInventory inventory, MyBlueprintDefinitionBase.Item[] item, MyFixedPoint amountMultiplier) { for (int i = 0; i < item.Length; ++i) { if (!inventory.ContainItems(item[i].Amount * amountMultiplier, item[i].Id)) { return(false); } } return(true); }
public bool AddItems(MyInventory inventory, MyObjectBuilder_PhysicalObject obj, bool overrideCheck, MyFixedPoint amount) { if (overrideCheck || !inventory.ContainItems(amount, obj)) { if (inventory.CanItemsBeAdded(amount, obj.GetId())) { inventory.AddItems(amount, obj); return(true); } else { return(false); } } else { return(false); } }
private void ConsumeFuel(int timeDelta) { RefreshRemainingCapacity(); if (!HasCapacityRemaining) { return; } if (CurrentPowerOutput == 0.0f) { return; } float consumptionPerMillisecond = CurrentPowerOutput / (60 * 60 * 1000); consumptionPerMillisecond /= m_reactorDefinition.FuelDefinition.Mass; // Convert weight to number of items MyFixedPoint consumedFuel = (MyFixedPoint)(timeDelta * consumptionPerMillisecond); if (consumedFuel == 0) { consumedFuel = MyFixedPoint.SmallestPossibleValue; } if (m_inventory.ContainItems(consumedFuel, m_reactorDefinition.FuelId)) { m_inventory.RemoveItemsOfType(consumedFuel, m_reactorDefinition.FuelId); } else if (MyFakes.ENABLE_INFINITE_REACTOR_FUEL) { m_inventory.AddItems((MyFixedPoint)(200 / m_reactorDefinition.FuelDefinition.Mass), m_reactorDefinition.FuelItem); } else { var amountAvailable = m_inventory.GetItemAmount(m_reactorDefinition.FuelId); m_inventory.RemoveItemsOfType(amountAvailable, m_reactorDefinition.FuelId); } //RefreshRemainingCapacity(); }
internal void RequestFillStockpile(MyInventory SourceInventory) { m_tmpComponents.Clear(); GetMissingComponents(m_tmpComponents); foreach (var component in m_tmpComponents) { MyDefinitionId componentDefinition = new MyDefinitionId(typeof(MyObjectBuilder_Component), component.Key); if (SourceInventory.ContainItems(1, componentDefinition)) { CubeGrid.RequestFillStockpile(Position, SourceInventory); return; } } }
private bool CheckInventoryContents(MyInventory inventory, MyBlueprintDefinitionBase.Item[] item, MyFixedPoint amountMultiplier) { for (int i = 0; i < item.Length; ++i) { if (!inventory.ContainItems(item[i].Amount * amountMultiplier, item[i].Id)) return false; } return true; }
private bool CheckInventoryContents(MyInventory inventory, MyBlueprintDefinitionBase.Item item, MyFixedPoint amountMultiplier) { return inventory.ContainItems(item.Amount * amountMultiplier, item.Id); }
public bool AddItems(MyInventory inventory, MyObjectBuilder_PhysicalObject obj, bool overrideCheck, MyFixedPoint amount) { if (overrideCheck || !inventory.ContainItems(amount, obj)) { if (inventory.CanItemsBeAdded(amount, obj.GetId())) { inventory.AddItems(amount, obj); return true; } else { return false; } } else { return false; } }
private bool CheckInventoryContents(MyInventory inventory, MyBlueprintDefinitionBase.Item item, MyFixedPoint amountMultiplier) { return(inventory.ContainItems(item.Amount * amountMultiplier, item.Id)); }