Esempio n. 1
0
 private void ElementDropped(ReorderableList.ReorderableListEventStruct droppedStruct)
 {
     DebugLabel.text  = "";
     DebugLabel.text += "Dropped Object: " + droppedStruct.DroppedObject.name + "\n";
     DebugLabel.text += "Is Clone ?: " + droppedStruct.IsAClone + "\n";
     if (droppedStruct.IsAClone)
     {
         DebugLabel.text += "Source Object: " + droppedStruct.SourceObject.name + "\n";
     }
     DebugLabel.text += string.Format("From {0} at Index {1} \n", droppedStruct.FromList.name, droppedStruct.FromIndex);
     DebugLabel.text += string.Format("To {0} at Index {1} \n", droppedStruct.ToList == null ? "Empty space" : droppedStruct.ToList.name, droppedStruct.ToIndex);
 }
Esempio n. 2
0
    public void OnElementAdded(ReorderableList.ReorderableListEventStruct e)
    {
        var placesOrdered = placesShown.OrderBy(p => p.transform.GetSiblingIndex());

        // move around elements in the distance matrix
        // don't have to call Google again, also instant change
        var orig = new System.Collections.ObjectModel.ObservableCollection <string>(
            currentDistanceMatrix.origin_addresses);
        var dest = new System.Collections.ObjectModel.ObservableCollection <string>(
            currentDistanceMatrix.destination_addresses);
        var rows = new System.Collections.ObjectModel.ObservableCollection <DistanceMatrix.Row>(
            currentDistanceMatrix.rows);

        orig.Move(e.FromIndex, e.ToIndex);
        dest.Move(e.FromIndex, e.ToIndex);
        rows.Move(e.FromIndex, e.ToIndex);
        foreach (var r in rows)
        {
            var elems = new System.Collections.ObjectModel.ObservableCollection <DistanceMatrix.Element>(
                r.elements);
            elems.Move(e.FromIndex, e.ToIndex);
            r.elements = elems.ToArray();
        }
        currentDistanceMatrix.origin_addresses      = orig.ToArray();
        currentDistanceMatrix.destination_addresses = dest.ToArray();
        currentDistanceMatrix.rows = rows.ToArray();

        //currentDistanceMatrix = null;
        //StartCoroutine(GetTravelTimesCoroutine(placesOrdered.Select(p => p.data.place)));

        foreach (var p in placesOrdered)
        {
            int index = p.transform.GetSiblingIndex();
            index = index > e.ToIndex ? index - 1 : index;

            p.data.place.itineraryindex = index;
            StartCoroutine(EditPlaceCoroutine(p));
            StartCoroutine(p.GetTravelTimes());
        }

        ValidateArrivalTimings(placesOrdered);

        currentItinerary.placesData = currentItinerary.placesData.OrderBy(p => p.place.itineraryindex).ToList();
        Flyby.Instance.StartFlyby(currentItinerary);
    }
Esempio n. 3
0
        private void ElementDropped(ReorderableList.ReorderableListEventStruct droppedStruct)
        {
            DebugLabel.text = "";
            Text debugLabel = DebugLabel;

            debugLabel.text = debugLabel.text + "Dropped Object: " + droppedStruct.DroppedObject.name + "\n";
            Text   debugLabel2 = DebugLabel;
            string text        = debugLabel2.text;

            debugLabel2.text = text + "Is Clone ?: " + droppedStruct.IsAClone + "\n";
            if (droppedStruct.IsAClone)
            {
                Text debugLabel3 = DebugLabel;
                debugLabel3.text = debugLabel3.text + "Source Object: " + droppedStruct.SourceObject.name + "\n";
            }
            DebugLabel.text += $"From {droppedStruct.FromList.name} at Index {droppedStruct.FromIndex} \n";
            DebugLabel.text += $"To {droppedStruct.ToList.name} at Index {droppedStruct.ToIndex} \n";
        }
Esempio n. 4
0
        public void OnObjectDropped(ReorderableList.ReorderableListEventStruct e)
        {
            RectTransform droppedTransform = e.DroppedObject.transform as RectTransform;
            Canvas        parentCanvas     = (e.DroppedObject.transform as RectTransform).GetParentCanvas();
            Camera        parentCamera     = parentCanvas.worldCamera;
            Vector2       canvasSize       = parentCanvas.pixelRect.size * parentCanvas.scaleFactor;
            Vector2       pivot            = droppedTransform.anchorMin * droppedTransform.anchorMax;
            Vector2       screenOffset     = pivot * canvasSize;
            Vector3       screenPosition   = screenOffset + droppedTransform.anchoredPosition * parentCanvas.scaleFactor;

            screenPosition.z = 1;
            Ray   ray   = new Ray(parentCamera.ScreenToWorldPoint(screenPosition), parentCamera.transform.forward);
            Plane plane = new Plane(-parentCamera.transform.forward, Vector3.zero);

            plane.Raycast(ray, out float d);
            Vector3 worldPos = ray.GetPoint(d);

            SceneItemElementViewController controller = e.DroppedObject.GetComponent <SceneItemElementViewController>();

            if ((e.FromList.transform as RectTransform).rect.Contains(e.DroppedObject.transform.position))
            {
                Destroy(e.DroppedObject);
                return;
            }

            // create scene item
            SceneItemData data = SceneItemData.Empty;

            data.position    = worldPos;
            data.payloadType = controller.sceneItemTemplateData.payloadType;
            data.payload     = data.payloadType == PayloadType.Primitive
                ? controller.sceneItemTemplateData.itemName
                : controller.payload;

            ISceneItem item = m_SceneItemFactory.Create(data);

            e.DroppedObject.transform.parent = null;
            Destroy(e.DroppedObject);
        }
Esempio n. 5
0
 public void OnElementMoved(ReorderableList.ReorderableListEventStruct e)
 {
     GameObject.Destroy(e.DroppedObject);
     m_EditorSceneManager.MoveStepFromTo(e.FromIndex, e.ToIndex);
 }
 public void BinItem(ReorderableList.ReorderableListEventStruct listEvent)
 {
     print("BIN!");
 }