Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <summary>
        /// Removes an item from the warehouse by its uid.
        /// </summary>
        /// <param name="ItemUID">The item uid.</param>
        /// <returns>Returns the removed item. [null if failed]</returns>
        public ItemInfo RemoveItemByUID(uint ItemUID)
        {
            byte pos = GetPositionFromItemUID(ItemUID);

            ItemInfo rItem;

            if (WarehouseItems.TryRemove(pos, out rItem))
            {
                Database.CharacterDatabase.SaveWarehouse(Owner, null, pos, WhID);
                //SendAll();
                return(rItem);
            }
            return(null);
        }
Esempio n. 3
0
 /// <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);
 }
Esempio n. 4
0
        /// <summary>
        /// Adds an item to the warehouse.
        /// </summary>
        /// <param name="item">The item to add.</param>
        /// <param name="pos">The position in the inventory.</param>
        /// <returns>Returns true if the item was added.</returns>
        public bool AddItem(ItemInfo item, byte pos)
        {
            if (Count >= 20)
            {
                using (var fmsg = Packets.Message.MessageCore.CreateSystem2(Owner.Name, Core.MessageConst.INVENTORY_FULL))
                    Owner.Send(fmsg);
                return(false);
            }

            if (WarehouseItems.TryAdd(pos, item))
            {
                item.OwnerUID = Owner.EntityUID;
                Database.CharacterDatabase.SaveWarehouse(Owner, item, pos, WhID);
                //SendAll();
                SendSingle(item);
                return(true);
            }
            return(false);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
 /// <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);
 }
Esempio n. 7
0
 /// <summary>
 /// Checks if the warehouse contains an item by position.
 /// </summary>
 /// <param name="pos">The position.</param>
 /// <returns>Returns true if there exists an item at the position.</returns>
 public bool ContainsByPos(byte pos)
 {
     return(WarehouseItems.ContainsKey(pos));
 }