private void Awake() { browser = UIRoot.instance.uiGame.blueprintBrowser; rtrans = (RectTransform)transform; feedbackTrans.gameObject.SetActive(false); SetActive(false); }
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); }
internal static void CheckDragEnd(UIBlueprintBrowser browser) { string targetPath = GetMoveTarget(browser); if (!targetPath.Equals("")) { MoveToDir(browser, targetPath); } }
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); }
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); }
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]); } } } } }
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(""); }
public static void OnOpenDirectory(UIBlueprintBrowser __instance, string fullpath) { __instance.openPath = fullpath; }