void GraphHelper_VariableAdded(NodeGraphVariable obj)
 {
     if (!_variableViewStates.ContainsKey(obj))
     {
         _variableViewStates.Add(obj, new VariableViewState());
     }
 }
 void GraphHelper_VariableRemoved(NodeGraphVariable obj)
 {
     if (_variableViewStates.ContainsKey(obj))
     {
         _variableViewStates.Remove(obj);
     }
 }
        public static void DrawTypeField(NodeGraphVariable graphVariable, NodeGraphType graphType)
        {
            var type = DrawTypeField(graphVariable.WrappedType, graphType).WrappedType;

            graphVariable.SetValueWrapperFromType(type);
        }
        void DrawVariable(NodeGraphVariable variable)
        {
            if (!_variableViewStates.ContainsKey(variable))
            {
                return;
            }

            var foldOut = _variableViewStates[variable].Foldout;

            _variableViewStates[variable].Foldout = EditorGUILayout.Foldout(foldOut, variable.Name);

            if (foldOut)
            {
                EditorGUI.indentLevel++;

                EditorGUILayout.BeginVertical();

                variable.ReplacementName = EditorGUILayout.DelayedTextField("Name", variable.Name);
                NodeEditorPropertiesHelper.DrawTypeField(variable, GraphHelper.GraphType);
                NodeEditorPropertiesHelper.DrawValueWrapperField(variable.WrappedValue);

                EditorGUILayout.BeginHorizontal();

                GUILayout.Label("Spawn");

                if (GUILayout.Button("Get"))
                {
                    SpawnNodeFromFocusedVariable(variable, NodeGraphVariableAccessorType.Get);
                }

                if (GUILayout.Button("Get Set"))
                {
                    SpawnNodeFromFocusedVariable(variable, NodeGraphVariableAccessorType.GetSet);
                }

                if (GUILayout.Button("Set"))
                {
                    SpawnNodeFromFocusedVariable(variable, NodeGraphVariableAccessorType.Set);
                }

                EditorGUILayout.EndHorizontal();

                // Remove
                if (GUILayout.Button("Remove"))
                {
                    bool doRemoveAction = true;
                    var  hasReferences  = GraphHelper.GetNodesByVariableReference(variable).Count != 0;

                    if (hasReferences)
                    {
                        doRemoveAction = EditorUtility.DisplayDialog("Warning",
                                                                     "Nodes in the graph are referencing this variable. Are you sure you want to continue?",
                                                                     "Yes",
                                                                     "No");
                    }

                    if (doRemoveAction)
                    {
                        RemoveVariable.InvokeSafe(new RemoveGraphVariableEvent(variable));
                    }
                }

                EditorGUILayout.EndVertical();

                EditorGUI.indentLevel--;
            }
        }
 void SpawnNodeFromFocusedVariable(NodeGraphVariable variable, NodeGraphVariableAccessorType accessorType)
 {
     AddVariableNode.InvokeSafe(new AddNodeVariableArgs(variable, accessorType));
 }
Esempio n. 6
0
 private void SetTrigger(NodeGraphVariable variable)
 {
     variable.RuntimeTriggerVal = true;
 }
 public RemoveGraphVariableEvent(NodeGraphVariable variable)
 {
     Variable = variable;
 }
 public AddNodeVariableArgs(NodeGraphVariable variable, NodeGraphVariableAccessorType accessorType)
 {
     Variable     = variable;
     AccessorType = accessorType;
 }