public bool RemoveFromDefinition(CWDefinition definition, int quantity) { InventoryEntry existingInventoryEntry = FindInventoryEntryFromDefinition(definition); while (quantity > 0 && existingInventoryEntry != null) { if (existingInventoryEntry.quantity >= quantity) { int temp = existingInventoryEntry.quantity; existingInventoryEntry.quantity -= quantity; quantity -= temp; } else { int temp = existingInventoryEntry.quantity; existingInventoryEntry.quantity = 0; quantity -= temp; } if (existingInventoryEntry.quantity == 0) entries.Remove(existingInventoryEntry); existingInventoryEntry = FindInventoryEntryFromDefinition(definition); } return quantity <= 0; }
public InventoryEntry FindInventoryEntryFromDefinition(CWDefinition definition) { foreach (InventoryEntry entry in entries) if (entry.cwobject.definition == definition) return entry; return null; }
public bool HasMoreOfDefinition(CWDefinition definition) { return FindInventoryEntryFromDefinition(definition) != null; }