public void SetItem(int count, Item item)
 {
     Item = item;
     Count = count;
     
     Postman.Broadcast<StorageSlot>("item changed", this);
 }
        public static GameObject ClosestStorageForItem(Vector3 position, Item item)
        {
            List<IStorageBehaviour> possibleContainers = new List<IStorageBehaviour>();

            foreach (IStorageBehaviour storageContainer in StorageContainers)
            {
                if (storageContainer.CanAdd(item))
                    possibleContainers.Add(storageContainer);
            }

            GameObject closest = null;
            float dist = float.MaxValue;

            foreach (IStorageBehaviour possibleContainer in possibleContainers)
            {
                float d = Vector2.Distance(possibleContainer.gameObject.transform.position, position);

                if (d < dist)
                {
                    dist = d;
                    closest = possibleContainer.gameObject;
                }
            }

            return closest;
        }
 public StorageSlot(int count, Item item)
 {
     SetItem(count, item);
 }
 public FetchItemFromChest(StorageContainerBehaviour storageContainer, Item item)
 {
     _storageContainer = storageContainer;
     _item = item;
 }