public void refund(PartsPlayer player, ref Item toRefund) { if (isAvailable() && !irreversible && toRefund.type == result.type && toRefund.stack >= result.stack) { foreach (Item itm in parts) { player.addPart(itm.Clone()); } toRefund.stack -= result.stack; if (toRefund.stack <= 0) { toRefund.TurnToAir(); } } }
public void whileMouseHovering() { PartsPlayer p = Main.player[Main.myPlayer].GetModPlayer <PartsPlayer>(); if (Main.mouseLeftRelease && Main.mouseLeft) { if (Main.mouseItem == null || Main.mouseItem.type == 0) { Main.mouseItem = ARareItemSwapJPANs.getItemFromTag(partTag); if (p.getPartAmount(partTag) >= Main.mouseItem.maxStack) { Main.mouseItem.stack = Main.mouseItem.maxStack; p.decreasePart(partTag, Main.mouseItem.maxStack); } else if (p.getPartAmount(partTag) > 0) { Main.mouseItem.stack = (int)p.getPartAmount(partTag); p.decreasePart(partTag, p.getPartAmount(partTag)); } else { Main.mouseItem.TurnToAir(); } } else { if (p.addPart(Main.mouseItem)) { Main.mouseItem.TurnToAir(); } } } else if (Main.stackSplit <= 1 && Main.mouseRight) { if (item.maxStack >= 1 && (Main.mouseItem.IsTheSameAs(item) || Main.mouseItem.type == 0) && (Main.mouseItem.stack < Main.mouseItem.maxStack || Main.mouseItem.type == 0)) { if (Main.mouseItem.type == 0) { if (p.decreasePart(partTag) != -1) { Main.mouseItem = ARareItemSwapJPANs.getItemFromTag(partTag); Main.mouseItem.stack = 1; } } else { if (Main.mouseItem.stack <= Main.mouseItem.maxStack && ARareItemSwapJPANs.ItemToTag(Main.mouseItem).Equals(partTag)) { if (p.decreasePart(partTag) != -1) { Main.mouseItem.stack++; } } } 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; } } } }