Terraria.Chest.PutItemInNearbyChest C# (CSharp) Method

PutItemInNearbyChest() public static method

public static PutItemInNearbyChest ( Item item, Vector2 position ) : Item
item Item
position Vector2
return Item
        public static Item PutItemInNearbyChest(Item item, Vector2 position)
        {
            if (Main.netMode == 1)
                return item;
            for (int i = 0; i < 1000; ++i)
            {
                bool flag1 = false;
                bool flag2 = false;
                if (Main.chest[i] != null && !IsPlayerInChest(i) && !isLocked(Main.chest[i].x, Main.chest[i].y) && (new Vector2((Main.chest[i].x * 16 + 16), (Main.chest[i].y * 16 + 16)) - position).Length() < 200.0)
                {
                    for (int index = 0; index < Main.chest[i].item.Length; ++index)
                    {
                        if (Main.chest[i].item[index].itemId > 0 && Main.chest[i].item[index].stack > 0)
                        {
                            if (item.IsTheSameAs(Main.chest[i].item[index]))
                            {
                                flag1 = true;
                                int num = Main.chest[i].item[index].maxStack - Main.chest[i].item[index].stack;
                                if (num > 0)
                                {
                                    if (num > item.stack)
                                        num = item.stack;
                                    item.stack -= num;
                                    Main.chest[i].item[index].stack += num;
                                    if (item.stack <= 0)
                                    {
                                        item.SetDefaults(0, false);
                                        return item;
                                    }
                                }
                            }
                        }
                        else
                            flag2 = true;
                    }
                    if (flag1 && flag2 && item.stack > 0)
                    {
                        for (int index = 0; index < Main.chest[i].item.Length; ++index)
                        {
                            if (Main.chest[i].item[index].itemId == 0 || Main.chest[i].item[index].stack == 0)
                            {
                                Main.chest[i].item[index] = item.Clone();
                                item.SetDefaults(0, false);
                                return item;
                            }
                        }
                    }
                }
            }
            return item;
        }