コード例 #1
0
    public void OnDrop(PointerEventData eventData)
    {
        InventoryUI    invUI             = inventory.GetInventoryUI();
        DockUI         dockUI            = inventory.GetDockUI();
        UIDragableItem inventoryDragable = invUI.movingDragableItem;
        BagItem        preBagItem        = eventData.pointerDrag.GetComponent <BagItem>();
        ItemSlot       preSlot           = eventData.pointerDrag.GetComponent <ItemSlot>();

        if (preBagItem != null && preBagItem.gameObject.activeInHierarchy && invUI.hasDragable)
        {
            inventoryDragable.OnPlacementConfirm(this);
            inventoryDragable.GetComponent <RectTransform>().position = rectTransform.position;
            if (itemSlot != null)
            {
                dockUI.SetSlotItemAndSave(itemSlot, inventoryDragable.item);
                switch (itemSlot.positionType)
                {
                case ItemSlotPositionType.Dock:
                    break;

                case ItemSlotPositionType.Wear:
                    break;

                case ItemSlotPositionType.Bag:
                    break;
                }
                dockUI.UpdateWithInventoryChange(inventory);
            }
        }
        UIDragableItem dockDragable = dockUI.movingDragableItem;

        if (preSlot != null && preSlot.gameObject.activeInHierarchy && dockUI.hasDragable)
        {
            dockDragable.OnPlacementConfirm(this);
            dockDragable.GetComponent <RectTransform>().position = rectTransform.position;
            if (itemSlot != null)
            {
                Item itemWhichWasInTheSlotBeforeReplacement = itemSlot.item;
                inventory.dockUI.SetSlotItemAndSave(itemSlot, dockDragable.item);
                switch (itemSlot.positionType)
                {
                case ItemSlotPositionType.Dock:
                    // move from one dock slot to another
                    inventory.dockUI.SetSlotItemAndSave(preSlot, itemWhichWasInTheSlotBeforeReplacement);
                    break;

                case ItemSlotPositionType.Wear:
                    break;

                case ItemSlotPositionType.Bag:
                    break;
                }
                // update the dock
                dockUI.UpdateWithInventoryChange(inventory);
            }
        }
    }
コード例 #2
0
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (provider != null)
     {
         IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService) provider.GetService(typeof(IWindowsFormsEditorService));
         if (edSvc == null)
         {
             return value;
         }
         if (this.dockUI == null)
         {
             this.dockUI = new DockUI(this);
         }
         this.dockUI.Start(edSvc, value);
         edSvc.DropDownControl(this.dockUI);
         value = this.dockUI.Value;
         this.dockUI.End();
     }
     return value;
 }
コード例 #3
0
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (provider != null)
     {
         IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
         if (edSvc == null)
         {
             return(value);
         }
         if (this.dockUI == null)
         {
             this.dockUI = new DockUI(this);
         }
         this.dockUI.Start(edSvc, value);
         edSvc.DropDownControl(this.dockUI);
         value = this.dockUI.Value;
         this.dockUI.End();
     }
     return(value);
 }
コード例 #4
0
ファイル: DockEditor.cs プロジェクト: liuwenye2010/prj_vs2019
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider == null)
            {
                return(value);
            }
            if (!(provider.GetService(typeof(IWindowsFormsEditorService)) is IWindowsFormsEditorService edSvc))
            {
                return(value);
            }

            if (_dockUI == null)
            {
                _dockUI = new DockUI(this);
            }

            _dockUI.Start(edSvc, value);
            edSvc.DropDownControl(_dockUI);
            value = _dockUI.Value;
            _dockUI.End();

            return(value);
        }