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)); }
private void SetTrigger(NodeGraphVariable variable) { variable.RuntimeTriggerVal = true; }
public RemoveGraphVariableEvent(NodeGraphVariable variable) { Variable = variable; }
public AddNodeVariableArgs(NodeGraphVariable variable, NodeGraphVariableAccessorType accessorType) { Variable = variable; AccessorType = accessorType; }