/// <summary> /// Start a drag&drop operation with the given IFileSearchResults /// </summary> /// <param name="searchResults"></param> /// <param name="overallItemAudioType"></param> /// <returns></returns> private DragDropEffects StartDragFileSearchResults(IEnumerable <IFileSearchResult> searchResults, AudioSearchResultType overallItemAudioType, AresTargetDirectoryProvider targetDirectoryProvider) { List <DraggedItem> draggedFiles = new List <DraggedItem>(); foreach (IFileSearchResult fileSearchResult in searchResults) { // Create a new DraggedItem (dragged file/folder) DraggedItem draggedFile = new DraggedItem(); // Set item & node type for the file draggedFile.ItemType = overallItemAudioType == AudioSearchResultType.MusicFile ? FileType.Music : FileType.Sound; draggedFile.NodeType = DraggedItemType.File; // Determine the relative path where the downloaded file will be placed string relativeDownloadPath = targetDirectoryProvider.GetFolderWithinLibrary(fileSearchResult); draggedFile.RelativePath = System.IO.Path.Combine(relativeDownloadPath, fileSearchResult.Filename); draggedFile.Title = fileSearchResult.Title; draggedFiles.Add(draggedFile); } // Start a file/folder drag & drop operation for those files FileDragInfo info = new FileDragInfo(); info.Source = FileSource.Online; info.DraggedItems = draggedFiles; info.TagsFilter = new TagsFilter(); return(DoDragDrop(info, DragDropEffects.Copy)); }
public void EquipDraggedItem() { var settings = applicationSettings.GetRucksackItemSettings(DraggedItem.SettingsId); int slotIndex = 0; for (int i = 0; i < dataModel.RucksackData.Length; i++) { if (dataModel.RucksackData[i].ItemType == settings.ItemType) { slotIndex = i; } } var data = dataModel.RucksackData[slotIndex]; if (data.ItemId != Constants.UnEquippedItemId) { UnEquip(data.ItemId); } dataModel.SetItem(settings.ItemType, DraggedItem.InstanceId); data.ItemId = DraggedItem.InstanceId; DraggedItem.SetEquipped(true); DraggedItem.transform.localPosition = Vector3.zero; DraggedItem.transform.localRotation = Quaternion.identity; DraggedItem = null; }
private static void AddItemsToSet(Dictionary <String, DraggedItem> uniqueItems, DraggedItem item, HashSet <String> allowedItems, HashSet <String> unallowedItems, String musicDirectory, String soundDirectory, System.Threading.CancellationToken token) { String baseDir = item.ItemType == FileType.Music ? musicDirectory : soundDirectory; String path = System.IO.Path.Combine(baseDir, item.RelativePath); if (item.NodeType == DraggedItemType.Directory) { if (System.IO.Directory.Exists(path)) { foreach (String file in FileSearch.GetFilesInDirectory(item.ItemType, path, true)) { AddItemsToSet(uniqueItems, new DraggedItem { NodeType = DraggedItemType.File, ItemType = item.ItemType, RelativePath = file.Substring(baseDir.Length + 1) }, allowedItems, unallowedItems, musicDirectory, soundDirectory, token); token.ThrowIfCancellationRequested(); } } } else { if (allowedItems == null || allowedItems.Contains(item.RelativePath, StringComparer.InvariantCultureIgnoreCase)) { if (unallowedItems == null || !unallowedItems.Contains(item.RelativePath, StringComparer.InvariantCultureIgnoreCase)) { String key = System.IO.Path.GetFullPath(path); if (!uniqueItems.ContainsKey(path)) { uniqueItems[key] = item; } } } } }
/* * Dragging stopped (IEndDragHandler) */ public void OnEndDrag(PointerEventData eventData) { if (_draggedItem != null) { _draggedItem.Drop(eventData.position); _draggedItem = null; } }
public static void BeginDrag(Root GuiRoot, DraggedItem Item) { if (Item != null) { GuiRoot.ShowMinorPopup(Item); GuiRoot.Dragging = true; } }
/* * Dragging stopped (IEndDragHandler) */ public void OnEndDrag(PointerEventData eventData) { if (_draggedItem != null) { audioSource.PlayOneShot(dropSFX); _draggedItem.Drop(eventData.position); _draggedItem = null; } }
/* * Dragging stopped (IEndDragHandler) */ public void OnEndDrag(PointerEventData eventData) { if (_draggedItem != null) { _draggedItem.Drop(eventData.position); _draggedItem = null; // Play hold audio holdAudioSource.Stop(); } }
public void MakeFor(ItemType item, RectTransform parentPanel, DraggedItem draggedItemPrefab, System.Func <bool> onTakeItem, System.Action onReturnItem) { parent = parentPanel; this.item = item; this.draggedItemPrefab = draggedItemPrefab; this.onReturnItem = onReturnItem; this.onTakeItem = onTakeItem; }
private void FTree_DragOver(object sender, DragEventArgs e) { e.Effect = DragDropEffects.None; DraggedItem draggedItem = (DraggedItem)e.Data.GetData(typeof(DraggedItem)); TreeNode targetNode = FTree.GetNodeAt(FTree.PointToClient(new Point(e.X, e.Y))); if (draggedItem.Obj is Parameter) { if (targetNode.Tag is ParameterCollection || (targetNode.Tag is Parameter && targetNode.Tag != draggedItem.Obj && !(targetNode.Tag as Parameter).HasParent(draggedItem.Obj as Parameter))) { e.Effect = e.AllowedEffect; } } }
private static IElement CreateFileElement(DraggedItem item, String musicDirectory, String soundDirectory) { IFileElement element = Ares.Data.DataModule.ElementFactory.CreateFileElement(item.RelativePath, item.ItemType == FileType.Music ? SoundFileType.Music : SoundFileType.SoundEffect); String dir = item.ItemType == FileType.Music ? musicDirectory : soundDirectory; String path = System.IO.Path.Combine(dir, item.RelativePath); Un4seen.Bass.AddOn.Tags.TAG_INFO tag = Un4seen.Bass.AddOn.Tags.BassTags.BASS_TAG_GetFromFile(path, true, true); if (!String.IsNullOrEmpty(tag?.title)) { element.Title = tag.title; } else if (String.IsNullOrEmpty(item.Title)) { element.Title = System.IO.Path.GetFileNameWithoutExtension(path); } else { element.Title = item.Title; } return(element); }
/* * Dragging started (IBeginDragHandler) */ public void OnBeginDrag(PointerEventData eventData) { _renderer.ClearSelection(); if (_itemToDrag != null && _draggedItem == null) { var t = _renderer.RectTransform.InverseTransformPoint(eventData.position); var localPosition = new Vector2(t.x, t.y); var offset = _renderer.GetItemOffset(_itemToDrag) - localPosition; // Create a dragged item _draggedItem = new DraggedItem( this, _itemToDrag.Shape.Position, _itemToDrag, offset ); // Remove the item from inventory _inventory.Remove(_itemToDrag); } }
private void FTree_DragDrop(object sender, DragEventArgs e) { DraggedItem draggedItem = (DraggedItem)e.Data.GetData(typeof(DraggedItem)); TreeNode targetNode = FTree.GetNodeAt(FTree.PointToClient(new Point(e.X, e.Y))); Parameter draggedComponent = draggedItem.Obj as Parameter; Object targetComponent = targetNode.Tag; if (targetComponent is ParameterCollection) { ParameterCollection collection = targetComponent as ParameterCollection; if (collection.IndexOf(draggedComponent) != -1) { collection.Remove(draggedComponent); collection.Insert(0, draggedComponent); } else { collection.Add(draggedComponent); } } else if (targetComponent is Parameter) { if ((targetComponent as Parameter).Parameters.IndexOf(draggedComponent) != -1) { draggedComponent.ZOrder = 0; } else { draggedComponent.Parent = targetComponent as Parameter; } } string draggedName = draggedComponent.FullName; FTree.SelectedNode = targetNode; // update all designer plugins (this one too) Designer.SetModified(null, "EditData"); NavigateTo(Res.Get("Designer,ToolWindow,Dictionary,Parameters") + "." + draggedName); }
/* * Dragging started (IBeginDragHandler) */ public void OnBeginDrag(PointerEventData eventData) { _renderer.ClearSelection(); if (_itemToDrag != null && _draggedItem == null) { var localPosition = ScreenToLocalPositionInRenderer(eventData.position); var itemOffest = _renderer.GetItemOffset(_itemToDrag); var offset = itemOffest - localPosition; // Create a dragged item _draggedItem = new DraggedItem( _canvas, this, _itemToDrag.Shape.Position, _itemToDrag, offset ); // Remove the item from inventory _inventory.Remove(_itemToDrag); } }
public void Start() { draggedItem = DraggedItem.GetInstance(); }
static Draggable() { draggedItem = DraggedItem.GetInstance(); }
public override void DrawItem(Rect position, int index) { SerializedProperty shoppingItem = this[index]; int controlID = GUIUtility.GetControlID(FocusType.Passive); switch (Event.current.GetTypeForControl(controlID)) { case EventType.MouseDown: Rect totalItemPosition = ReorderableListGUI.CurrentItemTotalPosition; //var width = totalItemPosition.width - widthBt * 8; //width /= 1.5f; //Rect draggableRect = new Rect(width + totalItemPosition.x, totalItemPosition.y, totalItemPosition.width - width - widthBt * 8,EditorGUIUtility.singleLineHeight); var draggableRect = new Rect(totalItemPosition.x, totalItemPosition.y, totalItemPosition.width * 0.1f, EditorGUIUtility.singleLineHeight); if (draggableRect.Contains(Event.current.mousePosition)) { // Select this list item. s_SelectedList = this; s_SelectedItem = shoppingItem; } // Calculate rectangle of draggable area of the list item. // This example excludes the grab handle at the left. //draggableRect.x = position.x; //draggableRect.width = position.width; if (Event.current.button == 0 && draggableRect.Contains(Event.current.mousePosition)) { // Select this list item. s_SelectedList = this; s_SelectedItem = shoppingItem; // Lock onto this control whilst left mouse button is held so // that we can start a drag-and-drop operation when user drags. GUIUtility.hotControl = controlID; s_MouseDownPosition = Event.current.mousePosition; Event.current.Use(); } break; case EventType.MouseDrag: if (GUIUtility.hotControl == controlID) { GUIUtility.hotControl = 0; // Begin drag-and-drop operation when the user drags the mouse // pointer across the threshold. This threshold helps to avoid // inadvertently starting a drag-and-drop operation. if (Vector2.Distance(s_MouseDownPosition, Event.current.mousePosition) >= MouseDragThresholdInPixels) { // Prepare data that will represent the item. var item = new DraggedItem(this, index, shoppingItem); // Start drag-and-drop operation with the Unity API. DragAndDrop.PrepareStartDrag(); // Need to reset `objectReferences` and `paths` because `PrepareStartDrag` // doesn't seem to reset these (at least, in Unity 4.x). DragAndDrop.objectReferences = new Object[0]; DragAndDrop.paths = new string[0]; DragAndDrop.SetGenericData(DraggedItem.TypeName, item); var element = shoppingItem.FindPropertyRelative("prefab"); if (element.objectReferenceValue != null) { DragAndDrop.StartDrag(element.objectReferenceValue.name); } } // Use this event so that the host window gets repainted with // each mouse movement. Event.current.Use(); } break; case EventType.Repaint: //EditorStyles.label.Draw(position, shoppingItem.FindPropertyRelative("assetName").stringValue, false, false, false, false); break; } EditorGUI.PropertyField(position, this[index], true); }
private void DrawMain() { try { if (isDragging) { if (DraggedItem.Equipped) { DraggedItem.OnUnequip(); Inventory.Instance.ItemSlots[DraggedItemIndex].Equipped = false; } Inventory.Instance.DropItem(DraggedItemIndex); DraggedItem = null; DraggedItemIndex = -1; isDragging = false; } targetPerkOffset = wholeScreenRect.center; currentPerkOffset = targetPerkOffset; Vector2 center = wholeScreenRect.center; Rect MiddleR = new Rect(Vector2.zero, new Vector2(300 * screenScale, 300 * screenScale)) { center = center }; GUI.Label(new Rect(10 * screenScale, 10 * screenScale, 300, 100), "Difficulty: " + DiffSel_Names[(int)ModSettings.difficulty], chgDiffLabelStyle); //drawing difficulty raise lower buttons if (difficultyCooldown <= 0 && !GameSetup.IsMpClient) { if ((int)ModSettings.difficulty < (int)ModSettings.Difficulty.Hell && GUI.Button(new Rect(10 * screenScale, 90 * screenScale, 200 * screenScale, 40 * screenScale), "Raise Difficulty", chgDiffBtnStyle)) { //raise difficulty difficultyCooldown = 10 * 60; ModSettings.difficulty++; ModSettings.BroadCastSettingsToClients(); } if (ModSettings.difficulty > (int)ModSettings.Difficulty.Easy && GUI.Button(new Rect(10 * screenScale, 130 * screenScale, 200 * screenScale, 40 * screenScale), "Lower Difficulty", chgDiffBtnStyle)) { //lower difficulty difficultyCooldown = 10 * 60; ModSettings.difficulty--; ModSettings.BroadCastSettingsToClients(); } if (GUI.Button(new Rect(10 * screenScale, 170 * screenScale, 200 * screenScale, 40 * screenScale), "Change Options", chgDiffBtnStyle)) { ModSettings.DifficultyChosen = false; difficultyCooldown = 10 * 60; } } Rect r1 = new Rect(wholeScreenRect.center, new Vector2(Screen.height / 2, Screen.height / 2)); Rect r2 = new Rect(r1); Rect r3 = new Rect(r1); Rect r4 = new Rect(r1); float minDist = 500f / 1500f; minDist *= r1.width; MenuButton(minDist, ref r1, OpenedMenuMode.Inventory, "Inventory", new Vector2(1, -1), ref buttonHighlightOpacity[0], -50 * screenScale, -50 * screenScale); r2.position = center - r1.size; MenuButton(minDist, ref r2, OpenedMenuMode.Spells, "Abilities", new Vector2(-1, 1), ref buttonHighlightOpacity[1], 50 * screenScale, 50 * screenScale); r3.position = center - new Vector2(0, r1.width); MenuButton(minDist, ref r3, OpenedMenuMode.Stats, "Guide & Stats", Vector2.one, ref buttonHighlightOpacity[2], -50 * screenScale, 50 * screenScale); r4.position = center - new Vector2(r1.width, 0); MenuButton(minDist, ref r4, OpenedMenuMode.Perks, "Mutations", -Vector2.one, ref buttonHighlightOpacity[3], 50 * screenScale, -50 * screenScale); GUI.Label(MiddleR, "Level \n" + ModdedPlayer.instance.level.ToString(), menuBtnStyle); if (GUI.Button(new Rect(Screen.width - 120 * screenScale, 40 * screenScale, 120 * screenScale, 40 * screenScale), HideHud ? "[ NO HUD ]" : "[ HUD ]", chgDiffLabelStyle)) { HideHud = !HideHud; } DisplayedPerkIDs = null; semiblackValue = 0; } catch (Exception ex) { ModAPI.Log.Write(ex.ToString()); } }
static Slot() { draggedItem = DraggedItem.GetInstance(); }