コード例 #1
0
 private void Awake()
 {
     browser = UIRoot.instance.uiGame.blueprintBrowser;
     rtrans  = (RectTransform)transform;
     feedbackTrans.gameObject.SetActive(false);
     SetActive(false);
 }
コード例 #2
0
        public static void OnCreate(UIBlueprintBrowser __instance)
        {
            //Move original buttons
            __instance.addrTrans.offsetMin = new Vector2(280, -36);
            ((RectTransform)__instance.upLevelButton.transform).anchoredPosition   += new Vector2(45, 0);
            ((RectTransform)__instance.newFolderButton.transform).anchoredPosition += new Vector2(45, 0);
            ((RectTransform)__instance.newFileButton.transform).anchoredPosition   += new Vector2(45, 0);

            //Create new Button
            GameObject    cut      = __instance.cutButton.gameObject;
            GameObject    paste    = Object.Instantiate(cut, cut.transform.parent, true);
            RectTransform pasteTrs = (RectTransform)paste.transform;

            //Change its position and size
            pasteTrs.anchoredPosition = new Vector2(82, 2);
            pasteTrs.sizeDelta        = new Vector2(40, 40);

            //Change button icon
            RectTransform pasteIconTrs = (RectTransform)pasteTrs.Find("icon");
            Sprite        newIcon      = BlueprintTweaksPlugin.resource.bundle.LoadAsset <Sprite>("Assets/BlueprintTweaks/Icons/paste-icon.png");

            pasteIconTrs.GetComponent <Image>().sprite = newIcon;
            UIButton uiButton = pasteTrs.GetComponent <UIButton>();

            uiButton.tips.tipTitle = "BPBrowserPasteButtonTipTitle";
            uiButton.tips.tipText  = "BPBrowserPasteButtonTipDesc";

            Button pasteButton = pasteTrs.GetComponent <Button>();

            pasteButton.onClick.RemoveAllListeners();
            pasteButton.onClick.AddListener(OnPasteButtonClicked);
        }
コード例 #3
0
        internal static void CheckDragEnd(UIBlueprintBrowser browser)
        {
            string targetPath = GetMoveTarget(browser);

            if (!targetPath.Equals(""))
            {
                MoveToDir(browser, targetPath);
            }
        }
コード例 #4
0
        public static void OnCreateBrowser(UIBlueprintBrowser __instance)
        {
            RectTransform mainTrs = (RectTransform)__instance.transform;

            mainTrs.sizeDelta = new Vector2(mainTrs.sizeDelta.x + 22, mainTrs.sizeDelta.y);
            RectTransform groupBg = (RectTransform)mainTrs.Find("inspector-group-bg");

            groupBg.sizeDelta = new Vector2(groupBg.sizeDelta.x + 22, groupBg.sizeDelta.y);
        }
コード例 #5
0
        private static void MoveToDir(UIBlueprintBrowser browser, string targetPath)
        {
            string sourcePath     = drag.displayFile.fullPath;
            string sourceFileName = sourcePath.Split('/').Last();
            string destPath       = targetPath.SlashDirectory() + sourceFileName;

            if (!drag.displayFile.isDirectory)
            {
                try
                {
                    File.Move(sourcePath, destPath);
                }
                catch (IOException e)
                {
                    bool exists = File.Exists(destPath);
                    if (exists)
                    {
                        UIMessageBox.Show("FileAlreadyExistsTitle".Translate(), "FileAlreadyExistsDesc".Translate(), "确定".Translate(), UIMessageBox.WARNING);
                    }
                    BlueprintTweaksPlugin.logger.LogWarning($"Error moving files: {e.Message}");
                    return;
                }
            }
            else if (drag.displayFile.isDirectory)
            {
                if (targetPath.Equals(drag.displayFile.fullPath))
                {
                    return;
                }

                try
                {
                    Directory.Move(sourcePath, destPath);
                }
                catch (IOException e)
                {
                    bool exists = Directory.Exists(destPath);
                    if (exists)
                    {
                        UIMessageBox.Show("FileAlreadyExistsTitle".Translate(), "FileAlreadyExistsDesc".Translate(), "确定".Translate(), UIMessageBox.WARNING);
                    }
                    BlueprintTweaksPlugin.logger.LogWarning($"Error moving files: {e.Message}");
                    return;
                }
            }
            browser.SetCurrentDirectory(browser.currentDirectoryInfo.FullName);
        }
コード例 #6
0
        public static void OnUpdate(UIBlueprintBrowser __instance)
        {
            if (drag.isActive)
            {
                return;
            }

            if (UIRoot.ScreenPointIntoRect(Input.mousePosition, __instance.contentTrans, out Vector2 rectPoint))
            {
                int x = Mathf.FloorToInt((rectPoint.x - 5) / 110);
                int y = Mathf.FloorToInt((-rectPoint.y - 5) / 120);

                int index = x + y * 8;

                if (x < 0 || x >= 8)
                {
                    return;
                }
                if (index < 0 || index >= __instance.fileItems.Count)
                {
                    return;
                }

                if (Input.GetMouseButtonDown(0))
                {
                    dragMouseBegin = Input.mousePosition;
                }

                if (Input.GetMouseButton(0))
                {
                    Vector2 vector = (Vector2)Input.mousePosition - dragMouseBegin;
                    if (Mathf.Abs(vector.x) + Mathf.Abs(vector.y) > dragThreshold)
                    {
                        if (__instance.fileItems[index].inited)
                        {
                            drag.SetHand(__instance.fileItems[index]);
                        }
                    }
                }
            }
        }
コード例 #7
0
        internal static string GetMoveTarget(UIBlueprintBrowser browser)
        {
            if (drag.displayFile == null || drag.displayFile.fullPath.Equals(""))
            {
                return("");
            }

            if (UIRoot.ScreenPointIntoRect(Input.mousePosition, browser.contentTrans, out Vector2 vector))
            {
                int x = Mathf.FloorToInt((vector.x - 5) / 110);
                int y = Mathf.FloorToInt((-vector.y - 5) / 120);

                if (x >= 0 && x < 8)
                {
                    int index = x + y * 8;

                    if (index >= 0 && index < browser.fileItems.Count)
                    {
                        UIBlueprintFileItem target = browser.fileItems[index];
                        if (target.isDirectory)
                        {
                            return(target.fullPath);
                        }
                    }
                }
            }

            try
            {
                var addrItem = browser.addrItems.First(item => item.rectTrans.MouseInRect());
                return(addrItem.fullPath);
            }
            catch (InvalidOperationException) { }

            return("");
        }
コード例 #8
0
 public static void OnOpenDirectory(UIBlueprintBrowser __instance, string fullpath)
 {
     __instance.openPath = fullpath;
 }