예제 #1
0
 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();
         }
     }
 }
예제 #2
0
        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;
                    }
                }
            }
        }