public bool PerformCanClick()
        {
            var canClick = true;

            OnCanClick(ref canClick);
            CanClick?.Invoke(this, ref canClick);
            return(canClick);
        }
Пример #2
0
        public override void MouseDown(UIMouseEvent evt)
        {
            if (!Visible)
            {
                return;
            }

            _isClicking = true;
            if (CanClick?.Invoke() ?? true)
            {
                base.MouseDown(evt);
            }
        }
Пример #3
0
        public override void MouseDown(UIMouseEvent evt)
        {
            Player player = Main.LocalPlayer;

            if (player.itemAnimation == 0 && player.itemTime == 0)
            {
                if (CanClick?.Invoke() ?? true)
                {
                    Utils.Swap(ref item, ref Main.mouseItem);
                    if (item.type == 0 || item.stack < 1)
                    {
                        item = new Item();
                    }

                    if (Main.mouseItem.IsTheSameAs(item))
                    {
                        Utils.Swap(ref item.favorited, ref Main.mouseItem.favorited);
                        if (item.stack != item.maxStack && Main.mouseItem.stack != Main.mouseItem.maxStack)
                        {
                            if (Main.mouseItem.stack + item.stack <= Main.mouseItem.maxStack)
                            {
                                item.stack          += Main.mouseItem.stack;
                                Main.mouseItem.stack = 0;
                            }
                            else
                            {
                                int giveAmount = Main.mouseItem.maxStack - item.stack;
                                item.stack           += giveAmount;
                                Main.mouseItem.stack -= giveAmount;
                            }
                        }
                    }
                    if (Main.mouseItem.type == 0 || Main.mouseItem.stack < 1)
                    {
                        Main.mouseItem = new Item();
                    }

                    if (Main.mouseItem.type > 0 || item.type > 0)
                    {
                        Recipe.FindRecipes();
                        Main.PlaySound(SoundID.Grab);
                    }
                    base.MouseDown(evt);
                }
            }
        }