/// <summary> /// Gets an item from the warehouse by its id. /// </summary> /// <param name="ItemID">The item id.</param> /// <returns>Returns the item. [null if failed]</returns> public ItemInfo GetItemByID(uint ItemID) { byte pos = GetPositionFromItemID(ItemID); ItemInfo rItem; if (WarehouseItems.TryGetValue(pos, out rItem)) { return(rItem); } return(null); }
/// <summary> /// Gets an item position from an item uid. /// </summary> /// <param name="ItemID">The item id.</param> /// <returns>Returns the item uid.</returns> public byte GetPositionFromItemUID(uint ItemUID) { foreach (byte key in WarehouseItems.Keys) { ItemInfo finditem; if (WarehouseItems.TryGetValue(key, out finditem)) { if (finditem.UID == ItemUID) { return(key); } } } return(20); }
/// <summary> /// Gets an uid from an item id. /// </summary> /// <param name="ItemID">The item id.</param> /// <param name="TotalAmounts">[out] The total amount of items contained with the id.</param> /// <returns>Returns the item uid.</returns> public uint GetUIDFromItemID(uint ItemID, out byte TotalAmounts) { uint find = 0; TotalAmounts = 0; foreach (byte key in WarehouseItems.Keys) { ItemInfo finditem; if (WarehouseItems.TryGetValue(key, out finditem)) { if (finditem.ItemID == ItemID) { if (TotalAmounts == 0) { find = finditem.UID; } TotalAmounts++; } } } return(find); }
/// <summary> /// Removes an item from the warehouse based on is iteminfo. /// </summary> /// <param name="info">The item info.</param> /// <returns>Returns true if the item was removed.</returns> public bool RemoveItem(ItemInfo info) { foreach (byte key in WarehouseItems.Keys) { ItemInfo ritem; if (WarehouseItems.TryGetValue(key, out ritem)) { if (ritem.UID == info.UID) { if (WarehouseItems.TryRemove(key, out ritem)) { Database.CharacterDatabase.SaveWarehouse(Owner, null, key, WhID); //SendAll(); return(true); } else { return(false); } } } } return(false); }