public static void Add(int houseID, int furnID, nItem item)
        {
            HouseFurniture furniture = HouseFurnitures[houseID][furnID];
            var            type      = SafesType[furniture.Name];

            var items = FurnituresItems[houseID][furnID];

            if (nInventory.ClothesItems.Contains(item.Type) || nInventory.WeaponsItems.Contains(item.Type) || item.Type == ItemType.CarKey)
            {
                items.Add(item);
            }
            else
            {
                var count = item.Count;
                for (int i = 0; i < items.Count; i++)
                {
                    if (i >= items.Count)
                    {
                        break;
                    }
                    if (items[i].Type == item.Type && items[i].Count < nInventory.ItemsStacks[item.Type])
                    {
                        var temp = nInventory.ItemsStacks[item.Type] - items[i].Count;
                        if (count < temp)
                        {
                            temp = count;
                        }
                        items[i].Count += temp;
                        count          -= temp;
                    }
                }

                while (count > 0)
                {
                    if (count >= nInventory.ItemsStacks[item.Type])
                    {
                        items.Add(new nItem(item.Type, nInventory.ItemsStacks[item.Type], item.Data));
                        count -= nInventory.ItemsStacks[item.Type];
                    }
                    else
                    {
                        items.Add(new nItem(item.Type, count, item.Data));
                        count = 0;
                    }
                }
            }

            FurnituresItems[houseID][furnID] = items;
            foreach (var p in NAPI.Pools.GetAllPlayers())
            {
                if (p == null || !Main.Players.ContainsKey(p))
                {
                    continue;
                }
                if ((p.HasData("OPENOUT_TYPE") && p.GetData("OPENOUT_TYPE") == type) && (Main.Players[p].InsideHouseID != -1 && Main.Players[p].InsideHouseID == houseID) && (p.HasData("OpennedSafe") && p.GetData("OpennedSafe") == furnID))
                {
                    GUI.Dashboard.OpenOut(p, items, furniture.Name, type);
                }
            }
        }
        public static int TryAdd(int houseID, int furnID, nItem item)
        {
            HouseFurniture furniture = HouseFurnitures[houseID][furnID];
            var            items     = FurnituresItems[houseID][furnID];

            var tail = 0;

            if (nInventory.ClothesItems.Contains(item.Type) || item.Type == ItemType.CarKey)
            {
                if (items.Count >= 25)
                {
                    return(-1);
                }
            }
            else
            {
                var count = 0;
                foreach (var i in items)
                {
                    if (i.Type == item.Type)
                    {
                        count += nInventory.ItemsStacks[i.Type] - i.Count;
                    }
                }

                var slots       = 25;
                var maxCapacity = (slots - items.Count) * nInventory.ItemsStacks[item.Type] + count;
                if (item.Count > maxCapacity)
                {
                    tail = item.Count - maxCapacity;
                }
            }
            return(tail);
        }
        public static void Remove(int houseID, int furnID, nItem item)
        {
            HouseFurniture furniture = HouseFurnitures[houseID][furnID];
            var            safeType  = SafesType[furniture.Name];
            var            items     = FurnituresItems[houseID][furnID];

            if (nInventory.ClothesItems.Contains(item.Type) || nInventory.WeaponsItems.Contains(item.Type) || item.Type == ItemType.CarKey)
            {
                items.Remove(item);
            }
            else
            {
                for (int i = items.Count - 1; i >= 0; i--)
                {
                    if (i >= items.Count)
                    {
                        continue;
                    }
                    if (items[i].Type != item.Type)
                    {
                        continue;
                    }
                    if (items[i].Count <= item.Count)
                    {
                        item.Count -= items[i].Count;
                        items.RemoveAt(i);
                    }
                    else
                    {
                        items[i].Count -= item.Count;
                        item.Count      = 0;
                        break;
                    }
                }
            }
            FurnituresItems[houseID][furnID] = items;
            foreach (var p in NAPI.Pools.GetAllPlayers())
            {
                if (p == null || !Main.Players.ContainsKey(p))
                {
                    continue;
                }
                if ((p.HasData("OPENOUT_TYPE") && p.GetData("OPENOUT_TYPE") == safeType) && (Main.Players[p].InsideHouseID != -1 && Main.Players[p].InsideHouseID == houseID) && (p.HasData("OpennedSafe") && p.GetData("OpennedSafe") == furnID))
                {
                    GUI.Dashboard.OpenOut(p, items, furniture.Name, safeType);
                }
            }
        }
        public static int GetCountOfType(int houseID, int furnID, ItemType type)
        {
            HouseFurniture furniture = HouseFurnitures[houseID][furnID];
            var            items     = FurnituresItems[houseID][furnID];
            var            count     = 0;

            for (int i = 0; i < items.Count; i++)
            {
                if (i >= items.Count)
                {
                    break;
                }
                if (items[i].Type == type)
                {
                    count += items[i].Count;
                }
            }

            return(count);
        }
        public static void newFurniture(int id, string name)
        {
            if (!HouseFurnitures.ContainsKey(id))
            {
                Create(id);
            }
            int i = HouseFurnitures[id].Count();

            while (HouseFurnitures[id].ContainsKey(i))
            {
                i++;
            }
            List <nItem> data = null;

            if (name == "Шкаф с одеждой" || name == "Оружейный сейф" || name == "Шкаф с предметами")
            {
                data = new List <nItem>();
            }
            HouseFurniture furn = new HouseFurniture(i, name, NameModels[name]);

            FurnituresItems[id].Add(furn.ID, data);
            HouseFurnitures[id].Add(i, furn);
        }