Exemple #1
0
    private static void ShowPopup(Event evt, UTNodeEditorModel model)
    {
        var menu = new GenericMenu();

        if (!model.HasPlan)
        {
            menu.AddDisabledItem(new GUIContent("Please select an automation plan."));
            menu.ShowAsContext();
            return;
        }


        var hotNode      = GetNodeUnderMouse(model, evt.mousePosition);
        var hotConnector = GetConnectorUnderMouse(model, evt.mousePosition);
        var data         = new NodeEventData(evt, model, hotConnector);

        if (hotNode == null && hotConnector == null)
        {
            menu.AddItem(new GUIContent("Add Action Node"), false, AddActionNode, data);
            menu.AddItem(new GUIContent("Add Decision Node"), false, AddDecisionNode, data);
            menu.AddItem(new GUIContent("Add My Decision Node"), false, AddMyDecisionNode, data);
            menu.AddItem(new GUIContent("Add LowQuality Decision Node"), false, AddLowQualityDecisionNode, data);
            menu.AddItem(new GUIContent("Add My CopyAssetBundles Decision Node"), false, AddMyCopyAssetBundlesDecisionNode, data);
            menu.AddItem(new GUIContent("Add For-Each Node"), false, AddForEachNode, data);
            menu.AddItem(new GUIContent("Add For-Each File Node"), false, AddForEachFileNode, data);
            menu.AddItem(new GUIContent("Add My For-Each For Build Node"), false, AddMyForEachForBuildNode, data);
            menu.AddItem(new GUIContent("Add Sub-Plan Node"), false, AddPlanNode, data);
            menu.AddItem(new GUIContent("Add Note"), false, AddNote, data);
        }

        if (hotNode != null)
        {
            if (!model.SelectedNodes.Contains(hotNode))
            {
                model.SelectNode(hotNode, UTNodeEditorModel.SelectionMode.Replace);
            }

            if (menu.GetItemCount() > 0)
            {
                menu.AddSeparator("");
            }

            var isMultiSelection = model.SelectedNodes.Count > 1;

            if (!model.IsFirstNode(hotNode) && !isMultiSelection && !(hotNode.Data is UTAutomationPlanNoteEntry))
            {
                menu.AddItem(new GUIContent("Set As First Node"), false, SetAsFirstNode, data);
            }
            menu.AddItem(new GUIContent(isMultiSelection ? "Delete Nodes" : "Delete Node"), false, DeleteNode, data);
        }

        if (hotConnector != null && hotConnector.isConnected)
        {
            if (menu.GetItemCount() > 0)
            {
                menu.AddSeparator("");
            }
            menu.AddItem(new GUIContent("Delete Connection"), false, DeleteConnection, data);
        }
        menu.ShowAsContext();
    }
    private static void ShowPopup(Event evt, UTNodeEditorModel model)
    {
        var menu = new GenericMenu ();
        if (!model.HasPlan) {
            menu.AddDisabledItem (new GUIContent ("Please select an automation plan."));
            menu.ShowAsContext ();
            return;
        }

        var hotNode = GetNodeUnderMouse (model, evt.mousePosition);
        var hotConnector = GetConnectorUnderMouse (model, evt.mousePosition);
        var data = new NodeEventData (evt, model, hotConnector);
        if (hotNode == null && hotConnector == null) {
        #if UTOMATE_DEMO
            if (!model.CanAddEntriesToPlan) {
                menu.AddDisabledItem (new GUIContent ("You cannot add any more entries in the demo version."));
            }
            else {
        #endif
            menu.AddItem (new GUIContent ("Add Action Entry"), false, AddActionNode, data);
            menu.AddItem (new GUIContent ("Add Decision Entry"), false, AddDecisionNode, data);
            menu.AddItem (new GUIContent ("Add For-Each Entry"), false, AddForEachNode, data);
            menu.AddItem (new GUIContent ("Add For-Each File Entry"), false, AddForEachFileNode, data);
            menu.AddItem (new GUIContent ("Add Sub-Plan Entry"), false, AddPlanNode, data);
            menu.AddItem (new GUIContent ("Add Note"), false, AddNote, data);

        #if UTOMATE_DEMO
            }
        #endif
        }

        if (hotNode != null) {
            if (!model.SelectedNodes.Contains (hotNode)) {
                model.SelectNode (hotNode, UTNodeEditorModel.SelectionMode.Replace);
            }

            if (menu.GetItemCount () > 0) {
                menu.AddSeparator ("");
            }

            var isMultiSelection = model.SelectedNodes.Count > 1;

            if (!model.IsFirstNode (hotNode) && !isMultiSelection) {
                menu.AddItem (new GUIContent ("Set As First Entry"), false, SetAsFirstNode, data);
            }
            menu.AddItem (new GUIContent (isMultiSelection ? "Delete Entries" : "Delete Entry"), false, DeleteNode, data);
        }

        if (hotConnector != null && hotConnector.isConnected) {
            if (menu.GetItemCount () > 0) {
                menu.AddSeparator ("");
            }
            menu.AddItem (new GUIContent ("Delete Connection"), false, DeleteConnection, data);
        }
        menu.ShowAsContext ();
    }