Beispiel #1
0
        protected override void OnInit(Point2D position, object[] args)
        {
            int i = 3;

            var resId      = (int)args[0];
            var q          = (int)args[1];
            var dragOffset = (int)args[2] != 0 ? (Point2D?)args[i++] : null;
            var tooltip    = args.Length > i ? (string)args[i++] : null;
            var num        = args.Length > i ? (int)args[i] : -1;

            var itemMold = Session.Resources.Get <ItemProto>(resId);
            var item     = new Item(itemMold);

            item.Quality = q;
            item.Amount  = num;
            if (!string.IsNullOrEmpty(tooltip))
            {
                item.Tooltip = tooltip;
            }

            widget           = new ItemWidget(Parent.Widget, dragOffset);
            widget.Take     += (p) => SendMessage("take", p);
            widget.Transfer += (p) => SendMessage("transfer", p);
            widget.Drop     += (p) => SendMessage("drop", p);
            widget.Act      += (p) => SendMessage("iact", p);
            widget.Interact += (mods) => SendMessage("itemact", ServerInput.ToServerModifiers(mods));
            widget.Item      = item;

            if (dragOffset.HasValue)
            {
                widget.Move(Session.Screen.MousePosition.Sub(dragOffset.Value));
            }
            else
            {
                widget.Move(position);
            }
        }