private bool withdrawItem(Item itm, ref bool rebuild) { /*if(itm.type > 70 && itm.type < 75){ * long money = mergeAllCoins(); * for(int i = 0; i < 50; i++){ * * } * }*/ string itmTag = GenericHoldingBag.ItemToTag(itm); int total = (int)Math.Min(openBag.items.GetAsLong(itmTag), itm.maxStack); Item t = itm.Clone(); t.stack = total; t = player.GetItem(player.whoAmI, t, false, true); total -= t.stack; long l = openBag.items.GetAsLong(itmTag) - total; openBag.items.Remove(itmTag); if (l > 0) { openBag.items[itmTag] = l; } else { openBag.items[itmTag] = 0L; itm.SetDefaults(0); rebuild = true; } return(true); }
private void ItemSlotHandle(Item itm, ref bool rebuild) { string itmTag = GenericHoldingBag.ItemToTag(itm); if (Main.mouseLeftRelease && Main.mouseLeft) { if (Main.mouseItem != null && Main.mouseItem.type != 0) { Item t = Main.mouseItem; openBag.addItem(t); if (t.stack == 0) { Main.mouseItem = new Item(); } rebuild = true; } else { if (itm != null && itm.type != 0 && openBag.items.ContainsKey(itmTag)) { if (ItemSlot.ShiftInUse) { if (withdrawItem(itm, ref rebuild)) { Recipe.FindRecipes(); } } else { int total = (int)Math.Min((long)(openBag.items[itmTag]), itm.maxStack); Main.mouseItem = itm.Clone(); Main.mouseItem.stack = total; long l = (long)(openBag.items[itmTag]) - total; openBag.items.Remove(itmTag); if (l > 0) { openBag.items[itmTag] = l; } else { openBag.items[itmTag] = 0L; itm.SetDefaults(0); rebuild = true; } } } } } else if (Main.stackSplit <= 1 && Main.mouseRight && (itm != null && itm.type != 0 && openBag.items.ContainsKey(itmTag))) { if (itm.maxStack >= 1 && (Main.mouseItem.IsTheSameAs(itm) || Main.mouseItem.type == 0) && (Main.mouseItem.stack < Main.mouseItem.maxStack || Main.mouseItem.type == 0)) { if (Main.mouseItem.type == 0) { Main.mouseItem = itm.Clone(); Main.mouseItem.stack = 0; } Main.mouseItem.stack++; long l = (long)(openBag.items[itmTag]) - 1; openBag.items.Remove(itmTag); if (l > 0) { openBag.items[itmTag] = l; } else { openBag.items[itmTag] = 0L; itm.SetDefaults(0); rebuild = true; } Recipe.FindRecipes(); Main.soundInstanceMenuTick.Stop(); Main.soundInstanceMenuTick = Main.soundMenuTick.CreateInstance(); Main.PlaySound(12, -1, -1, 1, 1f, 0f); if (Main.stackSplit == 0) { Main.stackSplit = 15; } else { Main.stackSplit = Main.stackDelay; } } } if (itm != null && itm.type != 0 && openBag.items.ContainsKey(itmTag)) { Main.hoverItemName = itm.HoverName; object hoverItemName = Main.hoverItemName; Main.hoverItemName = string.Concat(new object[] { hoverItemName, " (", "" + (openBag.items[itmTag]) + " left in the bag", ")" }); } else { } }